Доработка RLS для УНФ

15.06.20

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

Инструкция для тех, кто столкнулся с RLS на управляемых формах впервые и не знает, с чего начать.

Довелось мне столкнуться со следующей задачкой: ограничить пользователей по подразделениям, то есть пользователь подразделения 1 не должен видеть никаких движений подразделения 2. Некий опыт в этом у меня, конечно присутствовал, но только для УТ 2.3 (10.3) и то с 0, и когда я увидел, что тут активно используются шаблоны - опечалился. Наученный опытом работы с ограничением прав по записям хочу помочь тем, кто столкнулся с данной проблемой, и по шагам расписать мой опыт. Заранее говорю, что я не специалист в данной области, а статья не полная и всеобъемлющая. Также я использовал УНФ для Украины версии 1.6.5.2, но думаю, это будет актуально многим конфигурациям на БСП 3.

Итак, начать необходимо с создания "контейнера" для хранения отборов по подразделениям. Заходим в ветку "определяемые типы" и добавляем в объект "ЗначениеДоступа" наш справочник, для которого будет выполняться отбор.


В общем модуле УправлениеДоступомПереопределяемый модифицируем процедуру ПриЗаполненииВидовДоступа, добавляя наш объект и его представление
 

    //  Начало 
    ВидДоступа = ВидыДоступа.Добавить();
    ВидДоступа.Имя = "СтруктурнаяЕдиница";
    ВидДоступа.Представление = НСтр("ru='Подразделение';uk='Підрозділ'");
    ВидДоступа.ТипЗначений   = Тип("СправочникСсылка.СтруктурныеЕдиницы");
    // Окончание 



После чего выполняем обновление информационной базы ( запуск с параметром /c ЗапуститьОбновлениеИнформационнойБазы) для того, чтобы отработала процедура "ПроверитьОбновлениеПараметровРаботыПрограммы" общего модуля "Стандартные подсистемы сервер" и обновила список настроек ограничений прав доступа.

В ограничениях групп доступа появляется новый вид доступа "Подразделение", которое можно назначить профилю (применимо к моей задаче) или пользователю. 



Далее совсем просто: открываем любую роль (например "ДобавлениеИзменениеПодсистемыПродажи", ибо продажники крайне ревниво относятся к своим секретам) которая использует РЛС с шаблонами и копируем в нашу (необходимую) роль шаблоны "по значениям" и "по значениям расширенный". 

В начале шаблона присутствует небольшое описание, как с ним работать. Лично мне проще разбираться на нескольких примерах, а описание читать только когда что то уяснил из практики, поэтому мое описание немного отличается от того что там написано.

В ограничение доступа данным добавляем строку. Поля - прочие поля, Ограничение доступа:
1) простое условие 

#ПоЗначениям( "Документ.ЗаказНаПроизводство ","Чтение","",
"СтруктурнаяЕдиница","СтруктурнаяЕдиница", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )

1й параметр - таблица, 2й параметр - вид доступа (чтение, добавление,изменение итд..) 4й параметр - имя ограничения данных вида досупа (то что мы указали в  ВидДоступа.Имя=; в модуле) 5й параметр - реквизит таблицы (документа,справочника).

2) сложное условие (пример: документ перемещение, которому нужно использовать 2 подразделения)

#ПоЗначениямРасширенный( "Документ.ПеремещениеЗапасов","Чтение","","",
"(", "СтруктурнаяЕдиница","СтруктурнаяЕдиница", "ИЛИ","СтруктурнаяЕдиница","СтруктурнаяЕдиницаПолучатель", ")",
"","", "", "","", "",
"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","" )

Структура полей аналогична, но есть параметр "о" и "о1" -открывающиеся и закрывающиеся скобки, внутри которых может быть несколько параметров.

Аналогичная структура для журналов документов и справочников. Для ЖД нужно указать вместо реквизита документа граф, по которому будет вестись ограничение, и проследить чтобы в дин. списке было свойство запроса "Разрешенные" ибо это может вызвать ошибку. Сталкиваясь с ограничением по регистрам (в моем случае это был регистр "ЗаказыНаПроизводство") можно увидеть что в регистре нет ни измерения ни ресурса ни реквизита "СтруктурнаяЕдиница", такая же проблема может возникнуть с документами или справочников, когда нужно ограничить доступ по подчиненному свойству. И такая возможность есть в данных шаблонах! Через RLS мы добавляем к выборке еще одну таблицу, содержащую данный реквизит, например документ-регистратор, на который и накладываем отбор по подразделению. Благодаря внутреннему соединению все лишние толя будут обрезаны, и мы получим лишь необходимые записи.

#ПоЗначениямРасширенный( "РегистрНакопления.ЗаказыНаПроизводство","Чтение","",
"ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство КАК Т1
ПО Т.ЗаказНаПроизводство = Т1.Ссылка",
"",
"СтруктурнаяЕдиница","Т1.СтруктурнаяЕдиница","",
"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","" )


Еще одно обновление информационной базы (связанное с добавлением роли, вам может и не понадобится) и вуаля! 


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

P.S. И помните! Самый коварный подводный камень RLS - дать пользователю вторую роль на тот же объект, на которой ограничения не настроены ;)

УПД от 15.06.2020 такое же изменение необходимо внести в "ЗначениеДоступаОбъект"

RLS УНФ УФ Ограничение на уровне записей Подразделение

См. также

SALE! 20%

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

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

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

13000 10400 руб.

02.09.2020    122254    673    389    

715

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

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

12000 руб.

06.12.2023    2989    15    1    

34

Запрет доступа к данным по зарплате для БП 3.0 и КА 2.5

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

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

5700 руб.

27.05.2021    32751    204    89    

165

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3565    11    1    

34

Расширение для разграничения доступа к контрагентам и обработка для группового назначения доступа для Бухгалтерии (RLS) 3.0.143.42

Роли и права Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение предназначено для Бухгалтерии предприятия (версии ПРОФ и КОРП). Типовая конфигурация остается на поддержке. С помощью расширения менеджер по продажам будет иметь доступ к контрагентам и списку их документов только в случае, если он является для них ответственным. Пользователю с полными правами также доступна обработка «Назначение ответственных» для группового добавления/удаления ответственного в карточке контрагента. Есть версия данного расширения для клиентов Fresh - в магазине расширений (Fresh)

9360 руб.

14.09.2022    5761    7    4    

9

Роли для кладовщика

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

Расширение, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

2520 руб.

21.05.2019    1692314    552    192    

133

Универсальная система оповещений в базе или по почте по произвольным условиям, расписанием, ролям и пользователям (Расширение / конфигурация для платформ 8.3.6+, для ЛЮБЫХ баз)

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

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

18000 руб.

29.11.2019    24695    13    8    

33
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. FesenkoA 57 14.05.18 16:06 Сейчас в теме
Очень качественно скрыл наименование профиля группы доступа, ничего не скажешь))) Благо на примере своей учетки делал..
3. пользователь 15.05.18 05:49
Сообщение было скрыто модератором.
...
6. пользователь 17.05.18 05:53
Сообщение было скрыто модератором.
...
2. Armando 1399 14.05.18 22:04 Сейчас в теме
Инструкция для тех, кто столкнулся с RLS на управляемых формах

А чем RLS на управляемых формах принципально отличается от RLS на обычных формах? И причем вообще здесь формы? RLS работает и во внешнем соединении, где вообще нет форм.
4. FesenkoA 57 15.05.18 09:18 Сейчас в теме
(2) "На управляемых формах" => "в конфигурациях на БСП 3: УНФ для Укр/РФ, УТ3/УТ11, CRM3", это я хотел сказать. На старых конфигурациях было больше шаблонов и меньше параметров при их вызове. Кроме того шаблоны были похожи на простой запрос, и использовались, если мне не изменяет память, реже.

Сами RLS поменялись точно так же как и запросы: чуть менее чем никак.
5. Yashazz 4709 17.05.18 01:23 Сейчас в теме
Лучший совет по работе с РЛС - никогда с этим не связывайтесь. А если уж надо, то делайте реквизит, агрегирующий несколько понятий, определяющих доступ (как например справочники "Аналитика..." в типовых) и вешайте простейший запрос Реквизит В (&СписокДопустимых). Всё остальное, как ни прыгай, будет самым идиотским образом оттранслировано в запросы СУБД либо просто превратится в малопонятную и непрозрачную кашу.
7. FesenkoA 57 17.05.18 10:03 Сейчас в теме
(5) согласен, если есть возможность справиться отборами - лучше справиться отборами. Но бывают случаи когда без них никак:есть Н подразделений, которые не должны видеть ничего друг у друга кроме остатков. Мы подсчитали количество отчетов, списков и справочников (да, там еще по ГП отбор. Зная что выпущено - можно понять что за работы были) и решили пилить РЛС... К счастью только структурные единицы и только производство
8. VLS24 03.12.19 19:34 Сейчас в теме
(5)
Почитайте
ОграничениеДоступаНаУровнеЗаписейУниверсально
И уж тем более почитайте про разделение данных
9. teyana 35 14.05.20 18:24 Сейчас в теме
Спасибо автору за статью.
Помогло в создании RLS по номенклатуре в УНФ 1.6.
FesenkoA; +1 Ответить
10. greencom 07.10.20 21:37 Сейчас в теме
Пытался сделать описанное в Business Automation Software for small company (1.6.11.2) . После обновления базы НЕ появляется вид доступа
11. VictorKa 12 13.10.20 02:21 Сейчас в теме
12. FesenkoA 57 16.10.20 10:53 Сейчас в теме
Оставьте свое сообщение