При администрировании информационных баз 1С нередко возникает задача аудита прав: нужно быстро выяснить, у каких именно пользователей назначен определенный набор прав или конкретная роль (например, доступ к разделу «Склад», проведение документов или полные права). Рассмотрим подробнее основные способы решения этой задачи — как штатными средствами интерфейса, так и с помощью встроенного языка 1С.
Самый простой и оперативный способ, не требующий написания программного кода, доступен непосредственно в конфигураторе информационной базы. Разберем по шагам, как выполнить такой отбор:
Если требуется сформировать отчет, выгрузить список во внешнюю систему или выполнить сложную пакетную обработку, используем программный подход. Для этого платформа предоставляет менеджер ПользователиИнформационнойБазы.
Проанализируем пример кода, который перебирает всех пользователей информационной базы и проверяет наличие конкретной роли:
ИмяИскомойРоли = "ДобавлениеИзменениеДанныхСклада";
ИскомаяРоль = Метаданные.Роли.Найти(ИмяИскомойРоли);
Если ИскомаяРоль = Неопределено Тогда
Сообщить("Роль не найдена в метаданных!");
Возврат;
EndЕсли;
МассивПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого ПользовательИБ Из МассивПользователей Цикл
Если ПользовательИБ.Роли.Содержит(ИскомаяРоль) Тогда
Сообщить("Пользователь с ролью: " + ПользовательИБ.Имя + " (" + ПользовательИБ.ПолноеИмя + ")");
КонецЕсли;
КонецЦикла;
Обратите внимание на важные технические особенности программного метода:
РольДоступна() проверяет наличие роли только для текущего сеанса (пользователя, запустившего код). Проверить права других пользователей с ее помощью нельзя.ПользователиИнформационнойБазы.ПолучитьПользователей() у текущего пользователя должно быть установлено право Администрирование или Администрирование пользователей (либо код должен выполняться в привилегированном режиме через УстановитьПривилегированныйРежим(Истина)).В современных конфигурациях (ERP, КА, УТ, БП, ЗУП и др.) роли редко назначаются напрямую через конфигуратор. Архитектура подсистемы управления доступом Библиотеки стандартных подсистем (БСП) строится на использовании Профилей групп доступа и Групп доступа.
Разберем, как посмотреть пользователей с нужными правами в режиме «1С:Предприятие»:
Важное предостережение: если назначить роль пользователю напрямую в конфигураторе типовой базы БСП, то при очередном редактировании пользователя в режиме предприятия состав ролей будет автоматически перезаписан в соответствии с назначенными группами доступа.
Если перед нами стоит задача открыть доступ к конкретному разделу (например, «Склад»), важно помнить, что наличие одной лишь роли не всегда гарантирует видимость подсистемы. Проанализируем сопутствующие факторы: