Атрибут вида документа

Доменная сущность Версия: 0.3 draft

Поле в составе вида документа: код, каноническое наименование, тип значения, обязательность, порядок и участие в ядре карты.

⟨/⟩ Исходник

1. Назначение

Атрибут вида документа — поле в составе вида, а не связка между видом и чем-то ещё. Он отвечает и на вопрос «что это за поле по смыслу» (код, каноническое наименование), и на вопрос «чем оно заполняется и обязательно ли» (тип значения, обязательность).

Атрибут принадлежит виду и никому больше. Общего словаря атрибутов над видами нет: он давал переиспользование заодно с общими ограничениями, и правка ради одного вида молча меняла поведение остальных. Переиспользуется теперь тип значения — он именован и выбирается осознанно.

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

Поэтому одинаковое по смыслу поле в двух видах — дата и в карте, и в листе экспертизы — это два разных атрибута. Совпадение кодов между видами полезно при заведении, но ничем не обеспечено и ни к чему не обязывает.

2. Инварианты

3. Дробность атрибутов

Атрибут соответствует одной заполняемой позиции на форме, а не смысловой группе. Правило одно и покрывает оба случая, которые иначе хотелось бы решать по-разному:

Состав вида от этого длиннее, зато значение опознаётся кодом атрибута и не зависит от того, в каком разделе бланка поле напечатано. Иначе смысл значения пришлось бы восстанавливать по пути в дереве разделов — и при любой перевёрстке бланка он бы поехал.

Одно и то же поле, подписанное на разных редакциях бланка по-разному (Кол-во стр. и Количество страниц), остаётся одним атрибутом: подпись живёт в поле формы. Поэтому карты разных редакций сравнимы между собой.

Свойства

СвойствоТипОписание
CodeStringКод атрибута — устойчивое имя, по которому его опознают форма и выгрузка.
NameStringКаноническое наименование атрибута.
IsRequiredBooleanОбязателен ли атрибут для документов этого вида.
OrderInt32Порядок атрибута в составе вида.
DocumentKindDocumentKindВид документа, в состав которого входит атрибут.
ValueTypeAttributeValueTypeТип значения: чем заполняется поле и в каких границах. Именованный и переиспользуемый — единственное, что виды документов делят между собой.
CoreFieldCardCoreFieldСвойство ядра карты, которое заполняется значением этого атрибута.