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

См. также

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

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

12000 руб.

02.09.2020    169314    937    403    

905

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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

18000 руб.

06.12.2023    10011    48    5    

78

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

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

5940 руб.

27.05.2021    38963    281    98    

215

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

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

15000 руб.

10.11.2023    11400    40    27    

66

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

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

4560 руб.

21.05.2019    1695306    575    194    

137

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

1800 руб.

21.11.2024    3647    16    15    

18

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

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

3000 руб.

23.02.2018    59195    164    262    

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

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

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


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