При настройке механизмов ограничения доступа на уровне записей (РЛС) в конфигурациях на базе БСП, таких как Управление торговлей 11 или ERP, разработчики часто сталкиваются с ситуацией, когда, несмотря на созданный профиль с ограничениями, пользователь продолжает видеть все данные. Разберем, почему это происходит и как правильно настроить систему прав.
Главная ошибка, с которой мы сталкиваемся при внедрении РЛС — это предположение, что если мы наложили ограничение в одном профиле, оно автоматически «заблокирует» доступ везде. В 1С система управления доступом работает по принципу логического «ИЛИ». Это означает, что итоговые права пользователя формируются путем суммирования разрешений из всех назначенных ему групп доступа.
Если у пользователя в системе есть хотя бы одна группа доступа, в которой нет ограничений на просмотр контрагентов (например, стандартная группа «Менеджеры» или «Пользователи»), то наличие вашей новой «ограниченной» группы не приведет к желаемому результату. Система просто сложит права: «Разрешить всё» + «Разрешить только 5 контрагентов» = «Разрешить всё».
Для того чтобы ограничения заработали корректно, нам необходимо выполнить следующие действия:
Групп доступа партнеров к каждому профилю, который закреплен за пользователем.Механизм РЛС (RLS - Record Level Security) в БСП опирается на Параметры сеанса. Когда система выполняет запрос к таблице Справочник.Партнеры, движок 1С проверяет доступ к каждой записи. При назначении нескольких ролей или профилей, платформа формирует итоговый запрос, который учитывает совокупность всех разрешительных условий.
Если вы хотите реализовать сложную логику, где доступ к контрагентам должен быть строго ограничен, не пытайтесь «перекрыть» права запрещающими записями в одном профиле, если в других профилях права на просмотр установлены как «Все». Это так не работает. Вместо этого придерживайтесь стратегии минимально необходимых прав:
// Пример логики, которую необходимо учитывать при проектировании ролей:
// Если хотя бы одна роль дает право на чтение данных,
// то РЛС-ограничение не сработает как «запрет».
// Итоговое условие будет выглядеть как:
// (Право_По_Роли_1 ИЛИ Право_По_Роли_2) И Ограничение_РЛС
Чтобы система работала предсказуемо, мы рекомендуем следующие шаги:
Профиль групп доступа, который вы назначаете пользователю. В нем на вкладке Ограничения доступа должны быть четко указаны группы доступа партнеров.Группу доступа, в которой будет установлен профиль с включенными РЛС по партнерам.Обновление вспомогательных данных (если это предусмотрено регламентом конфигурации) или просто перезапустите сеанс пользователя. Кэш параметров сеанса может хранить старые права доступа, из-за чего изменения вступят в силу не сразу.В заключение, важно понимать, что архитектура подсистемы управления доступом в современных конфигурациях 1С — это мощный, но переусложненный инструмент. Попытки самостоятельно «хакнуть» систему или написать собственный парсинг прав чаще всего приводят к проблемам при обновлении типовой конфигурации. Лучшим решением всегда остается приведение существующих профилей в соответствие с требованиями безопасности через стандартный интерфейс БСП.