Защита ролей расширений, добавленных администраторам БСП 3

25.11.23

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

Решение задачи защиты добавленных администраторам ролей расширений через группу доступа БСП 3

Скачать исходный код

Наименование Файл Версия Размер
Защита ролей расширений для администраторов БСП 3
.cfe 5,85Kb
55
.cfe 1.1 5,85Kb 55 Скачать бесплатно

Я выпускаю расширение конфигурации для разработчиков, которое имеет свою роль. Если ее включить для пользователя, то у него будут работать многие нужные только разработчику функции из моего расширения. Поэтому всем администраторам базы ее включать вредно, т.к. они могут не обладать нужными знаниями для корректного использования этих функций.

 

Как БСП обновляет роли администраторов базы

БСП регулярно удаляет все лишние с ее точки зрения роли у администраторов базы даже если они назначены через группы и профили доступа. Рассмотрим логику обновления ролей администраторов в БСП 3.1.7

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

АдминистраторСистемы
ПолныеПрава
ОбщиеПрава

Подробнее о стандартных ролях БСП можно прочитать в ИТС

Таким образом, если в расширении будет такая роль, то она будет автоматически добавляться всем администраторам. Остальные роли расширения будут удаляться у всех администраторов. А мне нужно добавить ее только выбранным администраторам. Поэтому моему расширению приходится добавлять роль прямо в пользователя базы при начале сеанса и перезапускать сеанс. Через некоторое время БСП опять удаляет эту роль и все повторяется. Это доставляет ощутимые неудобства пользователю.

 

Решение проблемы

Я направил в 1С пожелание обеспечить в БСП возможность выборочного добавления ролей администраторам.

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

Расширение конфигурации состоит из одного расширения метода УправлениеДоступомСлужебный.ОбновитьРолиПользователейИБ():

&Перед("ОбновитьРолиПользователейИБ")
Процедура зршОбновитьРолиПользователейИБ(ОбновляемыеПользователиИБ, ПарольПользователяСервиса)
	МассивПользователей = Новый Массив;
	Для Каждого ОписаниеПользователя Из ОбновляемыеПользователиИБ Цикл
		МассивПользователей.Добавить(ОписаниеПользователя.Ключ);
	КонецЦикла;	
	НовыеРолиПользователей = ТекущиеСвойстваПользователей(МассивПользователей).РолиПользователей;
	УдалитьОбновлениеПользователей = Новый Массив;
	Для Каждого ОписаниеПользователя Из ОбновляемыеПользователиИБ Цикл
		РолиДляУдаления = ОписаниеПользователя.Значение.РолиДляУдаления;
		Отбор = Новый Структура("Пользователь", ОписаниеПользователя.Значение.ПользовательСсылка);
		НовыеРоли = НовыеРолиПользователей.Скопировать(НовыеРолиПользователей.НайтиСтроки(Отбор), "Роль, РольСсылка");
		ОтменитьУдалениеРолей = Новый Массив;
		Для Каждого КлючИЗначение Из РолиДляУдаления Цикл
			Если ТипЗнч(КлючИЗначение.Значение) = Тип("ОбъектМетаданных") Тогда
				Роль = КлючИЗначение.Значение;
			Иначе
				Роль = Метаданные.Роли[КлючИЗначение.Ключ];
			КонецЕсли;
			Расширение = Роль.РасширениеКонфигурации();
			Если Истина
				И Расширение <> Неопределено 
				И НовыеРоли.Найти(Роль.Имя, "Роль") <> Неопределено
			Тогда
				ОтменитьУдалениеРолей.Добавить(КлючИЗначение.Ключ);
			КонецЕсли;
		КонецЦикла;
		Для Каждого Ключ Из ОтменитьУдалениеРолей Цикл
			РолиДляУдаления.Удалить(Ключ);
		КонецЦикла;
		Если РолиДляУдаления.Количество() = 0 И ОписаниеПользователя.Значение.РолиДляДобавления.Количество() = 0 Тогда
			УдалитьОбновлениеПользователей.Добавить(ОписаниеПользователя.Ключ);
		КонецЕсли;
	КонецЦикла;
	Для Каждого Ключ Из УдалитьОбновлениеПользователей Цикл
		ОбновляемыеПользователиИБ.Удалить(Ключ);
	КонецЦикла;
КонецПроцедуры

Проверено на БСП 3.1.7. Возможно будет работать и на других версиях 3.* . Буду постепенно обновлять эту информацию.

См. также

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

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

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

10000 руб.

02.09.2020    127288    688    389    

740

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

14400 руб.

06.12.2023    3795    20    1    

42

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

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

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

10000 руб.

10.11.2023    4765    12    2    

38

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

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

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

5700 руб.

27.05.2021    33361    206    89    

166

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

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

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

2520 руб.

21.05.2019    1692756    554    192    

133

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

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

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

9360 руб.

14.09.2022    5881    7    4    

9

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

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

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

19200 руб.

29.11.2019    24837    14    8    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. fatman78 17 18.06.23 23:38 Сейчас в теме
Фото у публикации - прямо в точку! Запарили уже эти глюки с ролями в БСП.
itoptimum; +1 Ответить
2. ivanov660 4349 19.06.23 09:33 Сейчас в теме
1. Я так понимаю у разработчиков БСП такой концепт - есть администратор (все доступно) и пользователи (разные роли и ограничения).
Автор предлагает, что-то вроде создании третьей группы - псевдо администраторы (ранее был популярен термин - псевдо полные).
2. А создать набор ролей для группы пользователей (псевдо полные) не получается?
bocharovki; artbear; +2 Ответить
3. tormozit 7146 19.06.23 09:55 Сейчас в теме
(2)
Что есть "набор ролей"? В БСП есть справочник "группы доступа". Я создал в нем свой элемент, добавил туда (в профиль этой группы доступа) роль из своего расширения и включил в состав этой группы нужного администратора. Но БСП игнорирует членство администраторов в других группах доступа кроме предопределенной группы "Администраторы" и не добавляет моему администратору базы (пользователю ИБ) назначенную таким образом мою роль. А расширение из этой статьи позволяет нейтрализовать это особое поведение для администраторов (только в отношении ролей из расширений) - назначенная через группу доступа роль появится у администратора базы (пользователя ИБ).
4. artbear 1530 19.06.23 09:58 Сейчас в теме
(0) Сергей, спасибо, полезный механизм!
5. triviumfan 93 19.06.23 16:10 Сейчас в теме
Не на правах рекламы, но буквально недавно наткнулся на похожую статью.
Правда автор предлагает явно роли прописывать, а тут значительно сложнее, но универсальней вроде.
tormozit; +1 Ответить
7. tormozit 7146 19.06.23 23:50 Сейчас в теме
(5) Да. Там решается та же проблема и у меня решение более универсальное, т.к. подходит для любых расширений.
12. Nikola23 698 21.06.23 09:47 Сейчас в теме
(5) решение из "той" статьи - корректное. В рамках методологии работы с БСП и без костылей, которые предложил автор текущей статьи
6. PerlAmutor 129 19.06.23 21:14 Сейчас в теме
Жаль в типовых нет роли "ТолькоПросмотр", а то для всяких Аудиторов приходится городить ПолныеПрава, но только на Чтение.
ardn; triviumfan; +2 Ответить
8. Lobion 20.06.23 14:09 Сейчас в теме
(6) В типовых решениях не так сложно создать роль ТолькоПросмотр. Где-то тут рядом статья об этом лежит.

В Профиле групп доступа необходимо отметить галками следующие пункты, начинающиеся на следующие фразы:
• Базовые права
• Запуск
• Использование
• Отчеты
• Подсистема
• Просмотр
• Раздел
• Чтение

Также рекомендую добавить следующие роли (для сохранения в файл):
• Вывод на принтер, в файл, в буфер обмена
• Редактирование, отправка по почте, сохранение в файл печатных форм
• Сохранение данных пользователя
• Сохранение настроек печати объектов по умолчанию
9. ardn 627 20.06.23 16:22 Сейчас в теме
(6)
Да, кстати, роль "для аудитора" очень часто требуется
10. MVK80 20.06.23 19:44 Сейчас в теме
(6), А профиль групп доступа Аудитор не подходит? Поставляется в типовых (видел в ERP, ЗУП, БП).
11. PerlAmutor 129 20.06.23 20:24 Сейчас в теме
(10) А он похоже только для подсистемы "Зарплата и кадры"
13. Dragonim 139 28.06.23 07:40 Сейчас в теме
(6) Создаете пользователя с необходимыми правами, а после для него выставляете дату запрета изменения данных 31.12.3999.
14. Erne100 286 27.07.23 00:25 Сейчас в теме
(13) Дата запрета изменения данных действует не на всё. Даже не на все документы.
Например в КА 2.5 не действует на "Заказ клиента"
15. tormozit 7146 25.11.23 17:14 Сейчас в теме
Обновил файл. Исправил ошибку
Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта Язык.Русский не совпадает со значением в расширяемой конфигурации
Оставьте свое сообщение