Перейти к основному содержимому

Фрагмент экранной формы

Фрагмент экранной формы — экранная форма, которая может быть вставлена в другую экранную форму. Экранная форма, в которую вставляется фрагмент, называется родительской. В коде файла описания фрагмента экранной формы присутствует строка ContainerType="PartView".

Обычно фрагмент экранной формы содержит набор компонентов Платформы, повторяющихся на нескольких экранных формах проекта. Использование фрагментов экранных форм вносит единообразие и ускоряет разработку интерфейса, а также позволяет сократить количество ошибок в коде. По этой причине рекомендуется проанализировать экранные формы разрабатываемого проекта на наличие однотипных компонентов, создать и использовать фрагменты экранных форм, включающие эти однотипные компоненты.

Фрагмент экранной формы может быть не неизменным набором компонентов Платформы. В коде родительской экранной формы можно управлять содержимым фрагмента экранной формы.

Для разграничения областей видимости переменных состояния родительской экранной формы и фрагмента экранной формы используется свойство ValueRoot.

При вставке фрагмента экранной формы в родительскую экранную форму в визуальном режиме Редактора Форм свойство ValueRoot добавляется автоматически. В кодовом режиме Редактора Форм можно изменить значение этого свойства, присвоенное автоматически, и присвоить этому свойству уникальное имя переменной.

Следующий блок кода демонстрирует вставку фрагмента экранной формы с именем MyFragment в родительскую экранную форму и присвоение значения свойству ValueRoot.

<MyFragment
ValueRoot="MyVar"
/>

Если свойство ValueRoot указано, фрагмент не имеет прямого доступа к переменным родительской экранной формы. Подход с разграничением видимости переменных состояния позволяет абстрагировать фрагмент от родительской экранной формы. Использование свойства ValueRoot фрагмента экранной формы позволяет предупредить ошибки в коде. При отсутствии свойства ValueRoot ошибки могут возникать в связи с переприсвоением значений одних и тех же переменных состояния родительской экранной формы несколькими фрагментами экранной формы.

Для передачи данных из родительской экранной формы во фрагмент рекомендуется использовать свойства фрагмента, которые можно задать как в кодовом, так и в визуальном режиме Редактора Форм.

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