Что такое 1с 8, надеюсь, известно всем.
А многие, наверняка, знают, как весело и интересно сотням пользователей ежедневно корректировать списки баз 1с 8, добавлять/заменять/удалять.
Тоже столкнулся с этой морокой, почитал различные статьи, но всё было как-то заумно и сложно.
Ниже изложен мой вариант решения данного вопроса.
Суть метода в том, что пользователю передаётся тот список баз, на чтение которого есть права.
Реализовано очень просто и удобно.
Допустим, есть какое-то количество баз.
Пользователей тоже не мало, и каждому нужен свой уникальный список баз. Ну почти каждому.
То есть, будут группы пользователей, у которых списки баз одинаковые, пусть даже сами пользователи находятся совершенно в разных отделах.
Сразу скажу, что решение настраивалось для использования на платформе Windows 7 и оных. Под ХР переделать не сложно.
Итак.
1) Список баз
Если кто не знал, список баз 1с8 хранится в %USERPROFILE%\AppData\Roaming\1C\1CEStar
t\ibases.v8i, который, кстати, легко редактируется нотепадом.
2) Группы пользователей
Создайте в AD новую OU 1C.
Создайте группу 1с8.
При создании нового списка баз 1с8 создавайте группы, например: 1с8_1, 1с8_2… 1с8_nn.
Эти группы делайте членами группы 1с8.
В описании группы пишите список баз, для которого создаётся группа, это будет очень удобно в дальнейшем.
Добавляйте в группу пользователей, для которых предназначен целевой список.
Правда, здесь небольшое неудобство — при смене членства пользователей в группах 1с8 надо подчищать следы.
3) Общий ресурс
На сервере (файловом, 1с, sql кому как удобнее) делаем общий ресурс, в котором, создаём папки, аналогично номерам в названиях групп, например: 01, 02, 03… NN.
Лучше делайте его шару$, чтоб не заглядывали лишний раз.
4) Доступ к спискам баз
В корневом каталоге укажите права безопасности для группы 1с8 Чтение списка папок и Только для этой папки.
Для папок с номерами дайте права Только на чтение соответственно номерам групп.
5) Получение списка баз
Надеюсь, вы уже поняли, что будет дальше.
Дальше вы создаёте политику, помещаете в неё скрипт, а вот его пример:
@echo off
mkdir "%USERPROFILE%\AppData\Roaming\1C\1CESta
rt"
del /f /q %USERPROFILE%\AppData\Roaming\1C\1CEStar
t\ibases.v8i
PushD "\\сервер с шарой\имя шары$\" &&(
forfiles /s /m ibases.v8i /c "cmd /c copy @file "%USERPROFILE%\AppData\Roaming\1C\1CESta
rt\"
) & PopD
Пользователь при входе в систему попытается открыть каждую папку и взять из неё файл, но получится это только с той папкой, на которую есть правда для чтения.
Итак.
Создали новый список — файл поместили в новую папку, создали новую группу, выдали права.
Чтобы пользователь получил другой список баз из уже имеющихся — смените его членство в группах 1с8_хх.
Если списки становятся не актуальны, удалять группы/папки вовсе не нужно, пригодятся.
Просто, хоть и прийдётся поклацать вначале. Зато никаких дополнительных изменений в AD, никакого стороннего софта и т.д.