diff --git a/.claude/skills/skd-compile/scripts/skd-compile.ps1 b/.claude/skills/skd-compile/scripts/skd-compile.ps1 index b250b641..c25cdf5d 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.86 — Compile 1C DCS from JSON +# skd-compile v1.87 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [string]$DefinitionFile, @@ -773,7 +773,14 @@ function Emit-InputParameters { X "$indent`t`t`t" X "$indent`t`t`t`t$(Esc-Xml "$($cpItem.name)")" foreach ($v in @($cpItem.values)) { - X "$indent`t`t`t`t$(Esc-Xml "$v")" + if ($v -is [bool]) { + $vStr = if ($v) { 'true' } else { 'false' } + X "$indent`t`t`t`t$vStr" + } elseif ($v -is [int] -or $v -is [long] -or $v -is [double] -or $v -is [decimal]) { + X "$indent`t`t`t`t$v" + } else { + X "$indent`t`t`t`t$(Esc-Xml "$v")" + } } X "$indent`t`t`t" } diff --git a/.claude/skills/skd-compile/scripts/skd-compile.py b/.claude/skills/skd-compile/scripts/skd-compile.py index 8228d019..b8f5ea43 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.86 — Compile 1C DCS from JSON +# skd-compile v1.87 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import json @@ -586,7 +586,13 @@ def emit_input_parameters(lines, ip, indent): lines.append(f'{indent}\t\t\t') lines.append(f'{indent}\t\t\t\t{esc_xml(str(cp.get("name", "")))}') for v in cp.get('values', []) or []: - lines.append(f'{indent}\t\t\t\t{esc_xml(str(v))}') + if isinstance(v, bool): + vs = 'true' if v else 'false' + lines.append(f'{indent}\t\t\t\t{vs}') + elif isinstance(v, (int, float)): + lines.append(f'{indent}\t\t\t\t{v}') + else: + lines.append(f'{indent}\t\t\t\t{esc_xml(str(v))}') lines.append(f'{indent}\t\t\t') lines.append(f'{indent}\t\t') elif 'choiceParameterLinks' in item: diff --git a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 index ddfec202..cdf2a584 100644 --- a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 +++ b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 @@ -1,4 +1,4 @@ -# skd-decompile v0.69 — Decompile 1C DCS Template.xml to JSON DSL (draft) +# skd-decompile v0.70 — Decompile 1C DCS Template.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -492,7 +492,18 @@ function Read-InputParameters { foreach ($cpItem in $val.SelectNodes("dcscor:item", $ns)) { $cpEntry = [ordered]@{ name = Get-Text $cpItem "dcscor:choiceParameter" } $values = @() - foreach ($v in $cpItem.SelectNodes("dcscor:value", $ns)) { $values += $v.InnerText } + foreach ($v in $cpItem.SelectNodes("dcscor:value", $ns)) { + $vXsi = Get-LocalXsiType $v + $vTxt = $v.InnerText + if ($vXsi -eq 'boolean') { + $values += ($vTxt -eq 'true') + } elseif ($vXsi -eq 'decimal') { + if ($vTxt -match '^-?\d+$') { $values += [int]$vTxt } + else { $values += [double]$vTxt } + } else { + $values += $vTxt + } + } $cpEntry['values'] = $values $cp += $cpEntry }