Как включить и правильно настроить RLS по организациям в 1С:УПП 1.3?

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

Механизм ограничения прав доступа на уровне записей (RLS) в конфигурации 1С:Управление производственным предприятием 1.3 позволяет гибко разграничивать видимость данных (например, документов и справочников конкретных организаций) для различных пользователей. Однако при первичной настройке администраторы часто сталкиваются с ошибками: путают снятие базовых прав с наложением ограничений, забывают о логике объединения групп или сталкиваются с кэшированием данных форм. Разберем по шагам, как правильно активировать и настроить RLS по организациям, а также выясним причины распространенных ошибок.

Шаг 1. Включение режима RLS в параметрах программы

Прежде чем настраивать ограничения для конкретных пользователей, необходимо включить механизм RLS на уровне всей информационной базы. Разберем, как это сделать:

  1. Перейдем в интерфейс Администрирование пользователей или Полный интерфейс.
  2. Откроем пункт меню Сервис → Настройка учета → Параметры учета (либо через меню Доступ на уровне записей → Параметры доступа на уровне записей).
  3. На соответствующей вкладке установим флаг Использовать ограничение прав доступа на уровне записей.
  4. В списке доступных видов объектов ограничений отметим нужные виды, например, Организации.
  5. Сохраним выполненные изменения.

Шаг 2. Создание групп пользователей и настройка прав доступа

В типовой конфигурации УПП 1.3 ограничение доступа по объектам назначается не напрямую конкретному пользователю, а через справочник Группы пользователей.

Проанализируем процесс назначения прав:

  1. Откроем справочник Группы пользователей и создадим новую группу (например, «Менеджеры Организации №1»).
  2. Добавим нужных пользователей в состав этой группы.
  3. Перейдем в форму Настройка прав доступа (меню Доступ на уровне записей → Настройка доступа).
  4. Нажмем кнопку Заполнить. Если только что созданная группа не отображается в списке, закроем форму и откроем ее заново: при открытии форма считывает актуальные объекты из базы данных, поэтому перезапуск окна обновит внутренний список.
  5. Выберем созданную группу пользователей, перейдем на закладку Организации и укажем список тех организаций, с которыми пользователям данной группы разрешено работать.

Шаг 3. Логика объединения прав и групп пользователей

При настройке нескольких групп пользователей и ролей крайне важно понимать, как платформа 1С объединяет права. В системе действует принцип логического сложения (ИЛИ):

  1. Предопределенная группа «Все пользователи»: Каждый пользователь системы автоматически входит в эту группу. Если в настройках прав доступа для группы Все пользователи ограничение по организациям отключено (или разрешены все организации), то ограничение не сработает ни для одного сотрудника. Ограничение по виду доступа должно быть включено и для группы Все пользователи, либо в ней должны быть установлены только общедоступные значения.
  2. Вхождение в несколько групп: Если пользователь включен в «Группу 1» (доступны Организация 1 и Организация 2) и «Группу 2» (доступна Организация 3), то в результате ему будут доступны Организация 1, Организация 2 и Организация 3.
  3. Отключение вида доступа в одной из групп: Если в «Группе 1» включено ограничение по организациям, а в «Группе 2» этот вид ограничения выключен вовсе, пользователь получит доступ ко всем организациям без ограничений.

Разница между базовыми правами роли и условиями RLS

Распространенная ошибка заключается в попытке снять галочку права Чтение у роли в конфигураторе. Разберем, к чему это приводит и как устроено ограничение доступа на уровне метаданных:

  1. Базовое право «Чтение»: Если в роли снять флаг Чтение для справочника Организации или документов, платформа полностью запретит обращение к объекту. При попытке открыть любой связанный журнал или форму система выдаст критическую ошибку Нарушение прав доступа.
  2. Условие ограничения данных: Чтобы RLS работал корректно, флаг Чтение у роли обязательно должен быть включен, а в нижней части окна настройки роли (в поле «Ограничение доступа к данным») должен быть прописан шаблон RLS (например, #ПоОрганизациям). В типовых ролях УПП 1.3 эти шаблоны уже встроены во все стандартные роли.
  3. Роль «Полные права»: Если пользователю назначена роль Полные права или любая другая административная роль без ограничений RLS, платформа предоставит полный доступ ко всем данным независимо от настроек в режиме предприятия.

Особенности работы с RLS в коде и запросах

Рассмотрим важные нюансы разработки и доработки конфигурации при активном RLS:

  1. Использование ключевого слова РАЗРЕШЕННЫЕ: Во всех текстах запросов к объектам, на которые наложен RLS, необходимо указывать конструкцию ВЫБРАТЬ РАЗРЕШЕННЫЕ. Если этого не сделать, запрос попытается прочитать запрещенные записи и завершится аварийно с ошибкой нарушения прав:
    
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
        ЗаказПокупателя.Ссылка КАК Ссылка,
        ЗаказПокупателя.Номер КАК Номер,
        ЗаказПокупателя.Организация КАК Организация
    ИЗ
        Документ.ЗаказПокупателя КАК ЗаказПокупателя
    
  2. Перезапуск сеанса пользователя: Значения прав и списки доступных объектов кэшируются при старте сеанса в параметрах сеанса. Любые изменения в группах пользователей и настройках доступа требуют обязательного перезапуска сеанса «1С:Предприятие» у настраиваемого пользователя.
  3. Привилегированный режим: Серверные процедуры и регламентные задания, выполняемые с вызовом УстановитьПривилегированныйРежим(Истина), игнорируют RLS и обращаются ко всей базе данных без ограничений.
← На главную