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