feat(form-compile): оформление групп/таблиц/picField/calendar + декод \u-комментариев (хвост Appearance)

Развёл Emit-Appearance ещё в 5 эмиттеров: UsualGroup/ColumnGroup/Table/PictureField/CalendarField
(профиль field; декомпилятор их уже захватывал в Add-CommonProps — теперь компилятор эмитит).
Порядок собственного оформления по корпусу: группа TitleTextColor/TitleFont/BackColor; таблица
BackColor/BorderColor — укладываются в field-профиль. Зеркало PS+Python.

PictureDecoration НЕ разведён намеренно: его XSD расщепляет оформление вокруг <Title>
(TextColor/Font до Title, Border после) + позиция <Picture> — отдельный мелкий кластер (2 строки).

Сертификация загрузкой в 1С 8.3.24: element-appearance (+ группа с BackColor),
dynamic-list-parameters (+ Table backColor/borderColor, колонка titleTextColor/border) — чисто.
Регресс 36/36 ps+py. Harness 1177→1146 (−31; весь кластер Appearance 1326→1146 = −180),
остаток appearance LOST = PictureDecoration 2, ADDED-регрессий 0.

Попутно: декодированы garbled \u-escape в КОММЕНТАРИЯХ form-compile.py (артефакт Edit-инструмента,
переэкранирующего кириллицу под ASCII-конвенцию файла; в комментариях \u не интерпретируется).
Строковые литералы (имена компаньонов) остаются \u-escaped — там escape функционален.
Версия form-compile v1.66.
This commit is contained in:
Nick Shirokov
2026-06-07 21:03:18 +03:00
parent 1888952a41
commit d5d525aa27
7 changed files with 65 additions and 8 deletions
@@ -38,9 +38,9 @@
} }
],
"elements": [
{ "table": "Список", "path": "Список", "columns": [
{ "table": "Список", "path": "Список", "backColor": "web:Honeydew", "borderColor": "style:BorderColor", "columns": [
{ "input": "Код", "path": "Список.Код" },
{ "input": "Наименование", "path": "Список.Наименование" }
{ "input": "Наименование", "path": "Список.Наименование", "titleTextColor": "web:FireBrick", "border": { "width": 1, "style": "Single" } }
]}
]
}
@@ -1,5 +1,5 @@
{
"name": "Оформление элементов — цвета/шрифты/граница на decoration/input/button (профили порядка)",
"name": "Оформление элементов — цвета/шрифты/граница на decoration/input/button/group (профили порядка)",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
@@ -33,7 +33,10 @@
{ "button": "ОК", "title": "ОК",
"backColor": "web:Honeydew",
"borderColor": "style:BorderColor",
"font": "style:NormalTextFont" }
"font": "style:NormalTextFont" },
{ "group": "ГруппаОформление", "backColor": "web:Honeydew", "children": [
{ "input": "Цена2", "path": "Объект.Цена", "textColor": "web:DimGray" }
]}
]
}
}
@@ -27,6 +27,8 @@
<AllowRootChoice>false</AllowRootChoice>
<UpdateOnDataChange>Auto</UpdateOnDataChange>
<AllowGettingCurrentRowURL>true</AllowGettingCurrentRowURL>
<BackColor>web:Honeydew</BackColor>
<BorderColor>style:BorderColor</BorderColor>
<ContextMenu name="СписокКонтекстноеМеню" id="2"/>
<AutoCommandBar name="СписокКоманднаяПанель" id="3">
<Autofill>false</Autofill>
@@ -64,6 +66,10 @@
</InputField>
<InputField name="Наименование" id="17">
<DataPath>Список.Наименование</DataPath>
<TitleTextColor>web:FireBrick</TitleTextColor>
<Border width="1">
<v8ui:style xsi:type="v8ui:ControlBorderType">Single</v8ui:style>
</Border>
<ContextMenu name="НаименованиеКонтекстноеМеню" id="18"/>
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="19"/>
</InputField>
@@ -56,9 +56,21 @@
<Font ref="style:NormalTextFont" kind="StyleItem"/>
<ExtendedTooltip name="ОКРасширеннаяПодсказка" id="11"/>
</Button>
<UsualGroup name="ГруппаОформление" id="12">
<BackColor>web:Honeydew</BackColor>
<ExtendedTooltip name="ГруппаОформлениеРасширеннаяПодсказка" id="13"/>
<ChildItems>
<InputField name="Цена2" id="14">
<DataPath>Объект.Цена</DataPath>
<TextColor>web:DimGray</TextColor>
<ContextMenu name="Цена2КонтекстноеМеню" id="15"/>
<ExtendedTooltip name="Цена2РасширеннаяПодсказка" id="16"/>
</InputField>
</ChildItems>
</UsualGroup>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="12">
<Attribute name="Объект" id="17">
<Type>
<v8:Type>cfg:CatalogObject.Товары</v8:Type>
</Type>