Методика подключения новых объектов к производительному методу RLS в 1С

24.03.24

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

В процессе общения с коллегами пришлось сталкиваться с вопросами по ошибкам RLS, поэтому публикуем первый материал из цикла по работе производительного метода RLS. Материал в формате пошаговой инструкции. Рассмотрим, как подключить новые объекты к этому механизму так, чтобы не возникло ошибок.

Содержание

1. Подключение новых ссылочных типов к производительному методу RLS в 1С
2. Подключение новых регистров сведений к производительному методу RLS в 1С
3. Дополнение к инструкциям по настройке RLS в 1С

 

Подключение новых ссылочных типов к производительному методу RLS в 1С

1. В модуле менеджера объекта добавляем процедуру ПриЗаполненииОграниченияДоступа, в ней настраиваем доступ по отбору. Если реквизит отбора не присутствует среди реквизитов, а является реквизитом одного из полей, то необходимо использовать таблицу типа данного поля через «ПрисоединитьДополнительныеТаблицы». Пример:

// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
	"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК Т
	|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК Т2 
	|	ПО Т2.Ссылка = Т.Подразделение
	|;
	|РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Т2.Владелец)";
КонецПроцедуры

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

// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(ОрганизацияRLS)";
КонецПроцедуры

2. В модуле форму объекта добавляем:

a. В событие «ПриЧтенииНаСервере» код:

// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом

 b. В событие «ПослеЗаписиНаСервере» код:

// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	// Конец СтандартныеПодсистемы.УправлениеДоступом

3. Добавляем объект в определяемые типы «ВладелецЗначенийКлючейДоступа» и «ВладелецЗначенийКлючейДоступаДокумент» если объект – документ.

4. В ОМ «УправлениеДоступомПереопределяемый» прописываем РС в процедуре «ПриЗаполненииСписковСОграничениемДоступа

5. В шаблонах ролей добавить шаблон на чтение:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе Истина
#КонецЕсли

 

Подключение новых регистров сведений к производительному методу RLS в 1С

Данный алгоритм рассматривает РС без регистраторов

1. Добавляем РС в определяемый тип «ВладелецЗначенийКлючейДоступаНаборЗаписей»

2. В ОМ «УправлениеДоступомПереопределяемый» прописываем РС в процедуре «ПриЗаполненииСписковСОграничениемДоступа».

3. В модуле менеджера добавляем процедуру ПриЗаполненииОграниченияДоступа, в ней настраиваем доступ по отбору. Если реквизит отбора не присутствует среди измерений, ресурсов, реквизитов, а является реквизитом одного из полей, то необходимо использовать таблицу типа данного поля через «ПрисоединитьДополнительныеТаблицы». Пример:

// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
	"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК Т
	|ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК Т2 
	|	ПО Т2.Ссылка = Т.ЗаказПоставщику
	|;
	|РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Т2.Подразделение)";
КонецПроцедуры

В случае если поле (в нашем случае «ЗаказПоставщику») имеет сложный тип, то для улучшения производительности необходимо добавлять отбор RLS в реквизиты РС, и заполнять его перед записью. В таком случае текст будет иным:

// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(ПодразделениеRLS)";
КонецПроцедуры

4. В справочник «ИдентификаторыОбъектовМетаданных» добавляем предопределенный элемент с именем «РегистрСведений» + <ИмяРС>, пример: РегистрСведенийСостояниеОбеспеченияТС

5. В шаблонах ролей добавить шаблон на чтение:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийСостояниеОбеспеченияТС", "ЗаказПоставщику", "", "", "", "")
#Иначе Истина
#КонецЕсли

где в первом параметре шаблона «ДляРегистра» указывается нами добавленный в П4. предопределенный элемент справочника, во втором поле РС с которым связан отбор. В нашем случае это ЗаказПоставщику «Т2.Ссылка = Т.ЗаказПоставщику»

 

Дополнение к инструкциям по настройке RLS в 1С

Инструкции по подключению закончились, но это еще не все. Шаблоны доступа «ДляОбъекта» и «ДляРегистра» в новые роли необходимо копировать из роли «ИзменениеУчастниковГруппДоступа».

Для корректной последующей работы всего механизма необходимо обновление данных. Для этого есть три варианта:

  1. Обработка «ОбновлениеВспомогательныхДанных.epf»;
  2. Запуск с параметром «ЗапуститьОбновлениеИнформационнойБазы» через параметр /С;
  3. Увеличения релиза.

 

Автор: Сергей Ж., ведущий разработчик 1С.

RLS производительный метод RLS

См. также

SALE! 15%

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159371    872    399    

861

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8839    42    5    

73

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8500 руб.

10.11.2023    10412    36    20    

61

SALE! 20%

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

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

5940 4752 руб.

27.05.2021    37553    264    92    

205

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

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

4560 руб.

21.05.2019    1694762    570    194    

137

Ценообразование, анализ цен Роли и права Системный администратор Платформа 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С УНФ. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

3000 руб.

23.02.2018    58450    160    261    

152

Роли и права Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

Данная система разработана как альтернатива стандартной системе напоминаний. Но имеет ряд существенных преимуществ: отображение в базе или с отправкой по почте, свое расписание, возможность фильтрации по ролям и пользователям, формирование своих запросов и макетов, шаблоны писем, работа в фоне. А также может блокировать работу пользователей при заданных условиях. Может работать в составе любой конфигурации. Имеется справка с описанием возможностей. (Обновление от 20.02.2024, версия 2.2, расширение)

19200 руб.

29.11.2019    25657    16    8    

37
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. puzo50 12.12.23 07:42 Сейчас в теме
извиняюсь, что немного не по теме, а если мы хотим изменить только у некоторых объектов РЛС на "производительный", а у остальных оставить
такое можно сделать? ищу информацию об этом с завидной регулярностью, но никак не могу найти ответ.
хотелось бы в большой базе по чуть-чуть внедрять, а не одним махом
2. PROSTO-1C 1615 12.12.23 08:17 Сейчас в теме
(1) Такое возможно если поправить вызов шаблонов. Типовой вызов:
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Справочник.БанковскиеКартыКонтрагентов","Чтение","",
"ГруппыФизическихЛиц","Владелец",
"","","","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли

Параметр сеанса ОграничениеДоступаНаУровнеЗаписейУниверсально зависит от выбранного метода. Если мы выберем "Производительный" метод, но в некоторых объектах уберем "Если" и оставим только вызов шаблона "ПоЗначениям", то для них будет обрабатываться как для стандартного метода.
JohnyDeath; Dach; user1089020; puzo50; rds_tomsk; +5 Ответить
3. puzo50 12.12.23 11:07 Сейчас в теме
(2) да, спасибо
обратное наверно работает - в нужных объектах написать #ДляОбъекта("") безо всяких если и иначе
PROSTO-1C; +1 Ответить
4. PROSTO-1C 1615 12.12.23 13:41 Сейчас в теме
(3) Для производительного метода рассчитываются специальные ключи — записи в регистрах сведений. Если его не включить, они рассчитываться не будут и шаблон "ДляОбъекта" будет срабатывать некорректно
5. maldinitaly 12.12.23 15:13 Сейчас в теме
(4) Добрый день. Столкнулся с RLS, но в теме плаваю, поэтому многое не получается. За статью отдельное спасибо. очень помогла. Подскажите где можно подчерпнуть информацию?
PROSTO-1C; +1 Ответить
10. PROSTO-1C 1615 13.12.23 10:46 Сейчас в теме
(5) мы брали информацию на ИТС, написано сложно, но разобраться можно:)
maldinitaly; +1 Ответить
6. Serg O. 297 12.12.23 16:45 Сейчас в теме
наверное неплохо бы сначала кратко изложить что такое вообще Производительный RLS
и чем от отличается от Стандартного RLS или ссылку на пару статей дать.
например, на статью Производительный RLS (от 2022г.)
triviumfan; +1 Ответить
7. nixel 1433 12.12.23 16:58 Сейчас в теме
Зачем это перепечатывание ИТС здесь? Тем более по такой чуткой к корректности внедрения под конкретную версию бсп подсистеме?
mitia.mackarevich; +1 Ответить
8. dhurricane 12.12.23 21:14 Сейчас в теме
(7) Я уже выучил на зубок ответы на этот вопрос :)
- не у всех есть доступ к ИТС;
- на ИТС так все сложно написано, что многим непонятно, нужна простая инструкция.
ixijixi; ong1990; PROSTO-1C; +3 Ответить
9. viramen 26 13.12.23 09:11 Сейчас в теме
(7) (8) Текст, который здесь написан, автоматически генерируется обработкой "Управление доступом" из состава БСП. Т.е. уже статьи на ИС пишет БСП)
11. PerlAmutor 155 13.01.24 03:38 Сейчас в теме
Есть свой ПараметрСеанса являющийся массивом как его использовать в Производительном RLS?
Оставьте свое сообщение