mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-26 06:54:38 +03:00
feat(form-decompile,form-compile): tooltip элемента + фикс экранирования текста (кластер ToolTip)
Два дефекта вокруг текста <v8:content>, оба вскрылись на формах с подсказками.
1. ToolTip элемента (484 LOST в корпусе). <ToolTip> — прямой мультиязычный
текст подсказки на элементе (UsualGroup 42150, Popup, Page, InputField,
и почти все типы). Декомпилятор пропускал (как companion), компилятор не
эмитил. Введён общий ключ tooltip (string|{ru,en}), как title:
- декомпилятор: захват в Add-CommonProps;
- компилятор: эмиссия в Emit-Title (сразу после Title) — покрывает все
эмиттеры, зовущие Emit-Title.
Попутно выяснилось, что Emit-Pages/Emit-CommandBar вовсе не звали Emit-Title
(теряли и Title, и ToolTip), а Emit-Label эмитит Title по-своему — во все три
добавлена обработка title/tooltip.
2. Экранирование кавычек. Esc-Xml экранировал " → " в тексте элемента,
но 1С в <v8:content> пишет " литерально (экранирует только & < >).
Это ломало раундтрип любого текста с кавычками. Убрано экранирование " .
Декомпилятор (ps1) + компилятор (ps1+py) + spec (§4.1 tooltip). Покрытие:
input-fields (input+tooltip), pages (pages/page tooltip, page с кавычкой в
тексте — проверяет литеральность) — сертифицировано в 1С 8.3.24. Раундтрип
БанковскиеСчета/Wildberries/АдреснаяКнига: ToolTip и " остаток = 0.
Регресс ps+py 33/33.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
"input": {
|
||||
"title": "Поля ввода",
|
||||
"elements": [
|
||||
{ "input": "ОбычноеПоле", "path": "ОбычноеПоле", "title": "Обычное поле", "editMode": "EnterOnInput" },
|
||||
{ "input": "ОбычноеПоле", "path": "ОбычноеПоле", "title": "Обычное поле", "tooltip": "Введите значение поля", "editMode": "EnterOnInput" },
|
||||
{ "labelField": "Ссылка", "path": "ОбычноеПоле", "titleLocation": "left", "hyperlink": true },
|
||||
{ "input": "МногострочноеПоле", "path": "МногострочноеПоле", "multiLine": true, "height": 5, "title": "Комментарий" },
|
||||
{ "input": "ПолеПароля", "path": "ПолеПароля", "passwordMode": true, "title": "Пароль" },
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
"title": "Мастер настройки",
|
||||
"properties": { "autoTitle": false },
|
||||
"elements": [
|
||||
{ "pages": "СтраницыМастера", "pagesRepresentation": "None", "children": [
|
||||
{ "pages": "СтраницыМастера", "pagesRepresentation": "None", "tooltip": "Страницы мастера настройки", "children": [
|
||||
{ "page": "Шаг1", "title": "", "children": [
|
||||
{ "input": "Параметр1", "path": "Параметр1" }
|
||||
]},
|
||||
{ "page": "Шаг2", "title": "Результат", "children": [
|
||||
{ "page": "Шаг2", "title": "Результат", "tooltip": "Шаг \"Результат\"", "children": [
|
||||
{ "input": "Итог", "path": "Итог", "readOnly": true }
|
||||
]}
|
||||
]},
|
||||
|
||||
+6
@@ -17,6 +17,12 @@
|
||||
<v8:content>Обычное поле</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Введите значение поля</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<ContextMenu name="ОбычноеПолеКонтекстноеМеню" id="2"/>
|
||||
<ExtendedTooltip name="ОбычноеПолеРасширеннаяПодсказка" id="3"/>
|
||||
|
||||
+12
@@ -10,6 +10,12 @@
|
||||
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
|
||||
<ChildItems>
|
||||
<Pages name="СтраницыМастера" id="1">
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Страницы мастера настройки</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<PagesRepresentation>None</PagesRepresentation>
|
||||
<ExtendedTooltip name="СтраницыМастераРасширеннаяПодсказка" id="2"/>
|
||||
<ChildItems>
|
||||
@@ -30,6 +36,12 @@
|
||||
<v8:content>Результат</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Шаг "Результат"</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<ExtendedTooltip name="Шаг2РасширеннаяПодсказка" id="9"/>
|
||||
<ChildItems>
|
||||
<InputField name="Итог" id="10">
|
||||
|
||||
Reference in New Issue
Block a user