From 761e7b8613583635dfaff200f4edeef37d621efd Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Wed, 29 Jul 2026 21:15:25 +0300 Subject: [PATCH] =?UTF-8?q?fix(db-*,epf-*):=20=D1=81=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=BE=D0=BA=20=D0=B4=D0=BE=D0=BF.=20=D0=B0=D1=80=D0=B3=D1=83?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82=D0=BE=D0=B2=20=E2=80=94=20=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BA=D0=BE=D0=B9=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=BF=D1=8F=D1=82=D1=83=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit powershell.exe -File (именно так вызываются навыки) не умеет биндить массив: значения через пробел уходят в позиционные параметры, а список через запятую приезжает одним склеенным токеном. Поэтому параметр принимает список в конвенции репозитория (как -Objects/-Files) и разбирается внутри; нативный вызов массивом продолжает работать. То же разбиение добавлено в py-порт — чтобы одна и та же строка вызова работала в обоих. Значение с запятой внутри не поддерживается. Co-Authored-By: Claude Opus 5 (1M context) --- .claude/skills/db-create/SKILL.md | 4 ++-- .claude/skills/db-create/scripts/db-create.ps1 | 8 +++++++- .claude/skills/db-create/scripts/db-create.py | 10 ++++++++-- .claude/skills/db-dump-cf/SKILL.md | 4 ++-- .claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 | 8 +++++++- .claude/skills/db-dump-cf/scripts/db-dump-cf.py | 10 ++++++++-- .claude/skills/db-dump-dt/SKILL.md | 4 ++-- .claude/skills/db-dump-dt/scripts/db-dump-dt.ps1 | 8 +++++++- .claude/skills/db-dump-dt/scripts/db-dump-dt.py | 10 ++++++++-- .claude/skills/db-dump-xml/SKILL.md | 4 ++-- .claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 | 8 +++++++- .claude/skills/db-dump-xml/scripts/db-dump-xml.py | 10 ++++++++-- .claude/skills/db-load-cf/SKILL.md | 4 ++-- .claude/skills/db-load-cf/scripts/db-load-cf.ps1 | 8 +++++++- .claude/skills/db-load-cf/scripts/db-load-cf.py | 10 ++++++++-- .claude/skills/db-load-dt/SKILL.md | 4 ++-- .claude/skills/db-load-dt/scripts/db-load-dt.ps1 | 8 +++++++- .claude/skills/db-load-dt/scripts/db-load-dt.py | 10 ++++++++-- .claude/skills/db-load-git/SKILL.md | 4 ++-- .claude/skills/db-load-git/scripts/db-load-git.ps1 | 8 +++++++- .claude/skills/db-load-git/scripts/db-load-git.py | 10 ++++++++-- .claude/skills/db-load-xml/SKILL.md | 4 ++-- .claude/skills/db-load-xml/scripts/db-load-xml.ps1 | 8 +++++++- .claude/skills/db-load-xml/scripts/db-load-xml.py | 10 ++++++++-- .claude/skills/db-run/SKILL.md | 2 +- .claude/skills/db-run/scripts/db-run.ps1 | 8 +++++++- .claude/skills/db-run/scripts/db-run.py | 10 ++++++++-- .claude/skills/db-update/SKILL.md | 4 ++-- .claude/skills/db-update/scripts/db-update.ps1 | 8 +++++++- .claude/skills/db-update/scripts/db-update.py | 10 ++++++++-- .claude/skills/epf-build/SKILL.md | 4 ++-- .claude/skills/epf-build/scripts/epf-build.ps1 | 8 +++++++- .claude/skills/epf-build/scripts/epf-build.py | 10 ++++++++-- .claude/skills/epf-build/scripts/stub-db-create.ps1 | 8 +++++++- .claude/skills/epf-build/scripts/stub-db-create.py | 10 ++++++++-- .claude/skills/epf-dump/SKILL.md | 4 ++-- .claude/skills/epf-dump/scripts/epf-dump.ps1 | 8 +++++++- .claude/skills/epf-dump/scripts/epf-dump.py | 10 ++++++++-- .claude/skills/erf-build/SKILL.md | 4 ++-- .claude/skills/erf-dump/SKILL.md | 4 ++-- 40 files changed, 222 insertions(+), 66 deletions(-) diff --git a/.claude/skills/db-create/SKILL.md b/.claude/skills/db-create/SKILL.md index 66a1c55d..388e0f96 100644 --- a/.claude/skills/db-create/SKILL.md +++ b/.claude/skills/db-create/SKILL.md @@ -45,8 +45,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-create.ps1" <п | `-UseTemplate <файл>` | нет | Создать из шаблона (.cf или .dt) | | `-AddToList` | нет | Добавить в список баз 1С | | `-ListName <имя>` | нет | Имя базы в списке | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-create/scripts/db-create.ps1 b/.claude/skills/db-create/scripts/db-create.ps1 index 6b211b85..384d696c 100644 --- a/.claude/skills/db-create/scripts/db-create.ps1 +++ b/.claude/skills/db-create/scripts/db-create.ps1 @@ -1,4 +1,4 @@ -# db-create v1.8 — Create 1C information base +# db-create v1.9 — Create 1C information base # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -154,6 +154,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-create/scripts/db-create.py b/.claude/skills/db-create/scripts/db-create.py index 532038f4..7c162778 100644 --- a/.claude/skills/db-create/scripts/db-create.py +++ b/.claude/skills/db-create/scripts/db-create.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-create v1.8 — Create 1C information base +# db-create v1.9 — Create 1C information base # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/db-dump-cf/SKILL.md b/.claude/skills/db-dump-cf/SKILL.md index 3e7c15b9..c56ee02a 100644 --- a/.claude/skills/db-dump-cf/SKILL.md +++ b/.claude/skills/db-dump-cf/SKILL.md @@ -51,8 +51,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-cf.ps1" <п | `-OutputFile <путь>` | да | Путь к выходному CF-файлу | | `-Extension <имя>` | нет | Выгрузить расширение | | `-AllExtensions` | нет | Выгрузить все расширения | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 b/.claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 index 4c2274a5..b27182b2 100644 --- a/.claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 +++ b/.claude/skills/db-dump-cf/scripts/db-dump-cf.ps1 @@ -1,4 +1,4 @@ -# db-dump-cf v1.10 — Dump 1C configuration to CF file +# db-dump-cf v1.11 — Dump 1C configuration to CF file # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -170,6 +170,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-dump-cf/scripts/db-dump-cf.py b/.claude/skills/db-dump-cf/scripts/db-dump-cf.py index ebad4940..a4e1c566 100644 --- a/.claude/skills/db-dump-cf/scripts/db-dump-cf.py +++ b/.claude/skills/db-dump-cf/scripts/db-dump-cf.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-dump-cf v1.10 — Dump 1C configuration to CF file +# db-dump-cf v1.11 — Dump 1C configuration to CF file # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/db-dump-dt/SKILL.md b/.claude/skills/db-dump-dt/SKILL.md index fc5f79bf..aef935ec 100644 --- a/.claude/skills/db-dump-dt/SKILL.md +++ b/.claude/skills/db-dump-dt/SKILL.md @@ -52,8 +52,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-dt.ps1" <п | `-UserName <имя>` | нет | Имя пользователя | | `-Password <пароль>` | нет | Пароль | | `-OutputFile <путь>` | да | Путь к выходному DT-файлу | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-dump-dt/scripts/db-dump-dt.ps1 b/.claude/skills/db-dump-dt/scripts/db-dump-dt.ps1 index 31cc303a..6672c048 100644 --- a/.claude/skills/db-dump-dt/scripts/db-dump-dt.ps1 +++ b/.claude/skills/db-dump-dt/scripts/db-dump-dt.ps1 @@ -1,4 +1,4 @@ -# db-dump-dt v1.9 — Dump 1C information base to DT file +# db-dump-dt v1.10 — Dump 1C information base to DT file # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -154,6 +154,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-dump-dt/scripts/db-dump-dt.py b/.claude/skills/db-dump-dt/scripts/db-dump-dt.py index d45e7a2b..df6ba9a1 100644 --- a/.claude/skills/db-dump-dt/scripts/db-dump-dt.py +++ b/.claude/skills/db-dump-dt/scripts/db-dump-dt.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-dump-dt v1.9 — Dump 1C information base to DT file +# db-dump-dt v1.10 — Dump 1C information base to DT file # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/db-dump-xml/SKILL.md b/.claude/skills/db-dump-xml/SKILL.md index d4c92cf3..0f43ffdc 100644 --- a/.claude/skills/db-dump-xml/SKILL.md +++ b/.claude/skills/db-dump-xml/SKILL.md @@ -56,8 +56,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-dump-xml.ps1" < | `-Extension <имя>` | нет | Выгрузить расширение | | `-AllExtensions` | нет | Выгрузить все расширения | | `-Format <формат>` | нет | `Hierarchical` (по умолч.) / `Plain` | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 b/.claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 index 3505e7b7..13c2a4ce 100644 --- a/.claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 +++ b/.claude/skills/db-dump-xml/scripts/db-dump-xml.ps1 @@ -1,4 +1,4 @@ -# db-dump-xml v1.12 — Dump 1C configuration to XML files +# db-dump-xml v1.13 — Dump 1C configuration to XML files # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -193,6 +193,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-dump-xml/scripts/db-dump-xml.py b/.claude/skills/db-dump-xml/scripts/db-dump-xml.py index 3d8a20e5..a407e7be 100644 --- a/.claude/skills/db-dump-xml/scripts/db-dump-xml.py +++ b/.claude/skills/db-dump-xml/scripts/db-dump-xml.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-dump-xml v1.12 — Dump 1C configuration to XML files +# db-dump-xml v1.13 — Dump 1C configuration to XML files # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/db-load-cf/SKILL.md b/.claude/skills/db-load-cf/SKILL.md index 7865a3bc..6c25533b 100644 --- a/.claude/skills/db-load-cf/SKILL.md +++ b/.claude/skills/db-load-cf/SKILL.md @@ -52,8 +52,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-cf.ps1" <п | `-InputFile <путь>` | да | Путь к CF-файлу | | `-Extension <имя>` | нет | Загрузить как расширение | | `-AllExtensions` | нет | Загрузить все расширения из архива | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-load-cf/scripts/db-load-cf.ps1 b/.claude/skills/db-load-cf/scripts/db-load-cf.ps1 index 2604bae4..0870d4b1 100644 --- a/.claude/skills/db-load-cf/scripts/db-load-cf.ps1 +++ b/.claude/skills/db-load-cf/scripts/db-load-cf.ps1 @@ -1,4 +1,4 @@ -# db-load-cf v1.11 — Load 1C configuration from CF file +# db-load-cf v1.12 — Load 1C configuration from CF file # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -187,6 +187,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-load-cf/scripts/db-load-cf.py b/.claude/skills/db-load-cf/scripts/db-load-cf.py index 42143ff2..67ab2dea 100644 --- a/.claude/skills/db-load-cf/scripts/db-load-cf.py +++ b/.claude/skills/db-load-cf/scripts/db-load-cf.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-load-cf v1.11 — Load 1C configuration from CF file +# db-load-cf v1.12 — Load 1C configuration from CF file # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/db-load-dt/SKILL.md b/.claude/skills/db-load-dt/SKILL.md index 9f3110b5..a5502303 100644 --- a/.claude/skills/db-load-dt/SKILL.md +++ b/.claude/skills/db-load-dt/SKILL.md @@ -68,8 +68,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-dt.ps1" <п | `-InputFile <путь>` | да | Путь к DT-файлу | | `-JobsCount ` | нет | Число фоновых заданий загрузки (0 = по числу процессоров) | | `-UnlockCode <код>` | нет | Код разблокировки (`/UC`), если заблокировано начало сеансов | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-load-dt/scripts/db-load-dt.ps1 b/.claude/skills/db-load-dt/scripts/db-load-dt.ps1 index f3ea049a..352f032d 100644 --- a/.claude/skills/db-load-dt/scripts/db-load-dt.ps1 +++ b/.claude/skills/db-load-dt/scripts/db-load-dt.ps1 @@ -1,4 +1,4 @@ -# db-load-dt v1.10 — Load 1C information base from DT file +# db-load-dt v1.11 — Load 1C information base from DT file # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -184,6 +184,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-load-dt/scripts/db-load-dt.py b/.claude/skills/db-load-dt/scripts/db-load-dt.py index 68d2515c..4b84789d 100644 --- a/.claude/skills/db-load-dt/scripts/db-load-dt.py +++ b/.claude/skills/db-load-dt/scripts/db-load-dt.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-load-dt v1.10 — Load 1C information base from DT file +# db-load-dt v1.11 — Load 1C information base from DT file # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/db-load-git/SKILL.md b/.claude/skills/db-load-git/SKILL.md index 154e7270..5e96dd75 100644 --- a/.claude/skills/db-load-git/SKILL.md +++ b/.claude/skills/db-load-git/SKILL.md @@ -59,8 +59,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-git.ps1" < | `-Format <формат>` | нет | `Hierarchical` (по умолч.) / `Plain` | | `-DryRun` | нет | Только показать что будет загружено (без загрузки) | | `-UpdateDB` | нет | После загрузки сразу обновить конфигурацию БД (`/UpdateDBCfg`) | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-load-git/scripts/db-load-git.ps1 b/.claude/skills/db-load-git/scripts/db-load-git.ps1 index 31f7fd0c..99aa3b30 100644 --- a/.claude/skills/db-load-git/scripts/db-load-git.ps1 +++ b/.claude/skills/db-load-git/scripts/db-load-git.ps1 @@ -1,4 +1,4 @@ -# db-load-git v1.16 — Load Git changes into 1C database +# db-load-git v1.17 — Load Git changes into 1C database # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -202,6 +202,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-load-git/scripts/db-load-git.py b/.claude/skills/db-load-git/scripts/db-load-git.py index e8b96577..d9a6956a 100644 --- a/.claude/skills/db-load-git/scripts/db-load-git.py +++ b/.claude/skills/db-load-git/scripts/db-load-git.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-load-git v1.16 — Load Git changes into 1C database +# db-load-git v1.17 — Load Git changes into 1C database # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/db-load-xml/SKILL.md b/.claude/skills/db-load-xml/SKILL.md index 9f2094df..9d3c10db 100644 --- a/.claude/skills/db-load-xml/SKILL.md +++ b/.claude/skills/db-load-xml/SKILL.md @@ -59,8 +59,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-load-xml.ps1" < | `-AllExtensions` | нет | Загрузить все расширения | | `-Format <формат>` | нет | `Hierarchical` (по умолч.) / `Plain` | | `-UpdateDB` | нет | После загрузки сразу обновить конфигурацию БД (`/UpdateDBCfg`) | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-load-xml/scripts/db-load-xml.ps1 b/.claude/skills/db-load-xml/scripts/db-load-xml.ps1 index 6069c261..ea6bf4f1 100644 --- a/.claude/skills/db-load-xml/scripts/db-load-xml.ps1 +++ b/.claude/skills/db-load-xml/scripts/db-load-xml.ps1 @@ -1,4 +1,4 @@ -# db-load-xml v1.17 — Load 1C configuration from XML files +# db-load-xml v1.18 — Load 1C configuration from XML files # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -219,6 +219,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-load-xml/scripts/db-load-xml.py b/.claude/skills/db-load-xml/scripts/db-load-xml.py index 0195455a..36d97e61 100644 --- a/.claude/skills/db-load-xml/scripts/db-load-xml.py +++ b/.claude/skills/db-load-xml/scripts/db-load-xml.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-load-xml v1.17 — Load 1C configuration from XML files +# db-load-xml v1.18 — Load 1C configuration from XML files # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/db-run/SKILL.md b/.claude/skills/db-run/SKILL.md index 8656e0a1..132ef108 100644 --- a/.claude/skills/db-run/SKILL.md +++ b/.claude/skills/db-run/SKILL.md @@ -52,7 +52,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-run.ps1" <пар | `-Execute <файл.epf>` | нет | Запуск внешней обработки сразу после старта | | `-CParam <строка>` | нет | Параметр запуска (/C) | | `-URL <ссылка>` | нет | Навигационная ссылка (формат `e1cib/...`) | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-run/scripts/db-run.ps1 b/.claude/skills/db-run/scripts/db-run.ps1 index 03e11e5c..1080e4b0 100644 --- a/.claude/skills/db-run/scripts/db-run.ps1 +++ b/.claude/skills/db-run/scripts/db-run.ps1 @@ -1,4 +1,4 @@ -# db-run v1.5 — Launch 1C:Enterprise +# db-run v1.6 — Launch 1C:Enterprise # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -173,6 +173,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-run/scripts/db-run.py b/.claude/skills/db-run/scripts/db-run.py index 63b5f129..2bf44a69 100644 --- a/.claude/skills/db-run/scripts/db-run.py +++ b/.claude/skills/db-run/scripts/db-run.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-run v1.5 — Launch 1C:Enterprise +# db-run v1.6 — Launch 1C:Enterprise # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -160,7 +160,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/db-update/SKILL.md b/.claude/skills/db-update/SKILL.md index 0cc6d1cf..0dc40537 100644 --- a/.claude/skills/db-update/SKILL.md +++ b/.claude/skills/db-update/SKILL.md @@ -53,8 +53,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-update.ps1" <п | `-Dynamic <+/->` | нет | `+` — динамическое обновление, `-` — отключить | | `-Server` | нет | Обновление на стороне сервера | | `-WarningsAsErrors` | нет | Предупреждения считать ошибками | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef` diff --git a/.claude/skills/db-update/scripts/db-update.ps1 b/.claude/skills/db-update/scripts/db-update.ps1 index c9494fdd..646c47c6 100644 --- a/.claude/skills/db-update/scripts/db-update.ps1 +++ b/.claude/skills/db-update/scripts/db-update.ps1 @@ -1,4 +1,4 @@ -# db-update v1.11 — Update 1C database configuration +# db-update v1.12 — Update 1C database configuration # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -200,6 +200,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/db-update/scripts/db-update.py b/.claude/skills/db-update/scripts/db-update.py index 30a0330b..ff83cbe2 100644 --- a/.claude/skills/db-update/scripts/db-update.py +++ b/.claude/skills/db-update/scripts/db-update.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# db-update v1.11 — Update 1C database configuration +# db-update v1.12 — Update 1C database configuration # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/epf-build/SKILL.md b/.claude/skills/epf-build/SKILL.md index a63cd941..8eb97ffa 100644 --- a/.claude/skills/epf-build/SKILL.md +++ b/.claude/skills/epf-build/SKILL.md @@ -55,8 +55,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-build.ps1" <п | `-Password <пароль>` | нет | Пароль | | `-SourceFile <путь>` | да | Путь к корневому XML-файлу исходников | | `-OutputFile <путь>` | да | Путь к выходному EPF/ERF-файлу | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — опционально. Если не указано — автоматически создаётся временная база со заглушками метаданных diff --git a/.claude/skills/epf-build/scripts/epf-build.ps1 b/.claude/skills/epf-build/scripts/epf-build.ps1 index 8502b3c8..c72e70be 100644 --- a/.claude/skills/epf-build/scripts/epf-build.ps1 +++ b/.claude/skills/epf-build/scripts/epf-build.ps1 @@ -1,4 +1,4 @@ -# epf-build v1.10 — Build external data processor or report (EPF/ERF) from XML sources +# epf-build v1.11 — Build external data processor or report (EPF/ERF) from XML sources # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -164,6 +164,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/epf-build/scripts/epf-build.py b/.claude/skills/epf-build/scripts/epf-build.py index 3855987c..c61b366a 100644 --- a/.claude/skills/epf-build/scripts/epf-build.py +++ b/.claude/skills/epf-build/scripts/epf-build.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# epf-build v1.10 — Build external data processor or report (EPF/ERF) from XML sources +# epf-build v1.11 — Build external data processor or report (EPF/ERF) from XML sources # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/epf-build/scripts/stub-db-create.ps1 b/.claude/skills/epf-build/scripts/stub-db-create.ps1 index 25951d4e..367f2b93 100644 --- a/.claude/skills/epf-build/scripts/stub-db-create.ps1 +++ b/.claude/skills/epf-build/scripts/stub-db-create.ps1 @@ -1,4 +1,4 @@ -# stub-db-create v1.4 — Create temp 1C infobase with metadata stubs for EPF/ERF build +# stub-db-create v1.5 — Create temp 1C infobase with metadata stubs for EPF/ERF build # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -92,6 +92,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/epf-build/scripts/stub-db-create.py b/.claude/skills/epf-build/scripts/stub-db-create.py index f6ead32e..c744aef5 100644 --- a/.claude/skills/epf-build/scripts/stub-db-create.py +++ b/.claude/skills/epf-build/scripts/stub-db-create.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# stub-db-create v1.4 — Create temp 1C infobase with metadata stubs for EPF/ERF build +# stub-db-create v1.5 — Create temp 1C infobase with metadata stubs for EPF/ERF build # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -160,7 +160,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/epf-dump/SKILL.md b/.claude/skills/epf-dump/SKILL.md index ca93ef1a..33fb7fdf 100644 --- a/.claude/skills/epf-dump/SKILL.md +++ b/.claude/skills/epf-dump/SKILL.md @@ -55,8 +55,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-dump.ps1" <па | `-InputFile <путь>` | да | Путь к EPF/ERF-файлу | | `-OutputDir <путь>` | да | Каталог для выгрузки исходников | | `-Format <формат>` | нет | `Hierarchical` (по умолч.) / `Plain` | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — обязательно хотя бы одно подключение. Без базы скрипт завершится с ошибкой (dump в пустой базе безвозвратно теряет ссылочные типы) diff --git a/.claude/skills/epf-dump/scripts/epf-dump.ps1 b/.claude/skills/epf-dump/scripts/epf-dump.ps1 index c69d8ee3..64d59a19 100644 --- a/.claude/skills/epf-dump/scripts/epf-dump.ps1 +++ b/.claude/skills/epf-dump/scripts/epf-dump.ps1 @@ -1,4 +1,4 @@ -# epf-dump v1.9 — Dump external data processor or report (EPF/ERF) to XML sources +# epf-dump v1.10 — Dump external data processor or report (EPF/ERF) to XML sources # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # NB: *nix-раскладку платформы (/opt/1cv8//1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется. <# @@ -164,6 +164,12 @@ function Resolve-ExtraArgs { # parameter for the other engine is an error; the same keys coming from .v8-project.json # simply do not apply — a project may describe both engines. param([string]$Engine, [string[]]$V8Extra, [string[]]$IbcmdExtra, [hashtable]$Hints) + # powershell.exe -File — how skills are invoked — cannot bind an array parameter: + # space-separated values spill into positional ones, a comma-joined list arrives as a + # single token. So accept the repo's list convention (comma-separated) and split here; + # a native array call keeps working. A value containing a comma is not supported. + $V8Extra = @($V8Extra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) + $IbcmdExtra = @($IbcmdExtra | ForEach-Object { $_ -split ',' } | Where-Object { $_ -ne '' }) if ($Engine -eq 'ibcmd' -and $V8Extra.Count -gt 0) { Write-Host "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd (use -AdditionalIbcmdArguments)" -ForegroundColor Red exit 1 diff --git a/.claude/skills/epf-dump/scripts/epf-dump.py b/.claude/skills/epf-dump/scripts/epf-dump.py index 1148d78e..547ca358 100644 --- a/.claude/skills/epf-dump/scripts/epf-dump.py +++ b/.claude/skills/epf-dump/scripts/epf-dump.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# epf-dump v1.9 — Dump external data processor or report (EPF/ERF) to XML sources +# epf-dump v1.10 — Dump external data processor or report (EPF/ERF) to XML sources # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -163,7 +163,13 @@ def extract_extra_args(argv, known_opts): def resolve_extra_args(engine, v8_extra, ibcmd_extra, hints): """Pick the argument list for the selected engine and validate it. An explicitly passed parameter for the other engine is an error; the same keys coming from - .v8-project.json simply do not apply — a project may describe both engines.""" + .v8-project.json simply do not apply — a project may describe both engines. + + Comma-separated elements are split apart: PowerShell's -File cannot bind an array, + so that form is the documented one and both ports must accept it. A value containing + a comma is not supported.""" + v8_extra = [p for tok in v8_extra for p in str(tok).split(",") if p] + ibcmd_extra = [p for tok in ibcmd_extra for p in str(tok).split(",") if p] if engine == "ibcmd" and v8_extra: print( "Error: -AdditionalV8Arguments applies to 1cv8 only; the selected engine is ibcmd " diff --git a/.claude/skills/erf-build/SKILL.md b/.claude/skills/erf-build/SKILL.md index 00d207d0..1780f420 100644 --- a/.claude/skills/erf-build/SKILL.md +++ b/.claude/skills/erf-build/SKILL.md @@ -57,8 +57,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-build/scripts/epf-bu | `-Password <пароль>` | нет | Пароль | | `-SourceFile <путь>` | да | Путь к корневому XML-файлу исходников | | `-OutputFile <путь>` | да | Путь к выходному ERF-файлу | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — опционально. Если не указано — автоматически создаётся временная база со заглушками метаданных diff --git a/.claude/skills/erf-dump/SKILL.md b/.claude/skills/erf-dump/SKILL.md index 4935a5a3..b1119922 100644 --- a/.claude/skills/erf-dump/SKILL.md +++ b/.claude/skills/erf-dump/SKILL.md @@ -57,8 +57,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-dump/scripts/epf-dum | `-InputFile <путь>` | да | Путь к ERF-файлу | | `-OutputDir <путь>` | да | Каталог для выгрузки исходников | | `-Format <формат>` | нет | `Hierarchical` (по умолч.) / `Plain` | -| `-AdditionalV8Arguments <арг>…` | нет | Доп. аргументы запуска `1cv8.exe`, напр. `/UseHwLicenses+` | -| `-AdditionalIbcmdArguments <арг>…` | нет | Доп. аргументы `ibcmd` в форме `--ключ=значение` | +| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` | +| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` | > `*` — обязательно хотя бы одно подключение. Без базы скрипт завершится с ошибкой (dump в пустой базе безвозвратно теряет ссылочные типы)