From 730decf9ceb9fa757878906bbcfdcc54a88bd3bb Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 23 May 2026 19:04:22 +0300 Subject: [PATCH] =?UTF-8?q?feat(skd):=20itemsViewMode=20=D0=BD=D0=B0=20tab?= =?UTF-8?q?le=20axis=20(column/row/point/series)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build-TableAxisBlock не читал itemsViewMode на самой оси (только на StructureItemGroup). Теперь сохраняется и эмитится — bit-perfect для шаблонов отчётов с явно заданным itemsViewMode=Normal/Inaccessible на колонках/строках таблицы. sample30: −30 строк (2012 → 1982). --- .claude/skills/skd-compile/scripts/skd-compile.ps1 | 5 ++++- .claude/skills/skd-compile/scripts/skd-compile.py | 4 +++- .claude/skills/skd-decompile/scripts/skd-decompile.ps1 | 5 ++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.claude/skills/skd-compile/scripts/skd-compile.ps1 b/.claude/skills/skd-compile/scripts/skd-compile.ps1 index 607453e3..116d09b1 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.73 — Compile 1C DCS from JSON +# skd-compile v1.74 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [string]$DefinitionFile, @@ -2775,6 +2775,9 @@ function Emit-TableAxisBlock { if ($block.userSettingPresentation) { Emit-MLText -tag "dcsset:userSettingPresentation" -text $block.userSettingPresentation -indent $indent } + if ($block.itemsViewMode) { + X "$indent$(Esc-Xml "$($block.itemsViewMode)")" + } } function Emit-StructureItem { diff --git a/.claude/skills/skd-compile/scripts/skd-compile.py b/.claude/skills/skd-compile/scripts/skd-compile.py index c1da2583..0a45825e 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.73 — Compile 1C DCS from JSON +# skd-compile v1.74 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import json @@ -2244,6 +2244,8 @@ def emit_table_axis_block(lines, block, indent, emit_name=True): lines.append(f'{indent}{esc_xml(uid)}') if block.get('userSettingPresentation'): emit_mltext(lines, indent, 'dcsset:userSettingPresentation', block['userSettingPresentation']) + if block.get('itemsViewMode'): + lines.append(f'{indent}{esc_xml(str(block["itemsViewMode"]))}') def emit_structure_item(lines, item, indent): diff --git a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 index 1a002227..81cd933b 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.56 — Decompile 1C DCS Template.xml to JSON DSL (draft) +# skd-decompile v0.57 — Decompile 1C DCS Template.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -1894,6 +1894,9 @@ function Build-TableAxisBlock { $ausPres = Get-MLText $ausPresNode if ($ausPres) { $entry['userSettingPresentation'] = $ausPres } } + # itemsViewMode на axis (column/row/point/series) + $aivmNode = $node.SelectSingleNode("dcsset:itemsViewMode", $ns) + if ($aivmNode) { $entry['itemsViewMode'] = $aivmNode.InnerText } return $entry }