From 573602ae65c46d8bac1bfae212d20678b40ae926 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 23 May 2026 19:37:23 +0300 Subject: [PATCH] =?UTF-8?q?fix(skd-decompile):=20=D1=81=D0=BE=D1=85=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D0=BC=D0=BD=D1=8B=D1=85=20xsi:type=20=D0=B2=20outputPara?= =?UTF-8?q?meters=20items?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Параметры типа ВариантИспользованияГруппировки с xsi:type= dcsset:DataCompositionGroupUseVariant теряли тип, потому что wrapper создавался только при наличии viewMode/userSettingID/use=false. Теперь кастомный xsi:type (не xs:* / LocalStringType / Font) сам по себе триггерит wrapping — сохраняем valueType для bit-perfect эмиссии. sample30: −28 строк (1738 → 1710). --- .claude/skills/skd-decompile/scripts/skd-decompile.ps1 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 index 12334afa..a216e511 100644 --- a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 +++ b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 @@ -1,4 +1,4 @@ -# skd-decompile v0.61 — Decompile 1C DCS Template.xml to JSON DSL (draft) +# skd-decompile v0.62 — Decompile 1C DCS Template.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -1733,7 +1733,10 @@ function Build-OutputParameters { $vmN = $it.SelectSingleNode("dcsset:viewMode", $ns) $usidV = Get-Text $it "dcsset:userSettingID" $uspN = $it.SelectSingleNode("dcsset:userSettingPresentation", $ns) - $hasExtras = ($useV -eq 'false') -or $vmN -or $usidV -or $uspN -or ($nestedItems.Count -gt 0) + # Если xsi:type — кастомный (dcsset:XXX, v8ui:XXX, и т.п., не xs:* и не LocalStringType/Font), + # нужен wrap чтобы compile сохранил тип через valueType (default — xs:string). + $typeIsCustom = $fullType -and ($fullType -notmatch '^xs:') -and ($vType -ne 'LocalStringType') -and ($vType -ne 'Font') + $hasExtras = ($useV -eq 'false') -or $vmN -or $usidV -or $uspN -or ($nestedItems.Count -gt 0) -or $typeIsCustom if ($hasExtras) { $wrap = [ordered]@{ value = $rawVal } if ($fullType -and -not (($vType -eq 'LocalStringType') -or ($vType -eq 'Font'))) {