feat(skd-compile): nested children + use=false на StructureItemGroup

В реальных отчётах внутри table row / column / chart axis (point/series)
часто живут вложенные группы — StructureItemGroup в children, со своими
groupItems / filter / order / selection / outputParameters / nested
children глубже. До этого Emit-TableAxisBlock эмитил только axis-level
поля, без children.

Также: на самой StructureItemGroup может быть use=false (отключённая
ветка структуры в settings) — добавлено в DSL и в эмит.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-05-22 18:55:02 +03:00
co-authored by Claude Opus 4.7
parent 6e3632e5ff
commit ac72ca8a51
2 changed files with 20 additions and 2 deletions
@@ -1,4 +1,4 @@
# skd-compile v1.48 — Compile 1C DCS from JSON
# skd-compile v1.49 — Compile 1C DCS from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$DefinitionFile,
@@ -2519,6 +2519,12 @@ function Emit-TableAxisBlock {
if ($block.outputParameters) {
Emit-OutputParameters -params $block.outputParameters -indent $indent
}
# nested children (StructureItemGroup внутри table row/column или chart axis)
if ($block.children) {
foreach ($child in $block.children) {
Emit-StructureItem -item $child -indent $indent
}
}
if ($block.viewMode) {
X "$indent<dcsset:viewMode>$(Esc-Xml "$($block.viewMode)")</dcsset:viewMode>"
}
@@ -2539,6 +2545,11 @@ function Emit-StructureItem {
if ($type -eq "group") {
X "$indent<dcsset:item xsi:type=`"dcsset:StructureItemGroup`">"
# use=false — отключённая ветка структуры
if ($item.use -eq $false) {
X "$indent`t<dcsset:use>false</dcsset:use>"
}
if ($item.name) {
X "$indent`t<dcsset:name>$(Esc-Xml "$($item.name)")</dcsset:name>"
}