feat(form-decompile,form-compile): формат динамического заголовка группы/страницы (Format при titleDataPath)

Раундтрип терял <Format> на UsualGroup/Page — формат значения пути к данным заголовка
(<TitleDataPath>): мультиязычный формат вида БЛ=; БИ=* / BF=; BT=* (напр. УчетныеЗаписиЭДО/
УчетнаяЗапись — 4 группы/страницы, 40 строк diff с каскадом структурных v8:item-обёрток).

Корпус (acc+erp 8.3.24): <Format>-блоки — LabelField 1784, InputField 1480 (уже обрабатывались),
UsualGroup 13, Page 10 (пробел). Механизм формата уже был у полей (Add-FormatProps / Emit-MLText);
подключён к группе/странице.

decompile: Add-FormatProps в ветках UsualGroup/Page (захват format/editFormat).
compile (ps1+py): Emit-MLText <Format>/<EditFormat> в Emit-Group/Emit-Page (рядом с titleDataPath).

Верификация: таргет-раундтрип 11 форм с group/page Format → категория закрыта (0 Format LOST;
целевая форма match, было 40→0); остаток — др. категория ListSettings + 1 ring3 (SpreadsheetDocument).
Регресс form-compile 43/43 (ps1+py); 1С-cert кейса groups (группа с Format+TitleDataPath грузится). spec.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-12 14:17:26 +03:00
parent cb3dda0d53
commit 3340d48898
6 changed files with 51 additions and 5 deletions
+3 -2
View File
@@ -23,7 +23,7 @@
{ "input": "Поле2", "path": "Поле2", "title": "Поле 2" },
{ "labelField": "Метка", "path": "Поле1", "groupVerticalAlign": "Center" }
]},
{ "group": "vertical", "name": "ГруппаПодвал", "behavior": "collapsible", "collapsed": true, "title": { "ru": "Подвал", "en": "Footer" }, "collapsedTitle": "Развернуть подвал", "showLeftMargin": false, "enableContentChange": false, "verticalSpacing": "None", "displayImportance": "Low", "children": [
{ "group": "vertical", "name": "ГруппаПодвал", "behavior": "collapsible", "collapsed": true, "title": { "ru": "Подвал", "en": "Footer" }, "collapsedTitle": "Развернуть подвал", "titleDataPath": "Изменено", "format": { "ru": "БЛ=; БИ=*", "en": "BF=; BT=*" }, "showLeftMargin": false, "enableContentChange": false, "verticalSpacing": "None", "displayImportance": "Low", "children": [
{ "input": "Поле3", "path": "Поле3", "title": "Поле 3" }
]}
],
@@ -31,7 +31,8 @@
{ "name": "Объект", "type": "DataProcessorObject.СГруппами", "main": true },
{ "name": "Поле1", "type": "string" },
{ "name": "Поле2", "type": "decimal(15,2)" },
{ "name": "Поле3", "type": "date" }
{ "name": "Поле3", "type": "date" },
{ "name": "Изменено", "type": "boolean" }
]
}
}
@@ -91,9 +91,20 @@
<v8:content>Развернуть подвал</v8:content>
</v8:item>
</CollapsedRepresentationTitle>
<Format>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>БЛ=; БИ=*</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>BF=; BT=*</v8:content>
</v8:item>
</Format>
<EnableContentChange>false</EnableContentChange>
<ShowLeftMargin>false</ShowLeftMargin>
<VerticalSpacing>None</VerticalSpacing>
<TitleDataPath>Изменено</TitleDataPath>
<ExtendedTooltip name="ГруппаПодвалРасширеннаяПодсказка" id="15"/>
<ChildItems>
<InputField name="Поле3" id="16">
@@ -162,5 +173,16 @@
</v8:DateQualifiers>
</Type>
</Attribute>
<Attribute name="Изменено" id="23">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Изменено</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
</Attributes>
</Form>