Окончательное решение вопроса RLS на чтение

Сколько копий было сломано относительно RLS на чтение. Пожалуй, это самая главная проблема прав доступа, которую не могли решить программисты 1С.

Все остальное так или иначе делалось кодом, а вот в RLS на чтение приходилось ковыряться в ролях руками. На худой конец — с помощью парсеров, но их никто так и не написал.

Суть проблемы в чем. Допустим, есть RLS по организации и складу.

А затем по некоторым документам нужно добавить RLS по проектам.

При этом нужно было вручную во всех объектах менять RLS-запрос, добавлять отбор по проектам. И шаблоны тут не могли помочь.

Решение я придумал только сейчас, 20 февраля 2026 года. Оно было всегда под носом, как часто бывает.

Оно заключается в том, что для каждого объекта прописываем нужное нам условие в одном шаблоне RLS Общий:

Вот пример такого условия:

#Если "Справочник.Номенклатура" = #ИмяТекущейТаблицы #Тогда
	ГДЕ Истина
#КонецЕсли

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


Проверяем на контрагентах, без RLS у нас такой список:

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

На практике, конечно, будут более осмысленные тексты запросов, например:

#Если "Справочник.Склады" = #ИмяТекущейТаблицы #Тогда
    ГДЕ Ссылка В (&ДоступныеСклады)
#КонецЕсли

#Если "Документ.ПоступлениеТоваров" = #ИмяТекущейТаблицы #Тогда
    ГДЕ
    Склад В   (&ДоступныеСклады)
    И Организация  В   (&ДоступныеОрганизации)
#КонецЕсли

Сам текст запросов можно по каждому объекту сгенерировать кодом и вставить уже в шаблон.

Наконец-то программисты 1С избавлены от рутины с правами доступа RLS!