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