feat(form-compile): оформление PictureDecoration — un-defer (хвост Appearance закрыт)

Ранее отложил PictureDecoration, ошибочно решив, что падение загрузки = порядок тегов (XSD
расщепляет appearance вокруг <Title>). Разбор остатка показал: падало из-за НЕВАЛИДНОЙ ссылки
на картинку в тесте (picture:"Картинка" → <xr:Ref>Картинка</xr:Ref>, такой CommonPicture нет),
а не из-за оформления. Проверка с валидной StdPicture.Print + appearance → грузится чисто.

Ключевой факт: 1С ТОЛЕРАНТНА к порядку оформления внутри элемента. LabelDecoration в корпусе
тоже расщепляет appearance вокруг Title (TextColor/Font до Title — тысячи раз; BackColor/Border
после), но компилятор эмитит contiguous-после-Title — и LabelDecoration сертифицировался. Значит
профиль decoration валиден и для PictureDecoration.

Разведён 12-й эмиттер (pictureDecoration, профиль decoration), PS+Python. Кейс element-appearance
расширен PictureDecoration (StdPicture.Print, чистое имя через src). Сертификация загрузкой —
чисто. Регресс 36/36 ps+py. Harness: остаток appearance LOST = 0 (был PictureDecoration 2),
TOTAL 1146→1144; весь кластер Appearance 1326→1144 (−182). Версия form-compile v1.67.
This commit is contained in:
Nick Shirokov
2026-06-07 21:20:23 +03:00
parent d5d525aa27
commit d88859580f
5 changed files with 26 additions and 10 deletions
@@ -1,5 +1,5 @@
{
"name": "Оформление элементов — цвета/шрифты/граница на decoration/input/button/group (профили порядка)",
"name": "Оформление элементов — цвета/шрифты/граница на decoration/input/button/group/picture (профили порядка)",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
@@ -36,7 +36,10 @@
"font": "style:NormalTextFont" },
{ "group": "ГруппаОформление", "backColor": "web:Honeydew", "children": [
{ "input": "Цена2", "path": "Объект.Цена", "textColor": "web:DimGray" }
]}
]},
{ "picture": "Логотип", "src": "StdPicture.Print",
"textColor": "web:FireBrick", "font": "style:NormalTextFont",
"border": { "width": 1, "style": "Single" } }
]
}
}
@@ -68,9 +68,22 @@
</InputField>
</ChildItems>
</UsualGroup>
<PictureDecoration name="Логотип" id="17">
<Picture>
<xr:Ref>StdPicture.Print</xr:Ref>
<xr:LoadTransparent>false</xr:LoadTransparent>
</Picture>
<TextColor>web:FireBrick</TextColor>
<Font ref="style:NormalTextFont" kind="StyleItem"/>
<Border width="1">
<v8ui:style xsi:type="v8ui:ControlBorderType">Single</v8ui:style>
</Border>
<ContextMenu name="ЛоготипКонтекстноеМеню" id="18"/>
<ExtendedTooltip name="ЛоготипРасширеннаяПодсказка" id="19"/>
</PictureDecoration>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="17">
<Attribute name="Объект" id="20">
<Type>
<v8:Type>cfg:CatalogObject.Товары</v8:Type>
</Type>