Отладка шаблонов ограничения доступа RLS

10.11.15

Разработка - Инструментарий разработчика

Если вы не можете разобраться в тексте шаблона ограничений прав доступа RLS - попробуйте воспользоваться этой обработкой!

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
ПрепроцессорШаблоновОграничений.epf
.epf 19,86Kb
481 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

Мы столкнулись с необходимостью добиться правильной работы шаблона ограничений прав в конфигурации "Бухгалтерия предприятия, редакция 3.0". Проблема заключалась в том, что разделение прав по организациям для штатных ролей конфигурации работало правильно, а для тех ролей, которые добавили мы - не работало вовсе.

Мы попробовали воспользоваться обработкой //infostart.ru/public/264989/ , однако с нашим шаблоном она не справилась - некоторые синтаксические конструкции не поддерживались. В исследуемом шаблоне было:

  • 52 параметра;
  • встроенные предопределённые шаблоны;
  • параметры сеанса;
  • функциональные опции;
  • многочисленные инструкции препроцессора, в том числе вложенные;
  • просто около 3000 строк.

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

Возникла идея написать обработку, которая организует препроцессинг ограничения прав доступа, показывая запрос, который в конце концов применяет 1С. В ограничениях прав доступа могут быть:

  • подстрока ## - для вставки в текст одного символа #;
  • подстрока #ТекущаяТаблица - для вставки в текст псевдонима текущей таблицы;
  • подстрока #ИмяТекущейТаблицы, #CurrentTableName - для вставки в текст полного имени таблицы;
  • подстрока #ИмяТекущегоПраваДоступа, #CurrentAccessRightName - для вставки в текст имени права доступа;
  • подстроки #ЕСЛИ #ИНАЧЕЕСЛИ #ИНАЧЕ #ТОГДА #КОНЕЦЕСЛИ #IF #ELSIF #ELSE #ENDIF - для использования препроцессора;
  • использование сложных условных выражений с операциями И, ИЛИ, НЕ, <, >, <=, >=, =, <> и функции СтрСодержит для использования препроцессора;
  • использование значений параметров сеанса и функциональных опций через синтаксис &Параметр;
  • вызов шаблонов ограничений с передачей неограниченного числа параметров. При этом тексты шаблонов ограничений могут содержать всё от пункта 1) до 7), плюс вызов вложенных шаблонов ограничений и подстрок #Параметр(номер параметра).

Для использования реализованной обработки необходимо:

  • Выгрузить файлы конфигурации. (Конфигуратор -> Главное меню -> Конфигурация -> Выгрузить файлы конфигурации...)
  • Запустить обработку в режиме предприятия.
  • Последовательно указать: Файл прав (Файл сохранённой роли), Объект прав (Полное имя таблицы или реквизита), Имя права (Обычно чтение).
  • Проверить настройки: Имя текущей таблицы, имя текущего права доступа, текущая таблицы. Они должны заполниться автоматически.
  • Нажать кнопку "Выполнить".
  • После выполнения пункта 5) должна заполниться таблица параметров. Если в ограничении прав доступа использовались подстроки &Параметр, то они должны появиться в таблице Параметры.
  • В теории 1С допускает наличие отдельного ограничения доступа для каждого реквизита (поля). Поэтому результат будет показан в виде списка полей. При активации элемента списка автоматически заполняется текстовый документ - результатируещей строкой запроса.
  • Обработка позволяет менять значения параметров и настроек. После этого можно снова нажимать кнопку "Выполнить".

В результате получаем гораздо более читабельный текст, который можно использовать в конструкторе запросов ограничения доступа или, с минимальными довольно очевидными изменениями, его можно выполнить в консоли запросов.

 

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

шаблон RLS права доступа

См. также

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    70088    365    170    

316

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

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

16500 руб.

02.09.2020    261089    1351    421    

1170

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    38725    107    46    

122

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    57166    114    32    

126

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    4038    13    1    

18

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

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

17000 руб.

10.11.2023    25625    93    46    

102

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Программист Бизнес-аналитик Руководитель проекта 1С 8.3 Платные (руб)

В крупных внедрениях 1С типовая почти всегда дополнена расширениями, а конфигуратор показывает их раздельно. «Поиск ссылок на объект» в ERP — минуты ожидания, и даже после него неясно: типовое поведение, дополнение из расширения или переопределённый обработчик. Analyzer 1C — веб-инструмент, который парсит выгрузку (основную плюс все расширения) и собирает единый граф знаний в ArangoDB. Любой межсущностный запрос — за доли секунды. Внутри: — Сквозные пометки «Доб.» / «Заимств.» / переопределения во всём UI — Импакт-анализ через подписки, регламентные задания и переопределения — Анализ запросов BSL: кто читает и пишет объект — модули, формы, СКД — Роли: матрица «роль × объект × право», RLS, программные РольДоступна, PRIV — Конструктор профилей, граф функций, обработчики обновления, XDTO, функциональные опции — Мгновенный поиск по конфигурации Разворачивается за минуту через Docker, без интернета. Любая 1С:Предприятие 8.3+.

12200 руб.

17.04.2026    6655    28    34    

43

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки. 1.3.11 Доработан механизм контекстной подсказки по метаданным

9500 руб.

17.05.2024    53416    185    63    

217
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. hotey 42 02.07.14 05:52 Сейчас в теме
Обработка только для обычного интерфейса подходит? Или можно и в управляемом запускать?
3. VSmirnoff 147 02.07.14 16:17 Сейчас в теме
(1) hotey, Форму обработки написали для обычного интерфейса. Несложно переделать и под управляемое приложение, но у нас такой необходимости до сих пор не возникло.
2. wolfsoft 2421 02.07.14 15:37 Сейчас в теме
Плюс за движения в нужном направлении, ибо отладка RLS со стороны платформы 1С находится в полной ... Как, впрочем, и многое другое.
4. y-ha 09.07.14 12:50 Сейчас в теме
Добрый день! Не скачивается обработка! Перезалейте пожалуйста!
5. VSmirnoff 147 09.07.14 14:10 Сейчас в теме
(4) y-ha, Я проверил - файл скачивается...
6. y-ha 10.07.14 13:08 Сейчас в теме
Хм, а теперь нормально скачалось. Но все равно спасибо.
7. bayce 49 13.07.14 23:13 Сейчас в теме
8. kredko 20 14.07.14 05:59 Сейчас в теме
Добрый день. Обработка не работает.
При выборе Имя права "Read" выскакиевает ошибка:
{Форма.ФормаОбычная.Форма(129)}: Итератор для значения не определен
Для каждого лУсловиеОграничения из лИмяПрава.restrictionByCondition Цикл
Или "Edit":
{Форма.ФормаОбычная.Форма(129)}: Поле объекта не обнаружено (restrictionByCondition)
Для каждого лУсловиеОграничения из лИмяПрава.restrictionByCondition Цикл
Пробую на УПП 1.3.48 + БИТ.Финанс. Пользы от этой обработки пока не увидел.
9. VSmirnoff 147 14.07.14 15:34 Сейчас в теме
(8) kredko, Добрый день!
На какой платформе запускаете обработку? 8.2? 8.3?
Пришлите в личку исходный xml-файл, мы попробуем определить причину ошибки.
invertex; +1 Ответить
10. AlX0id 25.07.14 12:23 Сейчас в теме
Конфигуратор -> Главное меню -> Конфигурация -> Выгрузить файлы конфигурации...

Прям все? Нужно-то наверняка не так много..
11. VSmirnoff 147 25.07.14 17:52 Сейчас в теме
(10) AlX0id, Дело в том, что в 8.3 (по сравнению с 8.2) команда "Выгрузить файлы конфигурации..." по умолчанию скрыта, её можно вернуть, настроив меню. Мы и сами её нашли только после вашего вопроса :-), хотя в статье "по инерции" упомянули название старой команды (в 8.3 в меню есть команда "Выгрузить конфигурацию в файлы...").

Понятно, что воспользовавшись командой "Выгрузить файлы конфигурации..." можно выбрать в дереве и выгрузить в файл только интересующую роль.
Дмитрий74Чел; +1 Ответить
13. AlX0id 06.09.14 22:28 Сейчас в теме
(11) VSmirnoff,
Во блин, звезды сошлись ))
Терь буду знать, что есть таки такая возможность в 8.3 )
14. kudzia1 04.10.14 16:16 Сейчас в теме
(11) VSmirnoff, Кстати да !
Буквально седня пытался выгрузить и сравнить !
Спасибо.
12. rustemg 06.09.14 11:30 Сейчас в теме
У меня такая же ошибка.
{Форма.ФормаОбычная.Форма(129)}: Итератор для значения не определен
Для каждого лУсловиеОграничения из лИмяПрава.restrictionByCondition Цикл
15. ReXt0n 09.10.14 09:22 Сейчас в теме
{Форма.ФормаОбычная.Форма(129)}: Поле объекта не обнаружено (restrictionByCondition)
Для каждого лУсловиеОграничения из лИмяПрава.restrictionByCondition Цикл

1С:Предприятие 8.2 (8.2.19.80), Управление производственным предприятием, редакция 1.3 (1.3.51.3)
16. VSmirnoff 147 09.10.14 20:12 Сейчас в теме
(15) ReXt0n, (12) rustemg, мы выполнили дополнительное тестирование, выяснилось, что применённые методы всё-таки работают только на 8.3. Обработка перезалита, теперь при попытке её запуска в конфигурации 8.2 выдаётся сообщение "Данная обработка не поддерживает данную версию 1С Предприятия" и работа завершается. Кроме того, расширена маска для поиска файлов для загрузки. Теперь она выглядит так: "Role.*.Rights.xml;Роль.*.Права.xml".
17. Sergoninfostarru 2 22.10.14 23:35 Сейчас в теме
Версия 1С:Предприятие 8.3 (8.3.4.465). Открыл обработку и попробовал воспользоваться кнопкой выбора файла прав - дает "Данная обработка не поддерживает данную версию 1С:Предприятия". Режим работы - файловый, обычная прикладная программа. По формам обработки вижу, что это формы для работы в режиме обычной прикладной программы. Пробую записать путь в виде строки, без выбора из каталога, не активизируются следующие реквизиты : "Объект прав, имя права" и т.д. Все другие реквизиты серые и недоступные. Обработку не могу запустить !!!
invertex; veretennikoff; +2 Ответить
18. AlexanderKai 10.11.14 14:50 Сейчас в теме
Версия 8.3.5.1098 - пишет, что не поддерживается данная версия.
19. tattoo-freedom 13.11.14 11:34 Сейчас в теме
1С:Предприятие 8.3 (8.3.5.1146) тоже пишет не поддерживается
20. VSmirnoff 147 13.11.14 13:18 Сейчас в теме
(19) tattoo-freedom, (18) AlexanderKai, (17) Sergoninfostarru
Подправили обработку, файл перезалил.
21. tattoo-freedom 17.11.14 09:58 Сейчас в теме
22. Makushimo 160 02.12.14 12:35 Сейчас в теме
Добрый день.
Подскажите, что не так.

На УТ 11,1.9.51
выгрузил файлы
запустил обработку
выбрал файл роли ПартнерСамообслуживания
Объект ЗаказКлиента
право Чтение

Нажал Выполнить
параметры заполнились
список полей пуст

и где обещанный текст запроса, который потом "можно спокойно отлаживать" где-то. ??

23. Makushimo 160 02.12.14 13:40 Сейчас в теме
Объясните, пожалуйста, как вот это вот работает:

Процедура ПолеВводаФайлПравНачалоВыбора(пЭлемент, пСтандартнаяОбработка)
.............	
	лФабрикаXDTO = СоздатьФабрику();
.......................	
КонецПроцедуры

Функция СоздатьФабрику()
	
	Возврат ФабёрикаXDTO;
	
КонецФункции
Показать


Переменная ФабёрикаXDTO до Возврат из функции не определена, однако, когда она возвращается из функции, то мистическим образом превращается в объект платформы ФабрикаXDTO.

КАК ЭТО РАБОТАЕТ?

а после перезапуска сеанса отладки вообще стало ругаться на эту вот строку

Возврат ФабёрикаXDTO;

шайтан какой-то
24. kredko 20 04.12.14 12:44 Сейчас в теме
Всё работает. Всё хорошо, всё замечательно, но пользы от этой обработки не увидел.
25. m_aster 130 11.01.15 14:37 Сейчас в теме
Выгрузил набор прав с шаблоном ограничений, автозаполнения параметров не увидел, как дальше двигаться?
26. Mantis 137 29.01.15 05:57 Сейчас в теме
Скачал...
1С:Предприятие 8.2 (8.2.19.83) - пишет, что не поддерживается данная версия.

Функция СоздатьФабрику()
код функции за комментирован

убрал комментарий....

Нажать кнопку "Выполнить".- ничего не происходит.....

Как вообще выгрузить роли с шаблонами ?

27. DoctorRoza 29.01.15 10:08 Сейчас в теме
Сегодня возникла необходимость разобраться в RLS в ЗУПе. Но у меня 8.2. Автор! Выложите, пожалуйста, обработку под 8.2 отдельно. Спасибо!.
28. cargobird 323 30.03.15 10:41 Сейчас в теме
Да, для 8.2 выложить было бы неплохо...
29. DoctorL 06.11.15 10:56 Сейчас в теме
Переделайте уже для 8.3 то!
30. kasper076 116 06.11.15 11:07 Сейчас в теме
35. v.l. 437 11.04.16 13:29 Сейчас в теме
(30) kasper076, тем, что эта публикация написана раньше на 1 месяц.
36. kasper076 116 11.04.16 18:22 Сейчас в теме
(35) Vladal, не обратил внимания. Пасиб.
31. VSmirnoff 147 10.11.15 18:16 Сейчас в теме
Реализована версия для 8.2 и 8.3
34. Гость 11.04.16 11:40
(31) VSmirnoff,
Добрый день.
Скачала обработку, а там только обычная форма. Для управляемого приложения варианта обработки нет?
32. pzub 14.12.15 20:47 Сейчас в теме
Помогите, пожалуйста разобраться:

Пытался разобрать шаблон прав из БСП 2.1
#ПоНаборамЗначений("Журнал.Поставщики", "Чтение", "", "Ссылка" )

Обработка выдала следующие сообщения:


Встретил невычисляемое условие: лУсловиеПараметры.ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) .
Встретил невычисляемое условие: лУсловиеПараметры.ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) .
Встретил невычисляемое условие: лУсловиеПараметры.ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) .
Встретил невычисляемое условие: НЕ лУсловиеПараметры.ОграничиватьДоступПоВидуПользователи = ""
И лУсловиеПараметры.ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) .
Встретил невычисляемое условие: НЕ лУсловиеПараметры.ОграничиватьДоступПоВидуВнешниеПользователи = ""
И НЕ лУсловиеПараметры.ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) .
Встретил неизвестный шаблон ограничения: КОНЕЦЕСЛ.

Результирующий текст конечно тоже не рабочий.

33. kalyaka 1182 30.12.15 11:41 Сейчас в теме
Выбрал файл прав, Объект прав, Имя прав -> заполнились настройки. После этого нажал кнопку Выполнить -> заполнился список параметров без значений, список полей из одного пустого поля, оригинальный текст.
Результирующий текст при выборе пустого поля не заполняется.
Что я делаю не так?
Прикрепленные файлы:
Role.ДобавлениеИзменениеДанныхБухгалтерии.Rights.xml
Catalog.ДоговорыКонтрагентов.xml
37. VSmirnoff 147 12.04.16 20:02 Сейчас в теме
- В данный момент обработка для управляемого приложения не реализована. Пока на неё нет времени.
- К сожалению мне не удалось реализовать полностью универсальный код. Например, сложности с текстом вида "Значение(Справочник.ВнешниеПользователи.ПустаяСсылка)". Опять же, позже постараюсь с этим разобраться, но точно не в ближайшее время :-(
40. dr2c 45 08.02.17 13:49 Сейчас в теме
(37) УТ 10.3 поддерживает? А то http://infostart.ru/public/390087/ скачал, а нормально она работает только со своим примером...
41. dr2c 45 09.02.17 13:51 Сейчас в теме
45. adapter 463 19.09.18 14:00 Сейчас в теме
(37) Разобрались? Скачал и тоже получил эту ошибку
Встретил невычисляемое условие: лУсловиеПараметры.ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка)

и
Встретил неизвестный шаблон ограничения: КОНЕЦЕСЛ
38. Чародей 18 12.10.16 14:24 Сейчас в теме
В служебных сообщениях вышло: "Встретил неизвестный шаблон ограничения: ОБЪЕКТРЕМОНТА" Не работает, 8,2 конфигурация ТОиР.
39. dr2c 45 08.02.17 13:40 Сейчас в теме
УТ 10.3 поддерживает?
42. пользователь 23.05.17 10:09
Сообщение было скрыто модератором.
...
43. ser6702 185 21.09.17 13:17 Сейчас в теме
Возможно корректнее уточнить: Для каких версии БСП и на каких платформах работает обработка?
44. Famza 85 21.11.17 11:50 Сейчас в теме
Пробовал посмотреть право редактирование роли "Пользователь" объекта "Справочник.Контрагенты" - поля так и остались пустыми. УПП 1.3.96.1, 8.3.11.2867
46. check2 399 14.10.18 03:17 Сейчас в теме
Чувак, низкий поклон тебе... Выручил.
47. Lupeykin 5 02.12.19 10:22 Сейчас в теме
К сожалению у меня не заработало, Встретил неизвестный шаблон ограничения: КОНЕЦЕСЛ.
48. matytsin_new 21 27.04.20 14:00 Сейчас в теме
Обработка помогла.
До этого не задумывался, что в именах шаблонов не допускаются символы подчеркивания.
Спасибо
49. sabretoothed 14.08.20 09:18 Сейчас в теме
К сожалению, у меня не заработало
Прикрепленные файлы:
Для отправки сообщения требуется регистрация/авторизация