Получение списка реквизитов формы - тема, поднимающаяся на форумах с постоянной периодичностью, не нова, и давно решена с пом. богатых возможностей formex. Если есть возможность - используйте эту компоненту.
Рассмотренные в этой публикации методы получения реквизитов, - их можно назвать штатными с точки зрения не использования ВК, не гарантируют полноту данных, и поэтому отнесены мной к разряду занимательного программирования.
Лучше всего получилось пропарсить файл внешнего отчета и вытащить все реквизиты формы, которые там записаны, вместе с их свойствами (ограничился типом реквизита и флажком его неопределенности).
Встроенные формы конфигурации, однако, так не пропарсишь. Тут удалось: определить что это за форма, тип, вид объекта, и по ним определить все привязанные реквизиты (например, "ДатаДок" для документа, "ВремяДок", для формы журнала документа, и.т.д.), и те из них, которые присутствуют на форме (через попытку). Оставщиеся реквизиты формы: таблицы, списки, реквизиты диалога... просто обойдем эмулированием нажатия клавиши {TAB} . Конечно, получилось не просто, - обойти слои, закладки, табличные многореквизитные формы списка, но все же - это получилось.
В итоге - набор универсальных функций:
глРеквизитыДиалогаФормыВнешнегоОтчета() - Реквизиты из файла. Определение реквизитов формы по содержимому файла внешнего отчета
глНачатьПоискРеквизитовОбходом() - Инициировать обход реквизитов в форме эмулированием TAB
глСчитатьТекущийАктивныйЭлемент() - При обходе получить текущий активный элемент формы. Вставляется в ПриЗакрытии().
глФункцияВТекстеНаФорме() - Функция для обхода в текст на форме.
глЭтоФормаСписка() - По переданному контексту возвращает признак формы списка.
глПолучитьРеквизитыОбъекта() - По переданному контексту открываемого объекта метаданных формирует его список реквизитов, расположенных на форме.
Смотрите их реализацию в прилагаемом внешнем отчете.