Владимир Борисов
Управление базами данных «1С» 7.7
при помощи групповых политик
«1С: Бухгалтерия» предыдущаей версии 7.7 не имеет механизмов управления подключенными базами данных. Если баз одна-две и пользователей немного, то настроить руками не составляет проблем. Но бывают ситуации посложнее.
Ситуация
Существует локальная сеть организации, очень многие пользователи работают с «1С» 7.7, количество баз «1С» переваливает за полсотни, многие пользователи работают с несколькими базами одновременно, часто происходят «переходы» (т.е. пользователю необходимо, например, всю следующую неделю работать с определенным набором баз, или пользователя переводят в другой отдел, или пересаживают на другое рабочее место). Заявки на доступ к той или иной базе данных составляют значимую долю в общем потоке заявок.
Исходные данные
Локальная сеть централизованно управляется Active Directory, дисковая система существующего сервера стала сбоить, приобретен сервер с более быстрой и надежной дисковой системой под эту задачу. На существующем сервере папки с базами «1С» не имели единообразного названия, были раскиданы по иерархии папок бессистемно.
Задача
Требуется перенести все базы на новый сервер, единообразно назвать папки с базами данных, всем пользователям обновить список баз данных, ввести централизованное управление списком доступных пользователю баз данных.
Решение
«1С» 7.7 считывает список доступных баз данных из ветки реестра HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles, а раз так, то этим списком возможно различными путями управлять. Было решено написать шаблон групповой политики для управления этой веткой реестра. Воспользовавшись статьей Ивана Коробко «Автоматизация процессов в сети» из журнала «Системный администратор» №8 за 2004 год, был написан следующий шаблон групповой политики:
Листинг 1. Шаблон групповой политики для управления базами данных «1С» 7.7
CLASS USER
CATEGORY !!cat_name
KEYNAME "Software\1C\1Cv7\7.7\Titles"
POLICY !!pol_name
PART !!part_name LISTBOX EXPLICITVALUE ADDITIVE
END PART
END POLICY
END CATEGORY
[strings]
cat_name="Управление 1С"
pol_name="Подключенные базы данных"
part_name="Список подключенных баз данных"
На новом сервере создается папка общего доступа, в ней создаются папки для баз данных «1С» со следующим шаблоном имени «название_тип_версия», например, dormash_buh_7, из названия понятно, что это база организации «ДорМаш», тип базы – «1С: Бухгалтерия», версия 7.
В Active Directory создаются группы доступа с названием, точно соответствующим имени папки с базой, в комментарии группы более развернуто описываем, что это за группа (например, «Группа доступа к базе «1С ДорМаш: Бухгалтерия»). У руководства соответствующих подразделений выясняем, кто в какой базе работает, распределяем пользователей по соответствующим группам. Включаем в списки доступа соответствующих папок с базами соответствующие им группы доступа.
Подключаем папку с базами к существующему доменному корню DFS (распределенная файловая система в нашем случае применяется для консолидации папок общего доступа в единый корень). Заготовка для переноса баз сделана.
Создаем в дереве Active Directory подразделение с названием наподобие 1С_group_policy_templates и объект групповой политики с именем, точно соответствующим имени папки с базой и соответствующей группы доступа. Открываем объект групповой политики в редакторе и подключаем созданный ранее административный шаблон. У нас в списке административных шаблонов появляется ветка «Управление 1С». Но ветка пустая, для того чтобы нужная нам настройка отображалась, необходимо открыть контекстное меню ветки, выбрать «Вид > Фильтрация», снять галочку с пункта «Показывать только управляемые политики». После этих действий в ветке «Управление 1С» появляется параметр «Подключенные базы данных» (см. рис. 1).
Рисунок 1. Управление базами данных 1С в редакторе групповой политики
Теперь мы можем отредактировать список баз, в моем случае ситуация такова, что на каждую БД пришлось создавать отдельный объект групповой политики. Добавление базы происходит следующим образом: в поле «Введите имя добавляемого элемента» вводится путь к папке с базой данных, а в поле «Введите значение добавляемого элемента» вводится название базы, которое будет отображаться у пользователя (см. рис. 2). Проводим аналогичные пассы для каждой базы данных.
Рисунок 2. Добавление БД в список доступных баз
Теперь необходимо сделать так, чтобы данная политика распространялась только на тех пользователей, которым необходим доступ к этой БД. Для этого воспользуемся существующими и уже заполненными группами доступа. В свойствах объекта групповой политики в закладке «Безопасность» надо удалить группу «Прошедшие проверку», добавить группу, соответствующую названию базы, и дать права на применение групповой политики (см. рис. 3).
Рисунок 3. Права на применение групповой политики
Далее остаётся только связать созданные объекты ГП с подразделением, в котором находятся пользователи.
Итог
- все БД «1С» имеют единообразное название;
- все БД «1С» находятся в одном месте;
- управлять доступом к БД можно путем изменения членства в группах доступа;
- добавление в список доступных БД «1С» происходит автоматически, если у пользователя есть доступ к соответствующей папке;
- при переносе папки с БД в другое место достаточно изменить запись в ГП, и у пользователя в списке поменяется соответствующий путь.
Единственный минус – запись из списка доступных БД не убирается вместе с исключением пользователя из соответствующей группы доступа, но это терпимо.