From 1b36aa97c88cbeb715a8dd5672199ef81d3b2784 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 23 May 2026 19:44:58 +0300 Subject: [PATCH] =?UTF-8?q?feat(skd-decompile):=20useRestriction=3Dtrue=20?= =?UTF-8?q?=D0=B2=20object=20form=20=D0=B4=D0=BB=D1=8F=20non-hidden/non-au?= =?UTF-8?q?toDates=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Параметры с явно заданным true, которые не покрываются auto-emit от @hidden (где compile сам ставит true) и не участвуют в @autoDates fold (где compile также ставит true companion'ам), теряли это свойство. Типичный кейс: параметры-выражения вида ПериодНачало = &Период.ДатаНачала с useRestriction=true. Render-Parameter теперь явно эмитит useRestriction:true в object form с защитой от двойного перекрытия hidden/autoDates. sample30: −60 строк (1710 → 1650). --- .claude/skills/skd-decompile/scripts/skd-decompile.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 index a216e511..9c53cf6e 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.62 — Decompile 1C DCS Template.xml to JSON DSL (draft) +# skd-decompile v0.63 — Decompile 1C DCS Template.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -863,6 +863,8 @@ function Render-Parameter { if ($p.valueListAllowed) { $obj['valueListAllowed'] = $true } if ($p.autoDates) { $obj['autoDates'] = $true } if ($p.expression) { $obj['expression'] = $p.expression } + # useRestriction явно эмитится только если: true И НЕ покрыт hidden/autoDates (compile auto-emit). + if ($p.useRestriction -and -not $p.hidden -and -not $p.autoDates) { $obj['useRestriction'] = $true } if ($p.availableValues -and $p.availableValues.Count -gt 0) { $obj['availableValues'] = $p.availableValues } if ($p.inputParameters) { $obj['inputParameters'] = $p.inputParameters } return $obj