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