feat(skd-compile): top-level selection/condApp/outputParameters на StructureItemTable

StructureItemTable может иметь свои selection / conditionalAppearance /
outputParameters прямо на уровне таблицы (отдельно от row/column).
Раньше Emit-StructureItem для table эмитил только columns и rows; теперь
после rows эмитятся top-level блоки.

Аналогично сделано для chart (там было раньше).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-05-22 22:07:51 +03:00
parent 0846740db7
commit 6a8efc9538
2 changed files with 21 additions and 2 deletions
@@ -1,4 +1,4 @@
# skd-compile v1.61 — Compile 1C DCS from JSON
# skd-compile v1.62 — Compile 1C DCS from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$DefinitionFile,
@@ -2705,6 +2705,17 @@ function Emit-StructureItem {
}
}
# Top-level: selection / conditionalAppearance / outputParameters на самой таблице
if ($item.selection) {
Emit-Selection -items $item.selection -indent "$indent`t"
}
if ($item.conditionalAppearance) {
Emit-ConditionalAppearance -items $item.conditionalAppearance -indent "$indent`t"
}
if ($item.outputParameters) {
Emit-OutputParameters -params $item.outputParameters -indent "$indent`t"
}
X "$indent</dcsset:item>"
}
elseif ($type -eq "chart") {
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# skd-compile v1.61 — Compile 1C DCS from JSON
# skd-compile v1.62 — Compile 1C DCS from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import json
@@ -2234,6 +2234,14 @@ def emit_structure_item(lines, item, indent):
emit_table_axis_block(lines, row, f'{indent}\t\t')
lines.append(f'{indent}\t</dcsset:row>')
# Top-level: selection / conditionalAppearance / outputParameters на самой таблице
if item.get('selection'):
emit_selection(lines, item['selection'], f'{indent}\t')
if item.get('conditionalAppearance'):
emit_conditional_appearance(lines, item['conditionalAppearance'], f'{indent}\t')
if item.get('outputParameters'):
emit_output_parameters(lines, item['outputParameters'], f'{indent}\t')
lines.append(f'{indent}</dcsset:item>')
elif item_type == 'chart':