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

25.11.23

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

См. также

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

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

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

10000 руб.

02.09.2020    131200    711    390    

760

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

47

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

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

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

10000 руб.

10.11.2023    5545    14    2    

39

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

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

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

5700 руб.

27.05.2021    33829    209    89    

168

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

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

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

2520 руб.

21.05.2019    1693132    557    193    

136

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

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

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

19200 руб.

29.11.2019    24958    14    8    

35

Ограничения прав пользователей в УНФ

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

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

3000 руб.

23.02.2018    56374    150    261    

142
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. fatman78 17 18.06.23 23:38 Сейчас в теме
Фото у публикации - прямо в точку! Запарили уже эти глюки с ролями в БСП.
itoptimum; +1 Ответить
2. ivanov660 4364 19.06.23 09:33 Сейчас в теме
1. Я так понимаю у разработчиков БСП такой концепт - есть администратор (все доступно) и пользователи (разные роли и ограничения).
Автор предлагает, что-то вроде создании третьей группы - псевдо администраторы (ранее был популярен термин - псевдо полные).
2. А создать набор ролей для группы пользователей (псевдо полные) не получается?
bocharovki; artbear; +2 Ответить
3. tormozit 7166 19.06.23 09:55 Сейчас в теме
(2)
Что есть "набор ролей"? В БСП есть справочник "группы доступа". Я создал в нем свой элемент, добавил туда (в профиль этой группы доступа) роль из своего расширения и включил в состав этой группы нужного администратора. Но БСП игнорирует членство администраторов в других группах доступа кроме предопределенной группы "Администраторы" и не добавляет моему администратору базы (пользователю ИБ) назначенную таким образом мою роль. А расширение из этой статьи позволяет нейтрализовать это особое поведение для администраторов (только в отношении ролей из расширений) - назначенная через группу доступа роль появится у администратора базы (пользователя ИБ).
4. artbear 1550 19.06.23 09:58 Сейчас в теме
(0) Сергей, спасибо, полезный механизм!
5. triviumfan 94 19.06.23 16:10 Сейчас в теме
Не на правах рекламы, но буквально недавно наткнулся на похожую статью.
Правда автор предлагает явно роли прописывать, а тут значительно сложнее, но универсальней вроде.
tormozit; +1 Ответить
7. tormozit 7166 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 628 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 140 28.06.23 07:40 Сейчас в теме
(6) Создаете пользователя с необходимыми правами, а после для него выставляете дату запрета изменения данных 31.12.3999.
14. Erne100 286 27.07.23 00:25 Сейчас в теме
(13) Дата запрета изменения данных действует не на всё. Даже не на все документы.
Например в КА 2.5 не действует на "Заказ клиента"
15. tormozit 7166 25.11.23 17:14 Сейчас в теме
Обновил файл. Исправил ошибку
Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта Язык.Русский не совпадает со значением в расширяемой конфигурации
Оставьте свое сообщение