Группы свойств и действий
Поведение свойств и действий с точки зрения работы с группами абсолютно одинаково, поэтому в дальнейшем в этом разделе будем использовать только термин свойство (для действий поведение абсолютно аналогично).
Все свойства в системе разбиваются на группы свойств. Все группы при этом образуют иерархию, в которой каждая группа может содержать в себе как свойства, так и другие группы свойств. Корневой группой в этой иерархии является группа System.root
. Все остальные группы содержатся в некоторой родительской группе.
Каждое свойство или действие непосредственно принадлежит ровно одной группе, а также принадлежит всем предкам этой группы. Так, например, все свойства и действия в системе принадлежат группе System.root
.
Встроенные группы свойств
Помимо root
в модуле System
автоматически создаются следующие группы свойств и действий:
root
public
base
id
private
Все эти группы (в том числе root
) не используются в механизмах отображения форм (то есть контейнеры в дизайне форм по умолчанию и элементы иерархии иерархического импорта / экспорта для них не создаются).
Использование групп свойств
На данный момент группы свойств используются в следующих механизмах:
- При отображении форм:
- в интерактивном представлении - для каждой группы можно указать, что для нее в дизайне по умолчанию необходимо создавать отдельный контейнер. Соответственно, иерархия контейнеров в дизайне по умолчанию будет совпадать с иерархией таких групп свойств. То есть если для для группы свойств (свойства)
A
и группы свойствB
необходимо создавать контейнер, а группа (свойство)A
является потомком группыB
, то и контейнер группы (компонент свойства)A
будет потомком контейнера группыB
. - в иерархическом представлении - для каждой группы можно указать, что для нее при экспорте формы необходимо создавать отдельный промежуточный тег. Соответственно, иерархия тегов при экспорте будет совпадать с иерархией таких групп свойств. То есть, если для группы свойств (свойства)
A
и группы свойствB
необходимо создавать тег, а группа (свойство)A
является потомком группыB
, то и тег группы (свойства)A
будет внутри тега группыB
.
- в интерактивном представлении - для каждой группы можно указать, что для нее в дизайне по умолчанию необходимо создавать отдельный контейнер. Соответственно, иерархия контейнеров в дизайне по умолчанию будет совпадать с иерархией таких групп свойств. То есть если для для группы свойств (свойства)
- При автоматическом создании форм:
- Все свойства с одним аргументом, которые входят в группу
System.base
, будут отображаться в автоматически создаваемых диалоговых формах выбора / редактирования объектов. - Все свойства с одним аргументом, которые входят в группу
System.id
, будут отображаться в автоматически создаваемых формах показа сообщения при нарушении ограничений.
- Все свойства с одним аргументом, которые входят в группу
- В политике безопасности:
- Можно задавать политику безопасности целиком по группе (а не по каждому свойству в отдельности).
Язык
Для добавления новой группы свойств и действий в систему используется инструкция GROUP
.
GROUP base : root; // Заголовком этой группы будет 'base'
GROUP local 'Локальные свойства'; // Родительской группой local будет являться System.private