Инструкция EXTEND FORM
Инструкция EXTEND FORM - расширение существующей формы.
Синтаксис
EXTEND FORM formName
[formBlock1
...
formBlockN]
;
Описание
Инструкция EXTEND FORM позволяет расширять существующую форму дополнительными блоками формы, записываемыми так же, как при объявлении формы. Внутри этих блоков можно ссылаться на объекты, свойства и действия, уже объявленные на форме, — например, чтобы разместить новый элемент относительно уже имеющегося или отфильтровать добавляемую группу объектов по объекту, уже имеющемуся на форме.
Помимо блоков, добавляющих на форму новые элементы, в инструкции можно использовать описанные ниже блоки расширения, которые изменяют заголовки и опции элементов, уже добавленных на форму.
Параметры
-
formNameИмя расширяемой формы. Составной идентификатор. Должно указывать на уже существующую форму, объявленную в этом или другом модуле; новая форма не создаётся. Заголовок и значок здесь не задаются — форма сохраняет те, что заданы при её объявлении.
-
formBlock1 ... formBlockNБлоки формы.
Примеры
CLASS ItemGroup;
name = DATA ISTRING[100] (ItemGroup);
itemGroup = DATA ItemGroup (Item);
EXTEND FORM items
PROPERTIES(i) NEWSESSION DELETE // добавляем на форму кнопку удаления
OBJECTS g = ItemGroup BEFORE i // добавляем на форму объект группы товаров перед товаром
PROPERTIES(g) READONLY name
// если бы объект был добавлен после объекта с товарами, то фильтрация шла бы по группе товаров,
// а не по товарам
FILTERS itemGroup(i) == g
;
Блок расширения объектов
Синтаксис
EXTEND OBJECTS extObjectDecl1, ..., extObjectDeclN
Где каждый extObjectDecl имеет следующий синтаксис:
[caption =] name objectOptions groupOptions
Опции объекта objectOptions и опции группы объектов groupOptions — те же, что и в блоке объектов, и записываются так же.
Описание
Блок расширения объектов изменяет группы объектов, уже добавленные на форму. Указанные опции применяются к существующей группе объектов так же, как если бы они были указаны при ее добавлении. В частности, с помощью опции insertPosition группу объектов можно переместить в списке групп объектов формы.
Параметры
-
captionНовый заголовок объекта. Строковый литерал. Заголовок и опции объекта
objectOptionsприменяются, только если группа объектов состоит из одиночного объекта. -
nameИмя объекта либо имя группы объектов, уже добавленных на форму. Простой идентификатор.
Примеры
EXTEND FORM items
// меняем заголовок объекта g и перемещаем его группу после товаров
EXTEND OBJECTS 'Группа товаров' = g AFTER i
;
Блок расширения дерева объектов
Синтаксис
EXTEND TREE name [insertPosition]
Описание
Блок расширения дерева объектов перемещает дерево объектов, уже добавленное на форму, в списке групп объектов формы. Добавить в существующее дерево новые группы объектов нельзя.
Параметры
-
nameИмя дерева объектов, заданное при его объявлении. Простой идентификатор.
-
insertPositionУказание позиции дерева в списке групп объектов. Имеет синтаксис, полностью аналогичный такой же опции в блоке объектов.
Примеры
EXTEND FORM skus
EXTEND TREE groupTree LAST // перемещаем дерево groupTree в конец списка групп объектов
;
Блок расширения свойств и действий
Синтаксис
EXTEND PROPERTIES [formPropertyOptions] extPropertyDecl1, ..., extPropertyDeclM
Где каждый extPropertyDecl имеет следующий синтаксис:
[caption =] formPropertyName [formPropertyOptions]
Где formPropertyName — имя свойства (действия) на форме, задаваемое одним из следующих способов:
alias
propertyName(objectName1, ..., objectNameK)
Опции formPropertyOptions — те же, что и в блоке свойств и действий, и записываются так же.
Описание
Блок расширения свойств и действий изменяет свойства и действия, уже добавленные в структуру формы. Указанные опции применяются к существующему свойству (действию) так же, как если бы они были указаны при его добавлении. Опции, указанные сразу после ключевых слов EXTEND PROPERTIES, применяются ко всем перечисленным в блоке свойствам (действиям); если какая-то из опций задана и для всего блока, и для конкретного элемента, то используется значение опции для элемента.
Параметры
-
captionНовый заголовок свойства (действия) на форме. Строковый литерал.
-
aliasИмя свойства (действия) на форме, заданное явно при его добавлении. Простой идентификатор.
-
propertyName(objectName1, ..., objectNameK)Имя свойства (действия) на форме, образованное из имени свойства и имен объектов, переданных ему в качестве параметров. Вместо имени свойства может использоваться оператор работы с объектами (
NEW,EDIT,DELETEи другие).
Примеры
EXTEND FORM items
// меняем заголовок свойства name(g) и запрещаем его редактирование
EXTEND PROPERTIES 'Наименование группы' = name(g) READONLY
// убираем иконки у кнопок, добавленных на форму ранее
EXTEND PROPERTIES NOIMAGE NEW(i), DELETE(i)
;