mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-20 01:20:59 +03:00
feat(form-decompile,form-compile): ToolTip companion ExtendedTooltip (подсказка расширенной подсказки)
Companion <ExtendedTooltip> (это LabelDecoration) может нести собственный <ToolTip> — реальный текст подсказки (ML), а не пустой Title. Декомпилятор ловил Title/layout/flags/ events компаньона, но НЕ его ToolTip → реальный двуязычный текст молча терялся (форма ВводОстатков/ФормаТовары: расширенная подсказка ЕдиницаИзмеренияТНВЭД). DSL: extendedTooltip.tooltip (ML-текст). Декомпилятор: захват <lf:ToolTip> компаньона (Get-LangText). Компилятор (ps1+py): tooltip в companionStructKeys + эмит <ToolTip> после Title (порядок схемы LabelDecoration). ≠ элементного tooltip обычной подсказки — скоупится вложенностью (могут сосуществовать). Редкое (1 форма в rt-iter), но реальная потеря контента. Форма ВводОстатков → match. Кейс input-fields (ОбычноеПоле: элементный tooltip + extendedTooltip с text+tooltip+events) сертифицирован загрузкой в 1С — оба tooltip сосуществуют. Регресс 43/43, ps1==py. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
abcd5be2b0
commit
03b2b5a64e
@@ -1,4 +1,4 @@
|
||||
# form-decompile v0.116 — Decompile 1C managed Form.xml to JSON DSL (draft)
|
||||
# form-decompile v0.117 — Decompile 1C managed Form.xml to JSON DSL (draft)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
# ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью.
|
||||
param(
|
||||
@@ -2124,6 +2124,9 @@ function Decompile-Element {
|
||||
Add-Layout $etObj $etNode
|
||||
Add-GenericScalars $etObj $etNode
|
||||
Add-Appearance $etObj $etNode
|
||||
# ToolTip самого компаньона (подсказка расширенной подсказки) — реальный текст (ML), не пустой Title
|
||||
$etTT = $etNode.SelectSingleNode("lf:ToolTip", $ns)
|
||||
if ($etTT) { $ttVal = Get-LangText $etTT; if ($null -ne $ttVal) { $etObj['tooltip'] = $ttVal } }
|
||||
if ((Get-Child $etNode 'Visible') -eq 'false') { $etObj['hidden'] = $true }
|
||||
if ((Get-Child $etNode 'Enabled') -eq 'false') { $etObj['disabled'] = $true }
|
||||
if ((Get-Child $etNode 'Hyperlink') -eq 'true') { $etObj['hyperlink'] = $true }
|
||||
|
||||
Reference in New Issue
Block a user