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