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

24.02.26

Администрирование - Роли и права

Наконец-то программисты 1С избавлены от рутины с правами доступа RLS! Красивое и элегантное решение извечного вопроса НАЙДЕНО!

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

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

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

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

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

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

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

 

 

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

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

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

 

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

 

 

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

 

 

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

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

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

 

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

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    244798    1341    419    

1122

Зарплата Роли и права Системный администратор Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

9675 руб.

27.05.2021    52938    444    127    

320

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    23577    84    42    

99

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

21960 руб.

06.12.2023    21081    73    10    

106

SALE! 20%

Роли и права 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Универсальная обработка по настройке прав доступа пользователей в 1СЗУП, КА, УТ, ЕРП, ERP, УНФ, Розница, Управление холдингом) и разграничений позволяет в несколько кликов настроить даже самые нестандартные права.

5750 4600 руб.

22.12.2021    34538    193    69    

226

Логистика, склад и ТМЦ Роли и права Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Расширение для 1С:Бухгалтерия 3.0, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

5084 руб.

21.05.2019    1700412    594    197    

146

Роли и права Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Бухгалтерия автономного учреждения 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Мучаетесь со списком типовых ролей? Не хотите иметь дело с конфигуратором? Не знаете что делают имеющиеся права в базе? Хотите просто и удобно добавлять и настраивать, по одному клику, доступы и поведение при записи/удалении/проведении/открытии списка/фильтрацию данных в списках или формах выбора для пользователя или группы пользователей и для любого объекта? Не хотите переживать, что при обновлении конфигурации все права и роли слетят? (Обновление от 28.08.2025, версия 1.10)

15000 руб.

21.03.2022    18750    28    55    

51
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. naf2000 24.02.26 10:04 Сейчас в теме
Конкретная ситуация. Есть маленький филиал. Люди совмещают должности.
1. Человек отвечает за склад филиала и поэтому должен видеть все доки с ограничением по складу.
2. Он же является менеджером продаж и должен видеть доки своих клиентов (независимо от склада).

В бсп мы его сажаем в две группы доступа: одна с ограничением по складу, другая по контрагентам. В итоге бсп соединяет условия RLS по ИЛИ.
Как может решиться такая ситуация у тебя? Два аккаунта не предлагать.
2. fixin 4326 24.02.26 10:34 Сейчас в теме
Запрос RLS по документу, выглядит например так:

Где Склад в &ДоступныеСклады
И Контрагент в &ДоступныеКонтрагенты


Понимаю, о чем вы.

БСП позволяет доступ через ИЛИ, т.е. если контрагент соответствует ограничению RLS или склад соответствует ограничению RLS. А тут ограничение И, казалось бы.

Но. Попробуйте в БСП смоделировать строгое ограничение через И. Получится? Нет.
А здесь можно и так и так.

Можно конечно сделать как в БСП:


Где Склад в &ДоступныеКонтрагенты
ИЛИ Контрагент в &ДоступныеСклады


Но лучше напротив каждого ограничения ставть галочку "Строгое" если оно должно быть строгим. Причем каждому пользователю по-своему.

Например, можно сделать строгой организацию.

Тогда в первую очередь проверяются строгие ограничения и если по ним все ок, далее проверяются не-строгие.
Универсальные запрос писать не буду, т.к. там надо поломать голову, как его корректно написать.

Но вот вам пример со строгой организацией и нестрогими складом и контрагентом:

Где ВЫБОР КОГДА НЕ Организация в &ДоступныеОрганизации ТОГДА ложь 
ИНАЧЕ  Склад в &ДоступныеСклады
ИЛИ Контрагент в &ДоступныеКонтрагенты


Как видите, этот подход существенно гибче типового.

Но все же хочу заметить, что Ваш вопрос касается уже не самого метода, а нюансов его применения, хотя и выжных. Но сам метод воистину невероятный. И главное, все 10 лет существования RLS он был под рукой, но его не замечали.
3. naf2000 24.02.26 11:08 Сейчас в теме
В смысле не получится в бсп по И? Это просто одна группа доступа. Внутри группы все ограничения по И.
Можно конечно сделать как в БСП

Вы типовые вообще смотрели?

Далее. Что значит строгие/нестрогие? Все ограничения абсолютно равноправны.
Мой совет - не изобретать велосипед, а изучить имеющейся опыт.
4. fixin 4326 24.02.26 11:15 Сейчас в теме
(3) ок. Значит, можно просто повторить механику групп доступа и будет аналогичный результат. Суть метода в том, что не нужно постоянно менять код по ролям, а можно менять код в одном месте.

Рассмотрим пример а-ля БСП.

Группа доступа 1:
Доступные контрагенты: все

Группа доступа 2:
Доступные склады: А, Б, В

Запрос имеет вид:

Истина В (
ВЫБРАТЬ истина ИЗ Справочник.ГруппыДоступа КАК ГруппыДоступа ГДЕ Пользователь = &Пользователь
   И Склад В ГруппыДоступа.ДоступныеСклады
   И Контагент В ГруппыДоступа.ДоступныеКонтрагенты)


Хотя думаю, можно оптимизировать, закэшировав этот запрос.

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

Ваш совет, увы, неприменим. Потому что все 10 лет применения RLS никто не догадался до этого метода.
Нет такого ОПЫТА. Это новый ОПЫТ.

Пусть у разработчиков будет выбор. Кому нравятся дебри БСП, пусть используют их, кто хочет прозрачности - пусть использует НОВЫЙ метод.
5. naf2000 24.02.26 11:29 Сейчас в теме
Пока условия лежат в шаблоне RLS ничего не выйдет с прикручиванием групп доступа, ибо оно статично. Еще раз - изучайте бсп. Почему там условия ограничений вынесены в модули менеджеров?
6. fixin 4326 24.02.26 11:31 Сейчас в теме
(5) как не выйдет, я вам рабочий запрос написал в (4)? Есть претензии к запросу? Что значит статично?
БСП изучать не планирую. Оно неповоротливо как динозавр. Предпочитаю гибкость.
Для отправки сообщения требуется регистрация/авторизация