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