mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-20 01:20:59 +03:00
fix(form-decompile,form-compile): PictureDecoration имя-как-Ref + <xr:Abs> + порядок Title декораций
Баг: Emit-PictureDecoration брал $el.picture (тип-ключ = имя элемента) фолбэком источника картинки → при отсутствии src писал <xr:Ref>ИмяДекорации>. Фикс: источник картинки — ТОЛЬКО src. <xr:Abs> (встроенная картинка, 131 в корпусе): декомпилятор ловил лишь xr:Ref → теперь src:"abs:Имя" → <xr:Abs>Имя</xr:Abs> (префикс abs:, иначе <xr:Ref>). Порядок: LabelDecoration эмитил Title перед own-content, а платформа — layout-first (корпус 16970 vs 44). Переставил флаги/hyperlink/layout/оформление ПЕРЕД Title (как ExtendedTooltip) — заодно убирает шум атрибуции харнесса на многострочном Title (Height «уезжал» на родительскую группу; контент был корректен, ломалась line- атрибуция). Форма МобильноеПриложениеПредприниматель → round-trip match. Зеркало py (байт-в-байт). Снэпшоты events/element-appearance/additional-columns обновлены (только порядок) и пере-сертифицированы в 1С. Регресс 39/39 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
8915e99ac8
commit
f7d5e2fd00
@@ -1,4 +1,4 @@
|
||||
# form-decompile v0.58 — Decompile 1C managed Form.xml to JSON DSL (draft)
|
||||
# form-decompile v0.59 — Decompile 1C managed Form.xml to JSON DSL (draft)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
# ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью.
|
||||
param(
|
||||
@@ -1436,7 +1436,9 @@ function Decompile-Element {
|
||||
# title декорации — единая ML-text форма с formatted (атрибут <Title formatted> у PictureDecoration)
|
||||
$tiNode = $node.SelectSingleNode("lf:Title", $ns)
|
||||
if ($tiNode) { $tv = Get-MLFormattedValue $tiNode; if ($null -ne $tv) { $obj['title'] = $tv } }
|
||||
$ref = $node.SelectSingleNode("lf:Picture/xr:Ref", $ns); if ($ref) { $obj['src'] = $ref.InnerText }
|
||||
$ref = $node.SelectSingleNode("lf:Picture/xr:Ref", $ns)
|
||||
$abs = $node.SelectSingleNode("lf:Picture/xr:Abs", $ns)
|
||||
if ($ref) { $obj['src'] = $ref.InnerText } elseif ($abs) { $obj['src'] = "abs:$($abs.InnerText)" } # встроенная картинка → префикс abs:
|
||||
$lt = $node.SelectSingleNode("lf:Picture/xr:LoadTransparent", $ns); if ($lt -and $lt.InnerText -eq 'true') { $obj['loadTransparent'] = $true }
|
||||
if ((Get-Child $node 'Hyperlink') -eq 'true') { $obj['hyperlink'] = $true }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user