From 2b8cdc40ca6607afa4584eede178305032e1867d Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Fri, 22 May 2026 19:40:59 +0300 Subject: [PATCH] =?UTF-8?q?feat(skd-compile):=20multilang=20presentation?= =?UTF-8?q?=20=D0=BD=D0=B0=20conditionalAppearance=20item?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit При значении-словаре {ru, en, ...} эмитим как LocalStringType с //; при строке — по-прежнему xs:string. Раньше всегда жёстко xs:string, что давало LOST для multilang. Co-Authored-By: Claude Opus 4.7 --- .claude/skills/skd-compile/scripts/skd-compile.ps1 | 9 +++++++-- .claude/skills/skd-compile/scripts/skd-compile.py | 8 ++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.claude/skills/skd-compile/scripts/skd-compile.ps1 b/.claude/skills/skd-compile/scripts/skd-compile.ps1 index 8e31fe34..fe7a545b 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.51 — Compile 1C DCS from JSON +# skd-compile v1.52 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [string]$DefinitionFile, @@ -2226,7 +2226,12 @@ function Emit-ConditionalAppearance { # Presentation if ($ca.presentation) { - X "$indent`t`t$(Esc-Xml "$($ca.presentation)")" + # Multilang dict {ru, en, ...} → LocalStringType; иначе — xs:string + if ($ca.presentation -is [hashtable] -or $ca.presentation -is [System.Collections.IDictionary] -or $ca.presentation -is [PSCustomObject]) { + Emit-MLText -tag "dcsset:presentation" -text $ca.presentation -indent "$indent`t`t" + } else { + X "$indent`t`t$(Esc-Xml "$($ca.presentation)")" + } } if ($ca.viewMode) { diff --git a/.claude/skills/skd-compile/scripts/skd-compile.py b/.claude/skills/skd-compile/scripts/skd-compile.py index d42f46cd..378f24db 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.51 — Compile 1C DCS from JSON +# skd-compile v1.52 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import json @@ -1863,7 +1863,11 @@ def emit_conditional_appearance(lines, items, indent, block_view_mode=None): # Presentation if ca.get('presentation'): - lines.append(f'{indent}\t\t{esc_xml(str(ca["presentation"]))}') + # Multilang dict {ru, en, ...} → LocalStringType; иначе — xs:string + if isinstance(ca['presentation'], dict): + emit_mltext(lines, f'{indent}\t\t', 'dcsset:presentation', ca['presentation']) + else: + lines.append(f'{indent}\t\t{esc_xml(str(ca["presentation"]))}') if ca.get('viewMode'): lines.append(f'{indent}\t\t{esc_xml(str(ca["viewMode"]))}')