При разработке и доработке конфигураций на платформе 1С:Предприятие с обычными формами нередко приходится сталкиваться со сложными, перегруженными элементами интерфейсами документов и справочников. Когда на форме расположено множество закладок, полей, таблиц и надписей, визуальный поиск нужного реквизита становится затруднительным. Кроме того, часто возникает вопрос: выведен ли реквизит объекта на форму визуально или он обрабатывается только программно?
Разберем по шагам штатные и вспомогательные инструменты конфигуратора и платформы 1С, которые позволяют оперативно локализовать элемент на форме или точно убедиться в его отсутствии.
Самый быстрый способ выяснить, привязан ли реквизит объекта к визуальному элементу формы — воспользоваться встроенным мастером размещения данных.
Подразделение) установлен флажок, значит, он размещен на форме. Если флажка нет — реквизит визуально не выведен.Важное замечание: наличие реквизита в объекте метаданных не обязывает форму иметь визуальное поле ввода. Реквизит может заполняться программно при проведении, в обработчиках модуля объекта или рассчитываться в фоновых алгоритмах.
Если реквизит присутствует на форме, но его сложно найти среди десятков полей, воспользуемся окном списка элементов управления с быстрым переходом к выделению:
Подразделение) и нажмем клавишу Enter.Иногда элемент присутствует в списке элементов управления, но на самом макете формы его не видно. Выясним причину такого поведения. В обычном приложении существует несколько механизмов, скрывающих элементы:
Слой). Откроем пункт меню Форма → Слои и проверим, включена ли видимость всех слоев в конфигураторе. Также в коде модуля формы видимость может переключаться через свойство ТекущийСлой.Панель и находиться на неактивной вкладке (странице). При переключении страниц панели в редакторе формы отображаются только элементы текущей закладки.В обычных формах имя элемента управления может отличаться от имени реквизита, с которым он связан (например, элемент назван разработчиком как ПолеВвода3, а в свойстве Данные указано Подразделение). В таком случае поиск по имени элемента не даст результата.
Рассмотрим, как найти элемент по пути к данным программно. Для этого в процедуре ПриОткрытии модуля формы или через точку останова в отладчике выполним следующий код:
Для Каждого ТекЭлемент Из ЭлементыФормы Цикл
Попытка
Если ТекЭлемент.Данные = "Подразделение" Или ТекЭлемент.Данные = "ЭтотОбъект.Подразделение" Тогда
Сообщить("Элемент найден! Имя элемента на форме: " + ТекЭлемент.Имя);
КонецЕсли;
Исключение
// У некоторых элементов управления (например, Надпись или Разделитель) свойство Данные отсутствует
КонецПопытки;
КонецЦикла;
Чтобы окончательно убедиться, задействован ли реквизит в форме (в интерфейсе или в коде модуля формы), используем глобальный поиск связей: