Делал механизм оповещения о создании/изменении объектов справочников / документов с динамически настраиваемыми условиями отбора (аля правила регистрации в КД). В справочнике настройки указывается объект метаданных, условия срабатывания и шаблон текста оповещения. Для шаблона понадобилось дерево реквизитов выбранного объекта. В этой обработке выкладываю функционал построения дерева реквизитов по объекту метаданных конфигурации.
Поиск на ресурсе выдавал кучу обработок построения дерева объектов конфигурации, с реквизитами не нашел (возможно, плохо искал).
При построении дерева используется рекурсивный вызов процедуры с контролем уровня глубины рекурсии. Также добавлена защита от ситуации Регистратор.Валюта. ОсновнаяВалюта…
Писал и тестировал на 8.3.13.1513 (совместимо с другими версиями 8.*).
Обработка на УФ.
А как отображается, если реквизит имеет составной тип данных?Например такие реквизиты как ДокументОснование в типовых — это несколько видов документов. Как отрабатывает рекурсия в таких случаях? На приведенном скриншоте все реквизиты односложные.
В целях заполнения шаблона неограниченной вложенности через «.» я ставил заглушку на составные реквизиты. Т.е. дерево не раскрывает реквизит составного типа.
Показать
В шаблоне использую представление ссылки составного реквизита, а его реквизиты в шаблоне не использую.