From f75c71064c845810a03ed03b62e74c127b8adfc6 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 23 May 2026 17:27:21 +0300 Subject: [PATCH] =?UTF-8?q?feat(skd):=20userSettingPresentation=20=D0=BD?= =?UTF-8?q?=D0=B0=20conditionalAppearance=20item?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build-ConditionalAppearance не читал userSettingPresentation (read только viewMode/userSettingID), теперь сохраняет multilang презентацию в JSON, а Emit-ConditionalAppearance эмитит её обратно. sample30: −80 строк (2114 → 2034). --- .claude/skills/skd-compile/scripts/skd-compile.ps1 | 6 +++++- .claude/skills/skd-compile/scripts/skd-compile.py | 5 ++++- .claude/skills/skd-decompile/scripts/skd-decompile.ps1 | 7 ++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.claude/skills/skd-compile/scripts/skd-compile.ps1 b/.claude/skills/skd-compile/scripts/skd-compile.ps1 index 61410ae0..3724fe8f 100644 --- a/.claude/skills/skd-compile/scripts/skd-compile.ps1 +++ b/.claude/skills/skd-compile/scripts/skd-compile.ps1 @@ -1,4 +1,4 @@ -# skd-compile v1.71 — Compile 1C DCS from JSON +# skd-compile v1.72 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [string]$DefinitionFile, @@ -2340,6 +2340,10 @@ function Emit-ConditionalAppearance { X "$indent`t`t$(Esc-Xml $uid)" } + if ($ca.userSettingPresentation) { + Emit-MLText -tag "dcsset:userSettingPresentation" -text $ca.userSettingPresentation -indent "$indent`t`t" + } + # useInXxx — список областей где правило НЕ применяется (DontUse). # Порядок имитирует платформенный (group → hierarchicalGroup → overall → ...). if ($ca.useInDontUse -and $ca.useInDontUse.Count -gt 0) { diff --git a/.claude/skills/skd-compile/scripts/skd-compile.py b/.claude/skills/skd-compile/scripts/skd-compile.py index ef5ee157..de946438 100644 --- a/.claude/skills/skd-compile/scripts/skd-compile.py +++ b/.claude/skills/skd-compile/scripts/skd-compile.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# skd-compile v1.70 — Compile 1C DCS from JSON +# skd-compile v1.72 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import json @@ -1932,6 +1932,9 @@ def emit_conditional_appearance(lines, items, indent, block_view_mode=None): uid = new_uuid() if str(ca['userSettingID']) == 'auto' else str(ca['userSettingID']) lines.append(f'{indent}\t\t{esc_xml(uid)}') + if ca.get('userSettingPresentation'): + emit_mltext(lines, f'{indent}\t\t', 'dcsset:userSettingPresentation', ca['userSettingPresentation']) + # useInXxx — список областей где правило НЕ применяется (DontUse) if ca.get('useInDontUse'): use_in_order = ['group', 'hierarchicalGroup', 'overall', diff --git a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 index bfb105c5..25d07379 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.54 — Decompile 1C DCS Template.xml to JSON DSL (draft) +# skd-decompile v0.55 — Decompile 1C DCS Template.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -1639,6 +1639,11 @@ function Build-ConditionalAppearance { if ($vmN) { $entry['viewMode'] = $vmN.InnerText } $usid = Get-Text $it "dcsset:userSettingID" if ($usid) { $entry['userSettingID'] = 'auto' } + $uspN = $it.SelectSingleNode("dcsset:userSettingPresentation", $ns) + if ($uspN) { + $usp = Get-MLText $uspN + if ($usp) { $entry['userSettingPresentation'] = $usp } + } # use=false на самом condAppearance item $useV = Get-Text $it "dcsset:use" if ($useV -eq 'false') { $entry['use'] = $false }