1. Получение списка ролей, для которых доступен объект с указанием конкретного права доступа;
2. Вывод доступных для роли или пользователя информационной базы объектов конфигурации.
Как можно догадаться, основная задача решается при помощи функции платформы ПравоДоступа(). Для работы отчета вам понадобятся административные права и наличие БСП. Отчет сделан на допущении, что у всех ролей установлен флаг Устанавливать права для реквизитов и табличных частей по умолчанию. Вы не увидите Ограничения доступа к данным — работа с выгруженными файлами конфигурации «в планах».
Работа с профилями групп доступа также «в планах». Вполне вероятно, что вам будет не хватать списка профилей, включающих выбранную роль. Это просто сделать, но пока такой функция вне моей «концепции».
И когда-нибудь я соберу коллекцию пиктограмм объектов конфигурации, видимых в ролях. Сделано (если абсолютные картинки вас смущают, всегда можете удалить из свойств таблицы формы или перенести в конфигурацию).
Достаточно 8 пиктограмм всего собрать-то (Конфигурация, Общие, Подсистемы, Параметры сеанса, Команды, Web-сервисы, HTTP-сервисы, Последовательности. Общие реквизиты — опционально, можно просто Реквизитом обойтись). Остальное есть в библиотеке картинок. Просто доп. колонка с типом Картинка, путь к ней в свойстве ПутьКДаннымКартинкиСтроки табличного поля формы и программное назначение нужной картинки для ветки дерева в коде.
(1) БиблиотекаКартинок.КоллекцияОбъектыМетаданных — уже 14 штук, к примеру. А только в дереве конфигурации 19.
я про системную библиотеку картинок говорю — ту, которая
БиблиотекаКартинок.ПланОбмена
БиблиотекаКартинок.КритерийОтбора
БиблиотекаКартинок.Форма
БиблиотекаКартинок.Константа
БиблиотекаКартинок.Справочник
БиблиотекаКартинок.Документ
БиблиотекаКартинок.ЖурналДокументов
БиблиотекаКартинок.Перечисление
БиблиотекаКартинок.Отчет
БиблиотекаКартинок.Обработка
БиблиотекаКартинок.ПланВидовХарактеристик
БиблиотекаКартинок.ПланСчетов
БиблиотекаКартинок.ПланВидовРасчета
БиблиотекаКартинок.РегистрСведений
БиблиотекаКартинок.РегистрНакопления
БиблиотекаКартинок.РегистрБухгалтерии
БиблиотекаКартинок.РегистрРасчета
БиблиотекаКартинок.БизнесПроцесс
БиблиотекаКартинок.Задача
БиблиотекаКартинок.ВнешнийИсточникДанных
вот уже 20 штук из тех, которые для ролей выводятся. Недостающих всего 8 (9) вышеперечисленных. Для этого необязательно создавать отдельную коллекцию, достаточно системных. А недостающие в макет положить (ТД) и при создании на сервере их как рисунки табличного документа получить и в дерево подставить ТД.Рисунки[ИмяКартинки].Картинка
(3) А вам не кажется, что вы перемешали свойства таблицы формы и табличного документа?
у вас две закладки, на каждой из которых есть дерево метаданных. Можно составить коллекцию картинок и загрузить ее в свойство «КартинкаСтрок» соответствующих табличных полей. Картинка будет большая (элементов много). На форме она, по факту, будет дублироваться (дерева метаданных у вас два) и утяжелять и так тяжелый запуск обработки. А можно использовать системные картинки и обращаться за недостающими в одно общее место (в один макет отчета ТД с видом Табличный документ, куда положить только недостающие 9 из 30 картинок), а остальные получать через системный набор значений БиблиотекаКартинок — состав которого во всех без исключения конфигурациях одинаковый (входит в платформу)
(5)
тяжёл он оттого, что дерево конфигурации в ERP содержит ~10 тыс строк. выгрузка дерева значений в таблицу формы поедает память на клиенте. я изменил подходы, дерево стало легче. впрочем я и не рассчитывал на какое-то массовое применение. хотя и можно использовать для быстрого просмотра доступных объектов пользователю.
поясните, как вы собираетесь картинки из табдока (не важно откуда, главное не «из библиотеки») вставлять в таблицу формы?
(6) я честно не знаю, насколько запуск Вашей обработки тяжелый — я больше ориентируюсь на то, что сама платформа при загрузке в свойство «КартинкаСтрок» любой картинки не из библиотеки ругается на то, что «Использование абсолютных картинок в управляемых формах не рекомендуется».
Что касается Вашего вопроса
внимательно читайте первый и третий комментарий
В качестве программного назначения — в процедуре с контекстом &НаСервере МакетКартинок = РеквизитФормыВЗначение(«Отчет»).ПолучитьМакет(«ТД»). И потом для нужной ветки СтрокаДерева.Картинка = МакетКартинок.Рисунки[ИмяКартинки].Картинка
Я не пытаюсь помешать Вам осуществить Вашу мечту
я просто предлагаю более рациональное ее осуществление. По Вашему тону кажется, что Вы недовольны.
(7) признаться, я не знал о таком способе. я сделал пример и, как показывает простое средство контроля в виде диспетчера задач, при навигации по таблице клиент начинает «распухать». в то же время с абсолютной картинкой такого не происходит. ваш способ не рациональный.
(7)
🙂
(7)
я и сейчас недоволен. впрочем, Ваша критика сделала отчет лучше.