mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +03:00
feat(skd-compile): userSettingID/userSettingPresentation на StructureItemGroup
StructureItemGroup может быть зарегистрирована как пункт пользовательских настроек (например, "По сотрудникам" — позволяет включить/выключить группировку через UI). Поля userSettingID и userSettingPresentation эмитятся после viewMode, перед itemsViewMode (платформенный порядок). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# skd-compile v1.57 — Compile 1C DCS from JSON
|
||||
# skd-compile v1.58 — Compile 1C DCS from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$DefinitionFile,
|
||||
@@ -2646,12 +2646,18 @@ function Emit-StructureItem {
|
||||
}
|
||||
}
|
||||
|
||||
# viewMode/itemsViewMode on StructureItemGroup are context-dependent —
|
||||
# platform emits them in some shapes (top-level single group) but not always.
|
||||
# Emit only when explicitly set in JSON (preserves bit-perfect round-trip).
|
||||
# viewMode/itemsViewMode/userSettingID/userSettingPresentation on
|
||||
# StructureItemGroup are context-dependent — emit only when explicitly set.
|
||||
if ($item.viewMode) {
|
||||
X "$indent`t<dcsset:viewMode>$(Esc-Xml "$($item.viewMode)")</dcsset:viewMode>"
|
||||
}
|
||||
if ($item.userSettingID) {
|
||||
$gid = if ("$($item.userSettingID)" -eq "auto") { New-Guid-String } else { "$($item.userSettingID)" }
|
||||
X "$indent`t<dcsset:userSettingID>$(Esc-Xml $gid)</dcsset:userSettingID>"
|
||||
}
|
||||
if ($item.userSettingPresentation) {
|
||||
Emit-MLText -tag "dcsset:userSettingPresentation" -text $item.userSettingPresentation -indent "$indent`t"
|
||||
}
|
||||
if ($item.itemsViewMode) {
|
||||
X "$indent`t<dcsset:itemsViewMode>$(Esc-Xml "$($item.itemsViewMode)")</dcsset:itemsViewMode>"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# skd-compile v1.57 — Compile 1C DCS from JSON
|
||||
# skd-compile v1.58 — Compile 1C DCS from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import json
|
||||
@@ -2189,9 +2189,14 @@ def emit_structure_item(lines, item, indent):
|
||||
for child in item['children']:
|
||||
emit_structure_item(lines, child, f'{indent}\t')
|
||||
|
||||
# viewMode/itemsViewMode — emit only when explicitly set (context-dependent)
|
||||
# viewMode/itemsViewMode/userSettingID/userSettingPresentation — context-dependent
|
||||
if item.get('viewMode'):
|
||||
lines.append(f'{indent}\t<dcsset:viewMode>{esc_xml(str(item["viewMode"]))}</dcsset:viewMode>')
|
||||
if item.get('userSettingID'):
|
||||
gid = new_uuid() if str(item['userSettingID']) == 'auto' else str(item['userSettingID'])
|
||||
lines.append(f'{indent}\t<dcsset:userSettingID>{esc_xml(gid)}</dcsset:userSettingID>')
|
||||
if item.get('userSettingPresentation'):
|
||||
emit_mltext(lines, f'{indent}\t', 'dcsset:userSettingPresentation', item['userSettingPresentation'])
|
||||
if item.get('itemsViewMode'):
|
||||
lines.append(f'{indent}\t<dcsset:itemsViewMode>{esc_xml(str(item["itemsViewMode"]))}</dcsset:itemsViewMode>')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user