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

18.10.24

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
Защита ролей расширений для администраторов БСП 3
.cfe 5,94Kb ver:1.2
91
91 Скачать бесплатно

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.10.344, 3.1.1.91

См. также

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

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

10000 руб.

02.09.2020    160859    890    399    

871

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

16800 руб.

06.12.2023    9035    43    5    

74

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

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

10000 руб.

10.11.2023    10617    38    27    

63

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

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

5940 руб.

27.05.2021    37801    268    96    

207

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

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

19200 руб.

29.11.2019    25688    17    8    

37

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

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

4560 руб.

21.05.2019    1694882    570    194    

137

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

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

3000 руб.

23.02.2018    58553    160    261    

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

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

Также рекомендую добавить следующие роли (для сохранения в файл):
• Вывод на принтер, в файл, в буфер обмена
• Редактирование, отправка по почте, сохранение в файл печатных форм
• Сохранение данных пользователя
• Сохранение настроек печати объектов по умолчанию
9. ardn 658 20.06.23 16:22 Сейчас в теме
(6)
Да, кстати, роль "для аудитора" очень часто требуется
10. MVK80 20.06.23 19:44 Сейчас в теме
(6), А профиль групп доступа Аудитор не подходит? Поставляется в типовых (видел в ERP, ЗУП, БП).
11. PerlAmutor 155 20.06.23 20:24 Сейчас в теме
(10) А он похоже только для подсистемы "Зарплата и кадры"
13. Dragonim 142 28.06.23 07:40 Сейчас в теме
(6) Создаете пользователя с необходимыми правами, а после для него выставляете дату запрета изменения данных 31.12.3999.
14. Erne100 287 27.07.23 00:25 Сейчас в теме
(13) Дата запрета изменения данных действует не на всё. Даже не на все документы.
Например в КА 2.5 не действует на "Заказ клиента"
15. tormozit 7238 25.11.23 17:14 Сейчас в теме
Обновил файл. Исправил ошибку
Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта Язык.Русский не совпадает со значением в расширяемой конфигурации
16. SmagOrg 16.10.24 03:28 Сейчас в теме
(15)
Гораздо проще внедрится в модуль
УправлениеДоступомСлужебныйПовтИсп.ОписаниеСтандартныхРолейРасширенийСеанса()
либо
Справочники.ПрофилиГруппДоступа.ПодготовленныеСтандартныеРолиРасширенийСеанса()
где отбираются роли расширений.
Либо вообще при наименовании ролей использовать окончания в наименовании ролей - ОбщиеПрава, ПолныеПрава, БазовыеПрава, БазовыеПраваВнешнихПользователей, АдминистраторСистемы и тогда никакого кода адаптации не требуется вообще.
17. tormozit 7238 18.10.24 23:36 Сейчас в теме
Обновлен файл до версии 1.2
Добавлена поддержка БСП 3.1.10
Оставьте свое сообщение