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