From f5432eb48d04e94778ba525d1d9fdc17402ddd62 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Fri, 22 May 2026 20:06:46 +0300 Subject: [PATCH] =?UTF-8?q?feat(skd-compile):=20inputParameters=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D1=85=20+=20multilang=20=D0=B2=20value?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Параметр (parameters[]) может иметь свой inputParameters блок — например <ФорматРедактирования> со значением xs:LocalStringType. Раньше Emit-InputParameters использовался только для DataSet field; теперь подключён и к Emit-Parameter (вывод после ). emit_input_parameters value: добавлена поддержка multilang dict ({ru, en, ...} → LocalStringType). Раньше падал в xs:string. Co-Authored-By: Claude Opus 4.7 --- .claude/skills/skd-compile/scripts/skd-compile.ps1 | 10 +++++++++- .claude/skills/skd-compile/scripts/skd-compile.py | 9 ++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.claude/skills/skd-compile/scripts/skd-compile.ps1 b/.claude/skills/skd-compile/scripts/skd-compile.ps1 index fe7a545b..6e6bd035 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.52 — Compile 1C DCS from JSON +# skd-compile v1.53 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [string]$DefinitionFile, @@ -799,6 +799,9 @@ function Emit-InputParameters { X "$indent`t`t$vStr" } elseif ($val -is [int] -or $val -is [long] -or $val -is [double] -or $val -is [decimal]) { X "$indent`t`t$val" + } elseif ($val -is [hashtable] -or $val -is [System.Collections.IDictionary] -or $val -is [PSCustomObject]) { + # Multilang dict {ru, en, ...} → LocalStringType + Emit-MLText -tag "dcscor:value" -text $val -indent "$indent`t`t" } else { X "$indent`t`t$(Esc-Xml "$val")" } @@ -1316,6 +1319,11 @@ function Emit-SingleParam { X "`t`t$(Esc-Xml $useVal)" } + # InputParameters на параметре (ФорматРедактирования и т.п.) + if ($null -ne $p -and $p -isnot [string] -and $p.inputParameters) { + Emit-InputParameters -ip $p.inputParameters -indent "`t`t" + } + X "`t" } diff --git a/.claude/skills/skd-compile/scripts/skd-compile.py b/.claude/skills/skd-compile/scripts/skd-compile.py index 378f24db..a1cd2df3 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.52 — Compile 1C DCS from JSON +# skd-compile v1.53 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import json @@ -605,6 +605,9 @@ def emit_input_parameters(lines, ip, indent): lines.append(f'{indent}\t\t{vstr}') elif isinstance(val, (int, float)): lines.append(f'{indent}\t\t{val}') + elif isinstance(val, dict): + # Multilang dict {ru, en, ...} → LocalStringType + emit_mltext(lines, f'{indent}\t\t', 'dcscor:value', val) else: lines.append(f'{indent}\t\t{esc_xml(str(val))}') lines.append(f'{indent}\t') @@ -1132,6 +1135,10 @@ def emit_single_param(lines, p, parsed): if use_val: lines.append(f'\t\t{esc_xml(use_val)}') + # InputParameters на параметре (ФорматРедактирования и т.п.) + if p is not None and not isinstance(p, str) and p.get('inputParameters'): + emit_input_parameters(lines, p['inputParameters'], '\t\t') + lines.append('\t')