feat(form-decompile,form-compile): ExtendedTooltip own-content (объектная форма)

ExtendedTooltip — это LabelDecoration: может нести own-content (layout/оформление/
флаги/hyperlink) вместо/вместе с текстом. Объектная форма extendedTooltip:
{ text?, formatted?, width?, autoMaxWidth?, maxWidth?, height?, horizontalStretch?,
verticalAlign?, titleHeight?, hyperlink?, visible?, enabled?, textColor?, font?, … }.
Дизамбигуация от текст-формы (строка/ML/{text,formatted}) — по наличию структурного
ключа. Переиспользует Emit-Layout/Emit-Appearance/Emit-CommonFlags + Emit-GenericScalars.

Порядок: own-content ПЕРЕД Title (в корпусе layout-first 582 vs 10) — заодно убирает
шум атрибуции харнесса на многострочном контенте. Декомпилятор собирает объект
(Add-Layout/Add-GenericScalars/Add-Appearance/флаги/hyperlink), текст → .text;
текст-only остаётся строкой (обратная совместимость).

Форма WildberriesПереходРВБ: TOTAL 35→2 (остаток — отдельный rowsPicture
LoadTransparent). Зеркало py (байт-в-байт), кейс input-fields (own-content+текст и
width-only) сертифицирован в 1С. Регресс 39/39 ps1+py. Хвост: События компаньона
(нужно имя-обработчик) — отложено.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-08 20:55:17 +03:00
co-authored by Claude Opus 4.8
parent fb3bce5811
commit ea43522b5a
6 changed files with 113 additions and 21 deletions
@@ -40,7 +40,16 @@
</v8:item>
</EditFormat>
<ContextMenu name="ОбычноеПолеКонтекстноеМеню" id="2"/>
<ExtendedTooltip name="ОбычноеПолеРасширеннаяПодсказка" id="3"/>
<ExtendedTooltip name="ОбычноеПолеРасширеннаяПодсказка" id="3">
<AutoMaxWidth>false</AutoMaxWidth>
<Width>30</Width>
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Расширенная подсказка поля</v8:content>
</v8:item>
</Title>
</ExtendedTooltip>
</InputField>
<LabelField name="Ссылка" id="4">
<DataPath>ОбычноеПоле</DataPath>
@@ -308,7 +317,9 @@
<CheckBoxType>Auto</CheckBoxType>
<TitleLocation>Right</TitleLocation>
<ContextMenu name="ФлагКонтекстноеМеню" id="29"/>
<ExtendedTooltip name="ФлагРасширеннаяПодсказка" id="30"/>
<ExtendedTooltip name="ФлагРасширеннаяПодсказка" id="30">
<Width>45</Width>
</ExtendedTooltip>
</CheckBoxField>
<CheckBoxField name="ФлагПлатформенный" id="31">
<DataPath>ФлагПлатформенный</DataPath>