Расширение «Генератор ролей» (далее – «Генератор ролей») предназначено для произвольной настройки ролей в конфигурациях на базе платформы 1С:Предприятие 8.3.
Использование данного механизма обусловлено тем, что заложенный в конфигурацию набор ролей не предоставляет возможности решить любой производственный сценарий. Что вынуждает вносить доработки в исходный код конфигурации с привлечением разработчика 1С. «Генератор ролей» позволяет выполнить настройку ролей в пользовательском режиме без модификации конфигурации.
«Генератор ролей» доступен для скачивания по ссылке. Открывающаяся по ссылке форма содержит всю информацию о версиях данного инструмента, а также предоставляет возможность скачать необходимую версию. Для этого надо в соответствующем разделе выбрать пункт «Скачать».
В результате загрузки будет получено расширение информационной базы 1С:Предприятие 8 «ГенераторПользовательскихРолей.cfe». Далее расширение следует загрузить в информационную базу и перезапустить 1С:Предприятие. Загрузка расширения выполняется в форме «Управление расширениями конфигурации» (подробнее о загрузке расширений см. в соответствующем руководстве 1С:Предприятие и на сайте 1С:ИТС).
Важно! Добавление «Генератора ролей» необходимо выполнять в монопольном режиме.
При загрузке расширения необходимо снять флажки «Безопасный режим» и «Защита от опасных действий». После перезапуска системы в интерфейсе конфигурации появится раздел «Генератор ролей». Меню этого раздела содержит все необходимые объекты для формирования ролей. У пользователя с полными правами данный раздел появится без дополнительных действий. В остальных случаях пользователю необходимо установить роль «Гпр работа с генератором».
В настройках «Генератора ролей» («Генератор ролей» – «Сервис» – «Настройки)» следует указать режим выгрузки данных об объектах конфигурации:
-
«Конфигурация выгружена в файлы» – структуру конфигурации следует выгрузить в xml файл в указанный каталог. В поле «Каталог» необходимо указать папку для выгрузки конфигурации информационной базы с помощью кнопки «Конфигурация» – «Выгрузить конфигурацию в файлы…». Данный каталог должен быть доступен на сервере. Также в этот каталог необходимо выгрузить в xml файлы все расширения. Имена папок, в которые будет выполняться выгрузка, должны соответствовать имени расширения. Актуальность содержимого должен контролировать сам пользователь. При создании новой роли программа не будет запрашивать монопольный режим.
-
«Выгружать конфигурацию в файлы автоматически» – обработка будет выгружать структуру конфигурации в xml файл в монопольном режиме. Дополнительно указываются пользователь и пароль доступа к конфигурации. Данный способ применяется только при подключении файловой и SQL базы данных. Перед выполнением операций необходимо завершить все сеансы с базой в режиме «Конфигуратор».
К дополнительной информации о «Генераторе ролей» можно перейти из меню «Генератор ролей» – «Сервис» – «О программе».
Справочник «Пользовательские роли» применяется для настройки прав доступа пользователей в рамках использования инструмента «Генератор ролей».
Кнопки командной панели:
- «Создать» – создание новой роли.
- «Создать группу» – создание группы ролей;
- «Создать копированием» – создание роли копированием текущей из списка.
- «Установить расширение» – установка расширения для выгрузки пользовательских ролей в расширение и загрузки его в информационную базу.
- Подменю «Импорт/Экспорт» – кнопки подменю позволяют как загрузить роли, так и выгрузить текущие из данного справочника. Это облегчает процесс формирования ролей, к примеру, когда роли создаются в тестовой информационной базе и по результату их необходимо перенести в рабочую базу.
На рисунке показана форма элемента справочника, используемая для настройки пользовательской роли
На закладке «Основное» представлены следующие данные:
- «Статус». Может принимать три значения:
- «Черновик» – устанавливается по умолчанию при создании новой роли. Данный статус нужен в момент формирования расширения с пользовательскими ролями. Статус «Черновик» необходимо устанавливать для тех ролей, которые еще недостаточно описаны для предоставления пользователям.
- «Актуальна» – означает, что роль используется в системе. В созданном расширении будут только роли с данным статусом.
- «Устарела» – означает, что роль не используется в системе. Применяется для тех ролей, которые потеряли по какой-то причине актуальность для текущей информационной базы и больше не используются.
- «Имя объекта метаданных». Данное поле соответствует имени роли в расширении «ПользовательскиеРоли». Рекомендации по заполнению: указывать имя без пробелов, вместо этого начинать следующее слово с заглавной буквы и не допускать запрещенных символов.
- «Синоним / наименование объекта». Описывает свойство «Синоним» роли в режиме «Конфигуратор».
- «Настройки роли». В этой группе настроек задаются признаки установки прав доступа для роли:
- «Устанавливать права для новых объектов» – предполагает, что при создании новых объектов в режиме конфигуратора данная роль будет к ним автоматически применяться;
- «Устанавливать права для реквизитов и табличных частей по умолчанию» и «Независимые права подчиненных объектов» недоступны для изменения.
- «Подсистемы». Выводится структура всех подсистем информационной базы, как в режиме «Конфигуратор». Новую роль можно включить в состав выбранных подсистем для удобной навигации.
- «Комментарий». Текстовое описание роли в произвольной форме.
На закладке «Настройка роли» производится основная настройка распределения прав доступа по объектам для роли.
Основные элементы закладки «Настройка роли»:
- Режим редактирования. В инструменте предусмотрено два режима работы
- «Эксперт» – развернутый режим, схожий по возможностям с режимом «Конфигуратор». Предназначен в основном для разработчиков.
- «Простой» – упрощенный режим настройки доступа из трех уровней: «Чтение», «Изменение» и «Удаление». Предназначен для системных администраторов и продвинутых пользователей.
- Список объектов. В списке представлены все выбранные объекты для настройки прав доступа. В списке объекты сгруппированы по виду, с детализацией по реквизитам, командам, измерениям, ресурсам и т.д., которые входят в состав объекта. Каждая колонка представляет собой право доступа или группу в зависимости от режима редактирования.
- Кнопка «Добавить». Открывается список всех доступных объектов конфигурации, для того чтобы в ручном режиме указать, каким объектам будут установлены права доступа. Форма представлена на рисунке ниже. Выбор объектов осуществляется установкой флажка напротив необходимого объекта. По завершению выбора объекты будут добавлены в список с пустыми правами доступа.
- Кнопка «Добавить связанные». Данной кнопкой можно воспользоваться в случае, когда для настройки прав доступа к объекту необходимо также дать права доступа на те объекты, ссылки на которые используются в реквизитах текущего объекта. В результате все необходимые объекты будут добавлены в список.
- Кнопка «Заполнить по роли». С помощью кнопки можно заполнить список объектами с настроенными правами доступа по выбранной из информационной базы роли.
- Кнопка «Удалить». Удаляет текущий выделенный объект из списка со всеми подчиненными элементами.
- Кнопка «РЛС». Доступна только для тех объектов, где есть возможность прописать RLS. Выводит все настроенные ограничения и шаблоны ограничения доступа роли.
- Кнопки «Развернуть все/Свернуть все». Изменяют представление списка объектов. В зависимости от выбранного варианта список сворачивается до вида объектов или выводятся все уровни доступа по объектам.
Ниже приведен пример создания роли с использованием «Генератора ролей» для программного продукта «Альфа-Авто: Автосалон+Автосервис+Автозапчасти Корп. Редакция 6». Для демонстрации возможностей инструмента поставлена следующая задача: необходимо, чтобы специалисты из отдела продаж автомобилей могли только просматривать документы «Поступление автомобилей» без добавления и редактирования. Особенностью построения ролей в программном продукте «Альфа-Авто: Автосалон+Автосервис+Автозапчасти Корп. Редакция 6» является тот факт, что роли описывают сценарий использования. То есть для пользователя нет необходимости назначать ограничения прав доступа по каждому объекту. Для этого в роли конфигурации сгруппированы все необходимые права доступа для работы с группой объектов. Но в связи с этим возникает некоторое неудобство, когда необходимо дать больше прав пользователю или ограничить права доступа к объектам, которые дает роль. Решить такую задачу может помочь использование «Генератора ролей» без снятия конфигурации с поддержки. Рассмотрим последовательность действий для выполнения поставленной задачи.
- Создадим новый элемент справочника «Пользовательские роли». Заполнение закладки «Основное» показано на рисунке.
- Перейдем к настройкам прав доступа к объектам. Поскольку было решено ограничить право для работы с документом для конкретной роли, то для быстрого заполнения можно воспользоваться кнопкой «Заполнить по роли». Предварительно перед выбором данного способа заполнения надо выполнить настройку для загрузки прав доступа по роли («Генератор ролей» – «Сервис» – «Настройки», подробнее см. «Генератор ролей). Если такая настройка не выполнена, то будет выведена форма для заполнения соответствующих настроек.
Для формирования списка ролей с их правами доступа необходимо решить, каким образом инструменту получить необходимые данные. Если ранее конфигурация информационной базы была выгружена в файлы, то можно выбрать первый вариант и указать каталог файлов на сервере. Иначе надо выбрать второй вариант, при этом указать пользователя информационной базы с правами на открытие базы в режиме «Конфигуратор» и убедиться, что данный режим не используется на данный момент каким-либо пользователем. Данное действие нужно выполнить только один раз.
- Выберем наиболее подходящую роль для данного примера – «Ключевой пользователь отдела продаж новых автомобилей».
Список объектов заполнится всеми объектами из выбранной роли, правами доступа и РЛС. Также будут автоматически заполнены доступные шаблоны ограничений доступа как у выбранной роли, что намного сокращает время формирования самой роли. Фрагмент результата загрузки показан на рисунке ниже.
- Для выполнения задачи найдем документ «Поступление автомобилей» и уберем права, которые не надо предоставлять пользователю (это можно сделать путем снятия флажков в соответствующих колонках). Также уберем лишние РЛС у прав доступа «Добавление» и «Изменение». Все изменения необходимо сохранить.
- Следующим этапом является создание расширения с новой ролью. Для этого на форме списка справочника воспользуемся кнопкой «Установить расширение». После ее нажатия расширение будет автоматически загружено в информационную базу с предложением перезапустить «1С:Предприятие» для включения расширения (см. рисунок далее). Перед этим необходимо проверить, что нет активных сеансов с информационной базой в режиме «Конфигуратор».
На рисунке показано расширение с пользовательскими ролями:
В режиме «Конфигуратор» можно увидеть роль, которая была сформирована и что внесенные изменения отображены в ней.
- Поскольку в программном продукте «Альфа-Авто: Автосалон+Автосервис+Автозапчасти Корп. Редакция 6» для настройки ролей используется инструмент «Управление доступом» из «Библиотеки стандартных подсистем», создадим в системе новый профиль доступа с данной ролью и группу доступа для назначения ее пользователю. Также пользователя добавим в группу доступа с базовыми правами.
- На завершающем этапе произведем вход в информационную базу в режиме «1С:Предприятие» под этим пользователем. На форме видно, что пользователь не может создавать новых документов и редактировать существующие. Поставленная в примере задача была решена.
Аналогичные действия можно выполнить, когда стоит задача «расширить» некую роль с помощью создания ее копии, или создать роль с недостающими правами доступа для включения ее пользователю.
Справочник «Шаблоны ограничений» предназначен для хранения шаблонов текстов, которые могут быть использованы при установке ограничений доступа к объектам конфигурации на уровне записей.
Выбрать шаблон можно при создании пользовательской роли. Для этого в карточке пользовательской роли на закладке «Настройка роли» следует нажать кнопку «РЛС». Далее в открывшейся форме настройки ограничения доступа на закладке «Шаблоны ограничений» можно выбрать созданный ранее шаблон. Шаблон ограничений можно использовать для нескольких ролей.
Важно! В отличии от конфигуратора хранение шаблонов РЛС происходит для всех ролей, а не для каждой роли в отдельности.
Для лучшего взаимодействия конфигурации и инструмента можно выполнить доработки.
В редакторе ролей связанные объекты определяются по реквизитам объекта и его табличным частям. Дополнить список объектов можно программно. Для этого в модуле менеджера соответствующего объекта прописать функцию ДополнительныеСвязанныеОбъекты()
возвращающую массив строк в формете <ВидМетаданных>.<ИмяОбъекта>
.
Например Справочник.Номенклатура
, Документ.РеализацияТоваров
, Отчет.Взаиморасчеты
.
Пример
Функция ДополнительныеСвязанныеОбъекты() Экспорт
ДополнительныеСвязанныеОбъекты = Новый Массив;
ДополнительныеСвязанныеОбъекты.Добавить("Отчет.Взаиморасчеты");
Возврат ДополнительныеСвязанныеОбъекты;
КонецФункции
Для конфигураций с внедреной Библиотекой стандартных подсистем редакции 2.3 и выше имеется возможность обновлять расширение пользовательских ролей при обновлении информационной базы. Для этого необходимо в общем модуле ПодсистемыКонфигурацииПереопределяемый
в процедуре ПриДобавленииПодсистем()
добавить подсистему из расширения.
Например
Если Метаданные.ОбщиеМодули.Найти("гпр_ОбновлениеИнформационнойБазыГенераторПользовательскихРолей") <> Неопределено Тогда
МодулиПодсистем.Добавить("гпр_ОбновлениеИнформационнойБазыГенераторПользовательскихРолей");
КонецЕсли;
ВАЖНО! Для корректной работы с обновленным расширением необходимо:
- Обновить конфигурацию базы данных в конфигураторе
- Запустить конфигурацию и дождаться обновления
- Перезапустить предприятие с обновленным расширением
Поддерживаются версии платформы начиная с 8.3.18