Область применения - Просмотр прав. Анализ прав и ролей.
Обработка поможет, когда нужно проанализировать несколько условий (критериев): например, пользователь может проводить определенный документ, а другой документ проводить не может, но может его просматривать, один отчет может формировать, другой отчет не может использовать. Вы указываете все условия на объекты и права в режиме "может" и "не может", далее обработка подбирает подходящий профиль прав, в который надо включить пользователя.
Программа будет понятна рядовому пользователю. Просьба ознакомиться детально с текущим описанием и со всеми приложенными видео - в каждом видео освещаются разные аспекты программы и демонстрируются разные сценарии.
Технические требования
Программа представлена в виде одной внешней обработки, открывается через меню Файл-Открыть.
Обработка была протестирована на УНФ 1.6, БП 3.0, Розница 2.3, УТ 11.Х, КА 2.Х, ЗУП 3.1, УТ 10.3, УПП 1.3.
Разработана на платформе 1С:Предприятие 8.3.18.1289, файловый режим. В программе используются функции СтрРазделить(), СтрСоединить(), СтрНайти(), которые доступны, начиная с версии платформы 8.3.6.
Функциональные возможности
Программа производит анализ и поиск подходящих профилей из имеющихся профилей, и программа не умеет создавать роли и профили. Это значит, что если программа не нашла подходящий профиль, тогда надо создать новый профиль с нужными ролями самостоятельно.
Форма обработки представлена в виде стенда - со всеми видимыми служебными таблицами и деревьями - для того, чтобы можно было легко видеть порядок и принцип анализа:
1) пересекаются ли роли. Роль - это набор прав на объекты конфигурации. Права на некоторые объекты конфигурации могут совпадать, а значит пересекаться.
2) все объединения ролей (всевозможные наборы ролей). У пользователя 1С всегда задан некоторый набор ролей, так как права на разные объекты конфигурации всегда представляют из себя набор ролей. Представленная программа отсечет те права и роли, которые не должны остаться у пользователя.
3) пересекаются ли профили групп доступа. Профиль групп доступа - это набор ролей. Роли в профилях могут совпадать, а значит пересекаться.
4) все объединения профилей (всевозможные наборы профилей). У пользователя 1С всегда задан некоторый набор профилей. Представленная программа отсечет те профили, которые не должны остаться у пользователя.
По итогу в нижней таблице программа показывает все наборы профилей, в которые необходимо включить пользователя. чтобы выполнились условия/критерии из первой верхней таблицы. Правильных вариантов может быть несколько - можете выбрать минимальный по количеству профилей набор.
Функциональные возможности программы для обычных форм
Обработку стоит переименовать в "Анализ прав и ролей - поиск подходящей роли", поскольку в конфигурациях на обычных формах (УТ 10.3, УПП 1.3) механизм профилей не используется.
1) Производится анализ ролей и прав на объекты без дополнительного анализа профилей.
2) Используются другие функции по работе со строками взамен функций СтрНайти(), СтрСоединить(), СтрРазделить() - поэтому ограничения на платформу 8.3.6 нет.
Смотрите видео (для обычных форм) без звука - на нем тестовый пример, где быстро показан результат работы программы. Обратите внимание, если найдены пересечения ролей, то использовать объединения ролей уже не нужно для того, чтобы предоставить пользователю права на объекты из таблицы условий (первая таблица).
Функциональные ограничения
1) подразумевается, что в конфигурации имеется справочник "ПрофилиГруппДоступа", содержащий табличную часть связанных ролей "Роли".
2) профиль определяется по наименованию - поэтому, если у вас два профиля с одинаковым наименованием, значит анализ и поиск профиля отработает с ошибкой (проверка на дублирование наименований профилей не запрограммирована в текущей версии).
3) перед стартом проверьте символ-разделитель в программе - к примеру в УТ 11, КА 2.4, УНФ 1.6 имеются предопределенные профили, содержащие в наименовании запятую (символ ",") - для подобных случаев нужно задать другой символ-разделитель: например точку с запятой (";").
Это нужно для того, что собрать набор профилей "Кассир, Кладовщик" в одну строку для последующего разбора и генерации дерева. Так вот, запятая в наименовании придаст алгоритму другое разделение на подстроки, и обработка отработает некорректно. Символ-разделитель относится только к наборам профилей, но не к ролям - поскольку роли не могут содержать запятые в своем имени.
4) подразумевается, что имена объектов конфигурации и имена ролей имеют длину не более 255 символов - поэтому, если у вас в конфигурации имеются объекты или роли с длиной имени более 255 символов, значит анализ и поиск профиля отработает с ошибкой (проверка на длину имен не запрограммирована в текущей версии).
5) Программа не анализирует роли из расширений и специфичные права конфигурации: например "Интерактивное открытие внешних обработок". Предопределенные права на справочники, документы, отчеты, регистры - задействованы и протестированы!
6) Замечено, что для N-кол-ва объектов метаданных с M-кол-вом ролей для построения дерева всевозможных наборов ролей требуется М в степени N раз обойти последовательно все варианты. Для примера, если у вас выбрано 8 объектов конфигурации и по каждому в наборе имеется 8 ролей, то для построения дерева ролей потребуется обойти дерево 8 в степени 8 = 16 777 216 раз...
Поэтому для решения задачи используйте взаимоисключающие критерии или используйте небольшое количество объектов для анализа - например 5-ть объектов с 8 ролями (5 в степени 8 = 390 625) - достаточно быстро анализируются.
Для большинства задач - например, выбрать профиль для проведения одного документа с исключающим условием на проведение второго документа - анализ происходит быстро.
Руководство по использованию
В данном видео показано, как работать с обработкой:
1) Перед началом укажите какие Типы объектов конфигурации хотите включить в анализ: Документы, Справочники, Отчеты и т.д. Разделение на типы объектов уменьшает время анализа. В процессе работы можно добавлять/убирать Типы.
2) Вторым шагом задайте условия/критерии анализа - укажите объекты конфигурации, права и режим "включить"/"исключить" данное право у пользователя. Пересчет и анализ срабатывает в момент нажатия на флажок "Вкл" или "Искл".
При изменении условий по одному объекту - необходимо повторно нажимать на флажок "Вкл" или "Искл" - для запуска повторного анализа. При этом будут обрабатываться все другие строки условий - для повторного анализа всех пересечений прав/ролей/профилей.
3) Для выбранной строки документа добавьте в анализ регистры из движений документа по кнопке "Добавить движения". К примеру, если пользователю надо проводить документ ЗаказПокупателя, то он должен иметь права изменять все регистры движений данного документа. Для выделенного документа в таблицу условий подставятся все регистры - далее произойдет анализ прав и ролей и поиск подходящей роли.
4) Для выбранной строки справочника и документа добавьте в анализ реквизиты по кнопке "Добавить реквизиты". Будут добавлены реквизиты, в том числе реквизиты табличных частей справочника или документа - для анализа и получения ролей, которые имеют "право просмотра" связанных с объектом ссылок на справочники или документы.
5) Строки таблицы с условиями/критериями (та самая первая верхняя таблица) выделяются синим цветом - когда набор ролей совпадает в строках - значит подобные условия нужно удалить, оставив только одно условие. Удалить можно по кнопке "Удалить одинаковые".
Строки с условиями выделяются красным цветом - когда набор ролей совпадает в строках, но строки взаимоисключающие по флагам "Вкл" и "Искл". Подобные условия нужно изменить или удалить.
6) Дополнительно из наборов ролей в таблице условий можно удалить роли, которые входят в исключения. Это следует сделать для ускорения анализа. Их можно удалить по кнопке "Удалить из ролей исключения".
7) Объект под названием "СлужебныйОбъект" используется для задания набора ролей вручную (например, можно заполнить роли из пользователя).
8) Анализ таблиц (прав и ролей) проводится сверху - вниз и слева-направо: каждая верхняя таблица порождает таблицы ниже. Итоговая таблица с наборами профилей может содержать строки выделенные красным цветом - это наборы, в которых имеются профили, которые следует исключить из рассмотрения. К примеру, вы указали в первой верхней таблице - условия по объектам метаданных - что определенный документ пользователь не должен проводить. Согласно такому критерию будет найдена Роль, которая имеет право проводить данный документ. Эта Роль и соответствующие ей Профили (набор профилей) войдут в таблицу Исключений. Исключения выделяются красным.
1. Парсер шаблонов кода .st на основе регулярных выражений
2. Шаблоны кода на управляемых формах
3. Поиск и просмотр свойств объектов метаданных
4. АВС-анализ на управляемых формах
5. Рассылка уведомлений из ЗУП Проф через регламентное задание
6. Обход объекта метаданных рекурсивно
7. Аналитика учета и ОперацияБух в БП 3.0
8. Множественное (групповое) выделение документов в динамическом списке обычных форм
9. Доработки УТ 10.3, улучшающие работу пользователей
10. Подбор товаров по характеристикам или свойствам
12. Список реализаций со структурой подчиненности + печать реестра реализаций с учетом отборов списка
Проверено на следующих конфигурациях и релизах:
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.21.15
- Управление производственным предприятием, редакция 1.3, релизы 1.3.171.1
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.146.24