From 013d3c3a01c10685846c504e928897b70d9a27f2 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Fri, 22 May 2026 19:34:32 +0300 Subject: [PATCH] =?UTF-8?q?feat(skd-decompile):=20=D1=87=D1=82=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20useInXxx=20=D0=B8=20use=3Dfalse=20=D0=BD=D0=B0?= =?UTF-8?q?=20conditionalAppearance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build-ConditionalAppearance теперь читает: - false → use: false - любые DontUse → элемент в массиве useInDontUse (имена тегов: useInGroup → "group", useInFieldsHeader → "fieldsHeader", и т.п.) Эффект на sample30: −187 строк diff. Существенная часть LOST и LOST / (внутри useInXxx-окружения) закрыта. Co-Authored-By: Claude Opus 4.7 --- .../skd-decompile/scripts/skd-decompile.ps1 | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 index 6cebaeb3..02ec9a80 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.35 — Decompile 1C DCS Template.xml to JSON DSL (draft) +# skd-decompile v0.36 — Decompile 1C DCS Template.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -1568,6 +1568,22 @@ function Build-ConditionalAppearance { if ($vmN) { $entry['viewMode'] = $vmN.InnerText } $usid = Get-Text $it "dcsset:userSettingID" if ($usid) { $entry['userSettingID'] = 'auto' } + # use=false на самом condAppearance item + $useV = Get-Text $it "dcsset:use" + if ($useV -eq 'false') { $entry['use'] = $false } + # useInXxx — управляет где применяется правило оформления + # (group, hierarchicalGroup, overall, fieldsHeader, header, parameters, + # filter, resourceFieldsHeader, overallHeader, overallResourceFieldsHeader) + $useInDontUse = @() + foreach ($ch in $it.ChildNodes) { + if ($ch.NodeType -ne 'Element' -or $ch.NamespaceURI -ne 'http://v8.1c.ru/8.1/data-composition-system/settings') { continue } + if ($ch.LocalName -match '^useIn(.+)$' -and $ch.InnerText -eq 'DontUse') { + # Преобразуем useInGroup → group, useInFieldsHeader → fieldsHeader + $shortName = ($matches[1]).Substring(0, 1).ToLower() + ($matches[1]).Substring(1) + $useInDontUse += $shortName + } + } + if ($useInDontUse.Count -gt 0) { $entry['useInDontUse'] = $useInDontUse } $out += $entry $i++ }