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')