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

Публикация № 829474

Администрирование - Информационная безопасность - Роли и права

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

Инструкция для тех, кто столкнулся с 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 такое же изменение необходимо внести в "ЗначениеДоступаОбъект"

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. FesenkoA 47 14.05.18 16:06 Сейчас в теме
Очень качественно скрыл наименование профиля группы доступа, ничего не скажешь))) Благо на примере своей учетки делал..
2. Armando 1393 14.05.18 22:04 Сейчас в теме
Инструкция для тех, кто столкнулся с RLS на управляемых формах

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

Сами RLS поменялись точно так же как и запросы: чуть менее чем никак.
5. Yashazz 3321 17.05.18 01:23 Сейчас в теме
Лучший совет по работе с РЛС - никогда с этим не связывайтесь. А если уж надо, то делайте реквизит, агрегирующий несколько понятий, определяющих доступ (как например справочники "Аналитика..." в типовых) и вешайте простейший запрос Реквизит В (&СписокДопустимых). Всё остальное, как ни прыгай, будет самым идиотским образом оттранслировано в запросы СУБД либо просто превратится в малопонятную и непрозрачную кашу.
7. FesenkoA 47 17.05.18 10:03 Сейчас в теме
(5) согласен, если есть возможность справиться отборами - лучше справиться отборами. Но бывают случаи когда без них никак:есть Н подразделений, которые не должны видеть ничего друг у друга кроме остатков. Мы подсчитали количество отчетов, списков и справочников (да, там еще по ГП отбор. Зная что выпущено - можно понять что за работы были) и решили пилить РЛС... К счастью только структурные единицы и только производство
8. VLS24 03.12.19 19:34 Сейчас в теме
(5)
Почитайте
ОграничениеДоступаНаУровнеЗаписейУниверсально
И уж тем более почитайте про разделение данных
9. teyana 22 14.05.20 18:24 Сейчас в теме
Спасибо автору за статью.
Помогло в создании RLS по номенклатуре в УНФ 1.6.
FesenkoA; +1 Ответить
Оставьте свое сообщение

См. также

RLS добавление ограничения доступа к данным по произвольному справочнику через штатные механизмы

БСП (Библиотека стандартных подсистем) Информационная безопасность Роли и права v8 КА2 Россия УУ Бесплатно (free)

Решал задачу ограничения доступ к объектам по справочнику "Банковские счета" штатными средствами БСП. Конфигурация КА 2.2. В остальных на БСП должно работать так же. Хотел сделать инструкцию для себя на будущее, решил поделиться.

05.08.2020    593    ER34    2    

Изменение RLS в ЗУП 3.1 для ограничения доступа к списку сотрудников

Роли и права v8 v8::Права ЗУП3.x Россия Бесплатно (free)

При переезде из УПП в ЗУП 3.1 бизнесом было поставлено условие, система должна ограничивать видимость сотрудников по подразделениям организации. Позиция 1С по этому вопросу однозначна, так делать нельзя. Но с определенными оговорками и условиями можно...

10.07.2020    1548    Zhilyakovdr    0    

Тестируем быстро. Запуск сеанса под другим пользователем за 6 секунд!

Роли и права Пароли v8 v8::Права 1cv8.cf Бесплатно (free)

Как часто вам приходится запускать отладку под другим пользователем? Сколько времени у вас занимает запуск "чужого" сеанса? Убрать (если имеется) у себя аутентификацию ОС, сбросить пароль пользователя и восстановить его потом и т.д. Есть простой и действенный код, который поможет запускать сеансы под другим пользователем без ручной смены параметров аутентификации.

06.05.2020    3714    feva    15    

Права пользователя исключительно на просмотр (чтение) для УТ 11.4

Роли и права v8 v8::Права УТ11 Россия Бесплатно (free)

Простая и понятная инструкция по шагам для создания профиля группы доступа «Только чтение» для УТ 11.4. Выполняется в режиме пользователя, без использования конфигуратора и снятия базы с поддержки.

21.11.2019    5838    Aleksandr55555    7    

Типичные ошибки при разработке прав доступа

Роли и права v8 v8::Права Бесплатно (free)

Рассмотрим самые распространенные ошибки в разработке прав доступа.

02.10.2019    18758    YPermitin    57    

Проверка наличия роли у пользователя

Роли и права v8 v8::Права 1cv8.cf Бесплатно (free)

Допустим, мы добавили новую роль в конфигурацию. Потом добавили её в профиль группы доступа и назначили соответствующую группу доступа пользователю. Однако, в конфигурациях на основе БСП все известные программные проверки данной роли при включении пользователя в предопределенную группу доступа "Администраторы" не работают. В статье приведено решение данной задачи.

29.06.2019    15528    ni_cola    13    

Назад в прошлое! Небольшие заметки по администрированию пользователей в УПП

Роли и права v8 УПП1 Бесплатно (free)

Небольшие заметки по функционалу "Администрирование пользователей" конфигурации "Управление производственным предприятием" версии 1.3. Затрагиваются такие темы как: роли, профили доступа, дополнительные права, настройки пользователей и ограничения доступа на уровне записей (RLS).

06.06.2019    12977    YPermitin    18    

Подсистема БСП «Управление доступом», основные объекты и регистры

БСП (Библиотека стандартных подсистем) Роли и права v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free)

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    20723    ids79    9    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    36837    ids79    9    

Влияние настройки роли на потребление памяти

Роли и права v8::Права 1cv8.cf Бесплатно (free)

На днях разбирался с проблемой с потреблением памяти процессами конфигуратора и rphost. Как оказалось - причина в настройках ролей. Один поворот не туда, и настройки роли приводят к чрезмерному потреблению оперативки.

29.01.2019    13257    mickey.1cx    14    

RLS в УНФ

Информационная безопасность v8::Права УНФ Россия УУ Абонемент ($m)

Расширение для корректной работы системы RLS при ограничениях по организациям.

2 стартмани

09.11.2018    6597    3    user925427    0    

Управление доступом: роли, права, профили, группы доступа, функциональные опции, RLS

Роли и права v8::Права Бесплатно (free)

В 1С достаточно много механизмов, отвечающих за доступ к данным. Группы доступа, профили групп доступа, роли, права доступа, функциональные опции, RLS. Иногда сложно сразу понять, зачем все это нужно, как эти элементы друг с другом связаны и как ими пользоваться.

11.10.2017    88400    ekaruk    14    

Использование подсистемы "Управление доступом" из состава БСП версии 2.2+

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 1cv8.cf Бесплатно (free)

В статье описана последовательность манипуляций с подсистемой "Управление доступом" из библиотеки стандартных подсистем "1С" (БСП), результатом которых является реализация возможности настройки ограничения доступа к данным на уровне записей таблиц базы данных (RLS), применяя в качестве разграничителя доступа (критерия ограничения) любой из справочников конфигурации. Данная статья полезна для разработчиков, которые имеют дело либо с одной из типовых конфигураций "1С" (таких как "Бухгалтерия предприятие 3.0" или "Управление торговлей 11"), либо собираются внедрять (или дорабатывать) указанную выше подсистему в какую-либо другую конфигурацию.

18.11.2014    67257    Bassgood    84    

Распределение ролей пользователей к информационной базе для проверки аудиторами в типовых конфигурациях БП, ЗУП, ЗКБУ и БГУ.

Роли и права v8 1cv8.cf Россия Бесплатно (free)

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

13.05.2014    26574    OV_GCompany    5    

УТ 10.3 Контролируем остатки автоматически

Учет ТМЦ Роли и права v8 УТ10 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия УУ Бесплатно (free)

Один из менеджеров довольно крупной торговой конторы стройматериалов озадачил сделать ему так, чтобы "Торговля" сама предупреждала его о минимальном остатке товара на складах, так как "я сам постоянно забываю смотреть отчеты по точкам заказам и остаткам товаров, много организационной работы". Раньше немного занимался Delphi для души и немного для работы, сейчас же больше полугода работаю с 1С, и первое, что мне пришло в голову это Таймер на главной форме с запросом проверяющем остатки и выдающим предупреждение.

25.10.2012    17703    aleksxx    5    

Простое сравнение ролей 1С 8 (сравнение обработок, правил обмена XML, файлов txt, файлов mxl)

Роли и права v8 1cv8.cf Россия Бесплатно (free)

Порядок простых действий для казалось бы сложной операции по сравнению ролей в 1С8. Также можно сравнивать: - правила обмена данными XML - модули объектов в файлах txt - внешние обработки и отчеты - файлы формата mxl

18.08.2010    41317    sapervodichka    20