Редактор формы
страницаРедактор формы
Редактор формы вам уже хорошо знаком по предыдущим занятиям. В нем разработчик указывает, из каких элементов (полей, кнопок, таблиц и т. п.) будет состоять форма, какие реквизиты (данные), команды и параметры будут использоваться в ней. Чтобы оживить форму, разработчик устанавливает связь между элементами и данными формы, а также задает желаемые интерфейсные свойства элементов формы.
Таким образом, разработчик не «рисует» форму, а описывает ее с помощью специального редактора. На основании этого описания платформа сама создает форму с нужным наполнением и обеспечивает либо ее стандартное поведение, либо то поведение, которое задано в модуле формы с помощью встроенного языка.
Окно редактора формы визуально разбито на несколько взаимосвязанных областей (рис. 28.1).

Рис. 28.1. Окно редактора формы
В левой верхней части окна на закладке Элементы можно редактировать состав и порядок элементов формы, группировать их. Задавая различные интерфейсные свойства этих элементов, можно управлять внешним видом формы.
Форма описывается в виде иерархической структуры, в которой все элементы подчинены корневому элементу дерева Форма. Свойства формы в целом, состав ее стандартных команд, набор событий определяются типом основного реквизита, отображаемого в форме. Например, если основным реквизитом формы является документ, то в панели функций появляется стандартная команда Провести и закрыть, иначе — Записать и закрыть и т. д.
Свойства вышестоящих элементов дерева формы определяют состав и значение свойств подчиненных элементов. Например, при добавлении кнопки в командную панель формы свойство Вид этой кнопки автоматически принимает значение Кнопка командной панели.
Влияние одинаковых свойств взаимозависящих элементов дерева друг на друга (например, Ширина) является обоюдным. Таким образом, свойства нижнего уровня могут оказывать влияние на свойства верхнего уровня иерархии, и наоборот.
Что касается расположения элементов формы в режиме 1С:Предприятие, то чем выше в дереве находится элемент, тем выше и левее на форме он будет располагаться (рис. 28.2).

Рис. 28.2. Закладка «Элементы» редактора формы
В нижней части окна редактора форм можно сразу же в процессе разработки увидеть, как будет выглядеть форма в интерфейсе приложения. Причем при выделении элемента в дереве элементов формы он сразу же выделяется в окне предварительного просмотра, и наоборот (см. рис. 28.1). Добавление, удаление, изменение и перетаскивание элементов формы также возможны как в окне элементов формы, так и в окне предварительного просмотра.
В левой верхней части окна редактора формы на закладке Командный интерфейс можно управлять составом и расположением команд в панели навигации и в командной панели формы. Например, можно устанавливать видимость у команд открытия связанных списков, команд ввода на основании и т. п. (рис. 28.3).

Рис. 28.3. Закладка «Командный интерфейс» редактора формы
В правой верхней части окна редактора формы на закладке Реквизиты можно задавать состав реквизитов формы и устанавливать их свойства. Основной реквизит формы (у реквизита установлен признак Основной реквизит) выделен жирным шрифтом и расположен первым в списке реквизитов. Он определяет функциональность формы (рис. 28.4).

Рис. 28.4. Закладка «Реквизиты» редактора формы
После того как реквизиты связаны с элементами формы (свойство элементов ПутьКДанным), данные реквизитов начинают отображаться в форме. Путь к данным реквизита автоматически заполняется при перетаскивании реквизита в окно элементов формы. При этом создается элемент формы подходящего вида для отображения данных реквизита. Поэтому вышеописанный способ (путем перетаскивания реквизитов) — самый простой и удобный способ конструирования формы. Вызвав контекстное меню элемента формы, по команде Перейти можно быстро перейти к реквизиту формы, который отображается этим элементом.
При удалении реквизита из списка реквизитов формы после подтверждения удаляются те элементы формы, которые связаны с удаляемым реквизитом. Соответствующие элементы сразу же удаляются и из окна предварительного просмотра, расположенного в нижней части редактора формы.
В правой верхней части окна редактора формы на закладке Команды можно задавать состав команд, используемых в форме. Эти команды могут создаваться самим разработчиком (закладка Команды формы), могут поставляться формой и ее расширениями (закладка Стандартные команды), или это могут быть глобальные команды, созданные в конфигурации, которые могут отображаться в форме (закладка Глобальные команды), рис. 28.5.

Рис. 28.5. Закладка «Команды» редактора формы
Команды, созданные разработчиком, в свойстве Действие должны быть связаны с процедурой — обработчиком команды, которая описывается в модуле формы на встроенном языке (см. рис. 28.6).
При перетаскивании команды в окно элементов формы в форме создается элемент (кнопка или гиперссылка), связанный с командой (свойство элемента Команда). При нажатии на него будет выполняться процедура, указанная как обработчик команды. Вызвав контекстное меню элемента формы, по команде Перейти можно быстро перейти к команде формы, связанной с этим элементом.
При удалении команды формы после подтверждения удаляются те элементы формы, которые связаны с удаляемой командой. Соответствующие элементы сразу же удаляются и из окна предварительного просмотра, расположенного в нижней части редактора формы.
В правой верхней части окна редактора формы на закладке Параметры можно задавать состав параметров формы. С помощью параметров разработчик может управлять функциональностью формы при ее открытии в режиме 1С:Предприятие.
Внизу окна редактора формы находится закладка Модуль. При ее нажатии открывается модуль формы, в котором описывается работа формы на встроенном языке. В модуле формы располагаются процедуры — обработчики команд формы, обработчики событий элементов формы, а также созданные разработчиком процедуры и функции (рис. 28.6).

Рис. 28.6. Модуль формы
Вызвав контекстное меню элемента формы, можно быстро перейти к процедуре-обработчику команды в модуле формы, связанной с этим элементом. Также с помощью подменю События можно быстро создать или перейти к обработчику события выделенного элемента формы.