Сколько копий было сломано относительно RLS на чтение. Пожалуй, это самая главная проблема прав доступа, которую не могли решить программисты 1С.
Все остальное так или иначе делалось кодом, а вот в RLS на чтение приходилось ковыряться в ролях руками. На худой конец — с помощью парсеров, но их никто так и не написал.
Суть проблемы в чем. Допустим, есть RLS по организации и складу.
А затем по некоторым документам нужно добавить RLS по проектам.
При этом нужно было вручную во всех объектах менять RLS-запрос, добавлять отбор по проектам. И шаблоны тут не могли помочь.
Решение я придумал только сейчас, 20 февраля 2026 года. Оно было всегда под носом, как часто бывает.
Оно заключается в том, что для каждого объекта прописываем нужное нам условие в одном шаблоне RLS Общий:

Вот пример такого условия:
#Если "Справочник.Номенклатура" = #ИмяТекущейТаблицы #Тогда
ГДЕ Истина
#КонецЕсли
#Если "Справочник.Контрагенты" = #ИмяТекущейТаблицы #Тогда
ГДЕ Ссылка.Наименование ПОДОБНО "а%"
#КонецЕсли
Проверяем на контрагентах, без RLS у нас такой список:

С RLS только те контрагенты, что начинаются на букву «а»:

На практике, конечно, будут более осмысленные тексты запросов, например:
#Если "Справочник.Склады" = #ИмяТекущейТаблицы #Тогда
ГДЕ Ссылка В (&ДоступныеСклады)
#КонецЕсли
#Если "Документ.ПоступлениеТоваров" = #ИмяТекущейТаблицы #Тогда
ГДЕ
Склад В (&ДоступныеСклады)
И Организация В (&ДоступныеОрганизации)
#КонецЕсли
Сам текст запросов можно по каждому объекту сгенерировать кодом и вставить уже в шаблон.
Наконец-то программисты 1С избавлены от рутины с правами доступа RLS!
Вступайте в нашу телеграмм-группу Инфостарт
