feat(form-decompile,form-compile): tooltipRepresentation элемента (кластер ToolTipRepresentation)

<ToolTipRepresentation> (режим показа подсказки: None/Button/ShowBottom/ShowTop/
ShowLeft/ShowRight/ShowAuto/Balloon) — общее свойство элемента (Button 13785,
Popup 6417, ButtonGroup, InputField, CheckBoxField, LabelDecoration, группы и
др.; None доминирует — 25241). Терялся: декомпилятор не читал, компилятор не эмитил.

Введён общий passthrough-ключ tooltipRepresentation:
- декомпилятор: захват в Add-CommonProps;
- компилятор: эмиссия в Emit-Title (после ToolTip) — покрывает все эмиттеры,
  зовущие Emit-Title; плюс отдельно в Emit-Label (свой title-блок, не зовёт
  Emit-Title).

Декомпилятор (ps1) + компилятор (ps1+py) + spec §4.1. Покрытие: input-fields
(input, ShowBottom), events (label-декорация, Button) — сертифицировано в 1С
8.3.24. Раундтрип БанковскиеСчета/Wildberries: остаток ToolTipRepresentation = 0.
Регресс ps+py 33/33.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-05 16:02:06 +03:00
co-authored by Claude Opus 4.8
parent 22e929ecb3
commit 908af27bf0
8 changed files with 19 additions and 7 deletions
+1 -1
View File
@@ -19,7 +19,7 @@
"elements": [
{ "input": "Организация", "path": "Организация", "events": { "OnChange": "ОрганизацияПриИзменении", "StartChoice": "ОрганизацияНачалоВыбора" } },
{ "input": "Период", "path": "Период", "events": { "OnChange": "ПериодПриИзменении" } },
{ "label": "Подсказка", "title": "Нажмите для перехода", "hyperlink": true, "events": { "Click": null } }
{ "label": "Подсказка", "title": "Нажмите для перехода", "hyperlink": true, "tooltipRepresentation": "Button", "events": { "Click": null } }
],
"attributes": [
{ "name": "Объект", "type": "DataProcessorObject.События", "main": true },
@@ -16,7 +16,7 @@
"input": {
"title": "Поля ввода",
"elements": [
{ "input": "ОбычноеПоле", "path": "ОбычноеПоле", "title": "Обычное поле", "tooltip": "Введите значение поля", "editMode": "EnterOnInput" },
{ "input": "ОбычноеПоле", "path": "ОбычноеПоле", "title": "Обычное поле", "tooltip": "Введите значение поля", "tooltipRepresentation": "ShowBottom", "editMode": "EnterOnInput" },
{ "labelField": "Ссылка", "path": "ОбычноеПоле", "titleLocation": "left", "hyperlink": true },
{ "input": "МногострочноеПоле", "path": "МногострочноеПоле", "multiLine": true, "height": 5, "title": "Комментарий" },
{ "input": "ПолеПароля", "path": "ПолеПароля", "passwordMode": true, "title": "Пароль" },
@@ -37,6 +37,7 @@
<v8:content>Нажмите для перехода</v8:content>
</v8:item>
</Title>
<ToolTipRepresentation>Button</ToolTipRepresentation>
<Hyperlink>true</Hyperlink>
<ContextMenu name="ПодсказкаКонтекстноеМеню" id="8"/>
<ExtendedTooltip name="ПодсказкаРасширеннаяПодсказка" id="9"/>
@@ -23,6 +23,7 @@
<v8:content>Введите значение поля</v8:content>
</v8:item>
</ToolTip>
<ToolTipRepresentation>ShowBottom</ToolTipRepresentation>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ОбычноеПолеКонтекстноеМеню" id="2"/>
<ExtendedTooltip name="ОбычноеПолеРасширеннаяПодсказка" id="3"/>