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

05.08.20

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

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

Итак, настраивал по инструкции //infostart.ru/1c/articles/313468/, спасибо автору. Но, оказалось что сделал немного лишнего, пришлось всё переделывать с начала,  т.к. там была задача создать специальный справочник для отбора контрагентов по нему. У меня же задача немного проще - отбор уже имеющихся объектов по имеющемуся справочнику. Однако эта статья базируется на выше указанной, поэтому я буду копировать кое что из неё.

Результатом будет появление вида отбора "Банковские счета" в штатных механизмах RLS. Поехали:

Откроем доступ на изменение к объектам:
  Определяемый тип: ЗначениеДоступаСГруппамиЗначенийДоступаОбъект

  1. Открываем подписку на событие "ОбновитьГруппыЗначенийДоступа", смотрим на какой определяемый тип она ссылается, у меня это "ЗначениеДоступаСГруппамиЗначенийДоступаОбъект". Добавляем в его тип значений справочник "БанковскиеСчетаКонтрагентов". Это для того чтобы процедура создания штатных групп доступа смогла подхватить наш тип отбора.
  2. Идём в модуль "УправлениеДоступомПереопределяемый" и добавляем код в процедуры:

 

Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт
  
   //...............//
   
   // +Наша вставка                      
    ВидДоступа = ВидыДоступа.Добавить();
    ВидДоступа.Имя = "БанковскиеСчета"; // имя вида доступа (используется в ролях для RLS)
    ВидДоступа.Представление    = НСтр("ru = 'Банковские счета'");
    ВидДоступа.ТипЗначений      = Тип("СправочникСсылка.БанковскиеСчетаКонтрагентов"); // критерий ограничения доступа
	// -Наша вставка

КонецПроцедуры


Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт
    
    //...............//

    // +Наша вставка
    // указание прав объектов метаданных, на которые распространяется RLS 
    Описание = Описание + "
	|Справочник.БанковскиеСчетаКонтрагентов.Чтение.БанковскиеСчетаКонтрагентов
	|Справочник.БанковскиеСчетаОрганизаций.Чтение.БанковскиеСчетаОрганизаций
	|";
    // -Наша вставка
    
КонецПроцедуры

 

  1. Запускаем 1С:Предприятие (можно сразу с параметром "ЗапуститьОбновлениеИнформационнойБазы", чтобы виды доступа создались), смотрим какие роли дают доступ к справочнику "Банковские счета". Я пользовался обработкой //infostart.ru/public/845764/.
  2. Идём в каждую роль и редактируем ограничение доступа к данным в ней так, чтобы наш новый отбор работал. Штатные отборы используют штатные шаблоны #ПоЗначениям, #ПоЗначениямРасширенный,  #ПоЗначениямИНаборамРасширенный, #ПоНаборамЗначений. Там всё весьма просто, если разобраться. Разобраться очень помогает статья //infostart.ru/1c/articles/995414/, спасибо Дмитрию. У меня получилось так:

 

Права "ДобавлениеИзменениеИнформацииПоПартнерам", "ЧтениеИнформацииПоПартнерам":

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


Право "СамообслуживаниеВнешнийПользовательИзменениеБанковскихСчетов":

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


Право "УдаленныйДоступСтандартныйИнтерфейсOData":

#ПоЗначениям("Справочник.БанковскиеСчетаКонтрагентов","Чтение","",
"БанковскиеСчета","Ссылка",
"","","","","","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )

При этом в роли "УдаленныйДоступСтандартныйИнтерфейсOData" отсутствовали шаблоны, поэтому я скопировал туда шаблон "ПоЗначениям" из роли "ПолныеПрава" и создал новое ограничение доступа к данным для "<прочие поля>"

  1. Запускаем 1С:Предприятие с параметром "ЗапуститьОбновлениеИнформационнойБазы", если ранее параметр не ставили. Если ставили - убираем. Идем НСИ и администрирование -> Администрирование -> Настройка пользователей и прав, выбираем нужный профиль, идём на вкладку "Ограничение доступа", добавляем ограничение по банковским счетам.
  2. Создаём группу доступа, указываем наш профиль, добавляем туда пользователей и проверяем что доступ к справочнику "Банковские счета" работает корректно.
  3. Самое нудное и неприятное. Проделываем пункт 4 для каждого объекта, к которому должна быть возможность ограничивать доступ по банковским счетам.

 

Для выполнения п. 7 планирую написать обработку, которая поможет автоматизировать эту нужную процедуру. Т.к. править роли программно нельзя, предположительно, обработка будет не на 1С и будет работать с базой данных или конфигурационными файлами. С радостью приму советы по этому поводу, всем спасибо!

RLS

См. также

SALE! 20%

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

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

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

13000 10400 руб.

02.09.2020    121599    670    389    

711

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

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

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

5700 руб.

27.05.2021    32719    204    89    

165

Автоподбор ролей для профилей и групп доступа в любых типовых базах 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    2964    13    1    

34

SALE! 20%

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

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

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

10000 8000 руб.

10.11.2023    3499    11    1    

33

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

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

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

9360 руб.

14.09.2022    5756    7    4    

9

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

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

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

2520 руб.

21.05.2019    1692302    552    192    

133

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

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

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

18000 руб.

29.11.2019    24688    13    8    

33
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ER34 27 06.08.20 16:26 Сейчас в теме
В комментарии к шаблону #ПоЗначениям() написано:

В(n) - Вид доступа - имя вида доступа, например, "Организации". Для полей составного типа, с целью повышения
// производительности, лучше указать несколько имен, например, "Организации,ГруппыФизическихЛиц",
// чем использовать несколько блоков параметров, с одним и тем же именем поля.

Как показала практика - это не правда, так делать нельзя. Выходом является использование шаблона #ПоЗначениямРасширенный:
#ПоЗначениямРасширенный(....
"(",
       "Организации","Организация", "ИЛИ",
	"ГруппыФизическихЛиц","Организация", 
")",.....)


Поправьте, если я не прав
2. nixel 1403 08.08.20 13:01 Сейчас в теме
Есть ли смысл в перепечатывании документации по БСП, причем в вашем случае актуальной только для конкретной версии БСП? Почему не открыть ИТС и не выполнить подключение справочника по инструкции, описанной там?
ER34; ShiningPhoenix; +2 Ответить
4. alen-s 28.09.23 11:17 Сейчас в теме
(2)добрый день, не подскажете где искать на итс эту инструкцию?
5. nixel 1403 28.09.23 16:11 Сейчас в теме
(4) документация по Библиотека стандартных подсистем. Подсистема "Управление доступом"
3. Zorro_arm 30.06.22 12:05 Сейчас в теме
Подскажите а конфигурация снимется с поддержки при добавлении таой функции?
Оставьте свое сообщение