Как ограничить доступ к определенным папкам справочника Номенклатура в 1С:УТ 10.3?

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

Ограничение доступа на уровне записей (RLS) — это мощный инструмент платформы 1С, позволяющий гибко управлять видимостью данных. Рассмотрим задачу по скрытию отдельных групп справочника Номенклатура для определенных пользователей. В ходе работы мы разберем создание специального регистра для хранения исключений и правильную настройку прав.

Создание регистра сведений для хранения запрещенных групп

Для начала нам потребуется место, где система будет хранить информацию о том, какие именно папки (или элементы) номенклатуры должны быть скрыты от глаз конкретных пользователей. Для этих целей создадим РегистрСведений, назовем его, например, ЗапрещеннаяНоменклатура.

  1. Создайте новое измерение в регистре. Важный совет: назовите измерение Номенклатура. Использование имен реквизитов, совпадающих с типами данных, помогает избежать путаницы и упрощает написание кода.
  2. Установите тип данных этого измерения на СправочникСсылка.Номенклатура.
  3. Не забудьте выставить права на чтение этого регистра в профиле пользователя, иначе механизм ограничения доступа просто не сможет считать данные из него.

Настройка ограничения доступа в ролях

Теперь, когда у нас есть список запрещенных объектов, необходимо внедрить логику проверки в роли пользователя. Для этого перейдем в конфигураторе в нужную роль и откроем раздел Ограничение доступа к данным для справочника Номенклатура.

Здесь нам нужно составить условие, которое будет проверять, не входит ли текущая запись в запретный список. Попробуем следующую конструкцию запроса:


Номенклатура
ГДЕ НЕ Номенклатура.Родитель В 
(ВЫБРАТЬ ЗапрещеннаяНоменклатура.Номенклатура 
ИЗ РегистрСведений.ЗапрещеннаяНоменклатура 
КАК ЗапрещеннаяНоменклатура)

Обратите внимание: если система выдает ошибку, проверьте имена полей. Если вы создали регистр с измерением Номенклатура, обращение к нему должно быть именно через этот идентификатор. Также убедитесь, что конфигурация обновлена и расширения (если они используются) применились корректно.

Важные нюансы работы с RLS

При настройке прав доступа важно помнить о нескольких ключевых принципах работы платформы 1С:

Отладка и аудит

Если после настройки пользователь все еще видит «запрещенную» папку, пройдемся по чек-листу:

  1. Проверьте, нет ли у пользователя других ролей, предоставляющих права на чтение всего справочника. Помните: чтобы ограничить права, нужно убрать все роли, предоставляющие полный доступ.
  2. Убедитесь, что в регистре ЗапрещеннаяНоменклатура действительно содержатся ссылки на папки, которые вы хотите скрыть.
  3. Проверьте текст ошибки, если запрос RLS выдает отказ. Часто ошибка кроется в опечатке или обращении к неверному реквизиту.
  4. Помните, что запросы в коде конфигурации, написанные с использованием ключевого слова РАЗРЕШЕННЫЕ, будут учитывать ваши ограничения, а прямые выборки — нет.

Реализация такого ограничения требует аккуратности, но при правильном подходе позволяет настроить систему прав именно так, как того требует ваша бизнес-задача. Мы разобрали основной механизм — связку регистра сведений и условий RLS, что является стандартом для подобных доработок в 1С:Управление торговлей.

← На главную