Обозреватель прав доступа


Отчет состоит из двух частей:
1. Получение списка ролей, для которых доступен объект с указанием конкретного права доступа;
2. Вывод доступных для роли или пользователя информационной базы объектов конфигурации.
Допустим, вам понадобилось создать новый профиль группы доступа, например, в ERP с использованием типовых объектов. В конфигурации уже более 1000 ролей, но какого-либо фильтра по объектам в роли платформа не предлагает. Отчет облегчает поиск ролей, для которых доступен требуемый объект, и просмотр всех объектов в дереве конфигурации, доступ к которым эти роли обеспечивают. Главная «фишка» второй функции — возможность отбора в дереве конфигурации только доступных для роли объектов по первому праву (Чтение, Использование и т.д.).

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

Работа с профилями групп доступа также «в планах». Вполне вероятно, что вам будет не хватать списка профилей, включающих выбранную роль. Это просто сделать, но пока такой функция вне моей «концепции».

Инициализация дерева конфигурации, списков ролей и пользователей ИБ,выполняется в ПриСозданииНаСервере, оттого лёгкая задумчивость при открытии в «тяжелых» конфигурациях. 

И когда-нибудь я соберу коллекцию пиктограмм объектов конфигурации, видимых в ролях. Сделано (если абсолютные картинки вас смущают, всегда можете удалить из свойств таблицы формы или перенести в конфигурацию).

8 Comments

  1. vikad
    когда-нибудь я соберу коллекцию пиктограмм объектов конфигурации, видимых в ролях

    Достаточно 8 пиктограмм всего собрать-то (Конфигурация, Общие, Подсистемы, Параметры сеанса, Команды, Web-сервисы, HTTP-сервисы, Последовательности. Общие реквизиты — опционально, можно просто Реквизитом обойтись). Остальное есть в библиотеке картинок. Просто доп. колонка с типом Картинка, путь к ней в свойстве ПутьКДаннымКартинкиСтроки табличного поля формы и программное назначение нужной картинки для ветки дерева в коде.

    Reply
  2. xrrg

    (1) БиблиотекаКартинок.КоллекцияОбъектыМетаданных — уже 14 штук, к примеру. А только в дереве конфигурации 19.

    Reply
  3. vikad

    я про системную библиотеку картинок говорю — ту, которая

    БиблиотекаКартинок.ПланОбмена

    БиблиотекаКартинок.КритерийОтбора

    БиблиотекаКартинок.Форма

    БиблиотекаКартинок.Константа

    БиблиотекаКартинок.Справочник

    БиблиотекаКартинок.Документ

    БиблиотекаКартинок.ЖурналДокументов

    БиблиотекаКартинок.Перечисление

    БиблиотекаКартинок.Отчет

    БиблиотекаКартинок.Обработка

    БиблиотекаКартинок.ПланВидовХарактеристик

    БиблиотекаКартинок.ПланСчетов

    БиблиотекаКартинок.ПланВидовРасчета

    БиблиотекаКартинок.РегистрСведений

    БиблиотекаКартинок.РегистрНакопления

    БиблиотекаКартинок.РегистрБухгалтерии

    БиблиотекаКартинок.РегистрРасчета

    БиблиотекаКартинок.БизнесПроцесс

    БиблиотекаКартинок.Задача

    БиблиотекаКартинок.ВнешнийИсточникДанных

    вот уже 20 штук из тех, которые для ролей выводятся. Недостающих всего 8 (9) вышеперечисленных. Для этого необязательно создавать отдельную коллекцию, достаточно системных. А недостающие в макет положить (ТД) и при создании на сервере их как рисунки табличного документа получить и в дерево подставить ТД.Рисунки[ИмяКартинки].Картинка

    Reply
  4. xrrg

    (3) А вам не кажется, что вы перемешали свойства таблицы формы и табличного документа?

    Reply
  5. vikad

    у вас две закладки, на каждой из которых есть дерево метаданных. Можно составить коллекцию картинок и загрузить ее в свойство «КартинкаСтрок» соответствующих табличных полей. Картинка будет большая (элементов много). На форме она, по факту, будет дублироваться (дерева метаданных у вас два) и утяжелять и так тяжелый запуск обработки. А можно использовать системные картинки и обращаться за недостающими в одно общее место (в один макет отчета ТД с видом Табличный документ, куда положить только недостающие 9 из 30 картинок), а остальные получать через системный набор значений БиблиотекаКартинок — состав которого во всех без исключения конфигурациях одинаковый (входит в платформу)

    Reply
  6. xrrg

    (5)

    тяжелый запуск обработки

    тяжёл он оттого, что дерево конфигурации в ERP содержит ~10 тыс строк. выгрузка дерева значений в таблицу формы поедает память на клиенте. я изменил подходы, дерево стало легче. впрочем я и не рассчитывал на какое-то массовое применение. хотя и можно использовать для быстрого просмотра доступных объектов пользователю.

    поясните, как вы собираетесь картинки из табдока (не важно откуда, главное не «из библиотеки») вставлять в таблицу формы?

    Reply
  7. vikad

    (6) я честно не знаю, насколько запуск Вашей обработки тяжелый — я больше ориентируюсь на то, что сама платформа при загрузке в свойство «КартинкаСтрок» любой картинки не из библиотеки ругается на то, что «Использование абсолютных картинок в управляемых формах не рекомендуется».

    Что касается Вашего вопроса

    поясните, как вы собираетесь картинки из табдока (не важно откуда, главное не «из библиотеки») вставлять в таблицу формы?

    внимательно читайте первый и третий комментарий

    Просто доп. колонка с типом Картинка, путь к ней в свойстве ПутьКДаннымКартинкиСтроки табличного поля формы и программное назначение нужной картинки для ветки дерева в коде.
    при создании на сервере их как рисунки табличного документа получить и в дерево подставить ТД.Рисунки[ИмяКартинки].Картинка

    В качестве программного назначения — в процедуре с контекстом &НаСервере МакетКартинок = РеквизитФормыВЗначение(«Отчет»).ПолучитьМакет(«ТД»). И потом для нужной ветки СтрокаДерева.Картинка = МакетКартинок.Рисунки[ИмяКартинки].Картинка

    Я не пытаюсь помешать Вам осуществить Вашу мечту

    И когда-нибудь я соберу коллекцию пиктограмм объектов конфигурации, видимых в ролях.

    я просто предлагаю более рациональное ее осуществление. По Вашему тону кажется, что Вы недовольны.

    Reply
  8. xrrg

    (7) признаться, я не знал о таком способе. я сделал пример и, как показывает простое средство контроля в виде диспетчера задач, при навигации по таблице клиент начинает «распухать». в то же время с абсолютной картинкой такого не происходит. ваш способ не рациональный.

    (7)

    Я не пытаюсь помешать Вам осуществить Вашу мечту

    🙂

    (7)

    По Вашему тону кажется, что Вы недовольны.

    я и сейчас недоволен. впрочем, Ваша критика сделала отчет лучше.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *