Как настроить ограничение доступа на уровне записей (RLS) для справочника Партнеры в 1С:КА 2.2?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Управленческий учет IT и автоматизация бизнеса
← На главную

При настройке прав доступа на уровне записей (RLS) в прикладных решениях 1С, таких как 1С:Комплексная автоматизация 2.2 или 1С:ERP, специалисты часто сталкиваются с ситуацией, когда ограничения для справочника Партнеры перестают работать. Пользователь продолжает видеть всех партнеров, несмотря на то, что в его профиле явно заданы ограничения по группам доступа.

В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем механизм аддитивности ролей в платформе 1С и рассмотрим пошаговые способы исправления настройки.

Принцип аддитивности прав платформы 1С

Главное правило подсистемы безопасности 1С заключается в том, что права на объекты складываются по логическому правилу «ИЛИ». В платформе отсутствуют отрицающие (запрещающие) права. Это означает следующее:

Если пользователю назначено несколько ролей, и хотя бы в одной из них доступ к справочнику Справочник.Партнеры разрешен без ограничений RLS, то ограничения, прописанные в других ролях, работать не будут. Платформа предоставет пользователю полный доступ к объекту.

Поиск ролей, блокирующих работу RLS

Проанализируем частую причину сбоя RLS. Очень часто полноправный доступ к данным без условий ограничения содержат системные или сервисные роли, о которых легко забыть. Например, роль «Удаленный доступ (стандартный интерфейс OData)» или роли обмена данными.

Рассмотрим, как устроена проверка RLS в роли на уровне конфигуратора. Чтобы ограничение работало корректно, в каждой роли, где участвует справочник Партнеры, на право Чтение должно быть прописано ограничение по соответствующему шаблону БСП.

Посмотрим на пример шаблона RLS для справочника партнеров:


#ПоЗначениям( "Справочник.Партнеры", "Чтение", "", 
"ГруппыПартнеров", "Ссылка", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" )

Если в одной из назначенная пользователю ролей доступ к справочнику разрешен, но поле ограничения пустое (шаблон не прописан), пользователь получит неограниченный доступ ко всем записям справочника.

Разберем алгоритм решения проблемы по шагам

Для восстановления корректной работы RLS выполним следующие действия:

  1. Анализ всех ролей пользователя: откроем карточку пользователя и проверим полный список назначенных ему ролей. Обратим особое внимание на служебные роли: Удаленный доступ (стандартный интерфейс OData), роли обмена данными и мобильных клиентов.
  2. Проверка прав через отчёт: в режиме «1С:Предприятие» перейдем в карточку пользователя и нажмем гиперссылку «Права доступа». Сформируем отчет по правам, чтобы точно увидеть, какая именно роль дает право Чтение на справочник Партнеры без ограничений.
  3. Корректировка ролей в Конфигураторе: если отключить роль нельзя, зайдём в Конфигуратор и добавим для справочника Партнеры в этой роли шаблон ограничения доступа #ПоЗначениям(...).
  4. Настройка видов доступа в интерфейсе: перейдем в раздел «НСИ и администрирование» -> «Настройка пользователей и прав» -> «Группы доступа». Для профиля пользователя укажем вид доступа «Группы партнеров» и установим значение «Все запрещены, исключения назначаются в группах доступа».
  5. Обновление ключей доступа: в современных версиях БСП RLS работает через механизм ключей доступа. Перейдем в «НСИ и администрирование» -> «Обслуживание» -> «Регламентные и фоновые задания» и вручную запустим фоновое задание Заполнение данных для ограничения доступа (или Обновление ключей доступа). Дождемся его завершения.

Важные особенности разделения Партнеров и Контрагентов

Выясним еще одну важную деталь. В конфигурации 1С:КА 2.2 разделены понятия Партнеры (управленческий учет) и Контрагенты (регламентированный учет). Если наложить RLS только на справочник Партнеры, но оставить открытым справочник Контрагенты, пользователь сможет видеть юридические лица и первичные документы через регламентированные отчеты и формы списков документов.

Поэтому для полной изоляции данных обязательно настраивайте ограничения как для парных видов доступа (Партнеры / Контрагенты), так и для соответствующих документов продаж и закупок.

← На главную