diff --git a/.claude/skills/meta-compile/scripts/meta-compile.ps1 b/.claude/skills/meta-compile/scripts/meta-compile.ps1 index f5a28b6d..19145e8c 100644 --- a/.claude/skills/meta-compile/scripts/meta-compile.ps1 +++ b/.claude/skills/meta-compile/scripts/meta-compile.ps1 @@ -1,4 +1,4 @@ -# meta-compile v1.39 — Compile 1C metadata object from JSON +# meta-compile v1.40 — Compile 1C metadata object from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -2763,7 +2763,8 @@ function Emit-ChartOfAccountsProperties { $extDimTypes = if ($def.extDimensionTypes) { Resolve-TypePrefixSyn "$($def.extDimensionTypes)" } else { "" } if ($extDimTypes) { X "$i$(Esc-Xml $extDimTypes)" } else { X "$i" } - $maxExtDim = if ($null -ne $def.maxExtDimensionCount) { "$($def.maxExtDimensionCount)" } else { "3" } + # Количество субконто: без ПВХ (extDimensionTypes) платформа не даёт > 0 → дефолт 0; с ПВХ — 3. + $maxExtDim = if ($null -ne $def.maxExtDimensionCount) { "$($def.maxExtDimensionCount)" } elseif ($extDimTypes) { "3" } else { "0" } X "$i$maxExtDim" if ($def.codeMask) { X "$i$(Esc-XmlText "$($def.codeMask)")" } else { X "$i" } diff --git a/.claude/skills/meta-compile/scripts/meta-compile.py b/.claude/skills/meta-compile/scripts/meta-compile.py index 02ef7497..d2f0f5d3 100644 --- a/.claude/skills/meta-compile/scripts/meta-compile.py +++ b/.claude/skills/meta-compile/scripts/meta-compile.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# meta-compile v1.39 — Compile 1C metadata object from JSON +# meta-compile v1.40 — Compile 1C metadata object from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -2658,7 +2658,8 @@ def emit_chart_of_accounts_properties(indent): X(f'{i}{esc_xml(ext_dim_types)}') else: X(f'{i}') - max_ext_dim = str(defn['maxExtDimensionCount']) if defn.get('maxExtDimensionCount') is not None else '3' + # Количество субконто: без ПВХ (extDimensionTypes) платформа не даёт > 0 → дефолт 0; с ПВХ — 3. + max_ext_dim = str(defn['maxExtDimensionCount']) if defn.get('maxExtDimensionCount') is not None else ('3' if ext_dim_types else '0') X(f'{i}{max_ext_dim}') if defn.get('codeMask'): X(f'{i}{esc_xml_text(str(defn["codeMask"]))}') diff --git a/.claude/skills/meta-decompile/scripts/meta-decompile.ps1 b/.claude/skills/meta-decompile/scripts/meta-decompile.ps1 index bc378e1a..ed0b2187 100644 --- a/.claude/skills/meta-decompile/scripts/meta-decompile.ps1 +++ b/.claude/skills/meta-decompile/scripts/meta-decompile.ps1 @@ -1,4 +1,4 @@ -# meta-decompile v0.28 — XML объекта метаданных 1С → JSON-черновик формата meta-compile +# meta-decompile v0.29 — XML объекта метаданных 1С → JSON-черновик формата meta-compile # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # # Поддержаны: Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts. Инверс meta-compile (omit-on-default: ключ эмитим только @@ -441,7 +441,8 @@ if ($objType -eq 'ChartOfCharacteristicTypes') { # ChartOfAccounts-специфичные свойства (у Catalog этих тегов нет → блок его не трогает). if ($objType -eq 'ChartOfAccounts') { $edt = P 'ExtDimensionTypes'; if ($edt) { $dsl['extDimensionTypes'] = $edt } - Add-IntProp 'maxExtDimensionCount' 'MaxExtDimensionCount' 3 + # Дефолт зеркалит компилятор: с ПВХ — 3, без — 0 (платформа не даёт > 0 без ПВХ). + Add-IntProp 'maxExtDimensionCount' 'MaxExtDimensionCount' $(if ($edt) { 3 } else { 0 }) $cm = P 'CodeMask'; if ($cm) { $dsl['codeMask'] = $cm } Add-BoolProp 'autoOrderByCode' 'AutoOrderByCode' $true Add-IntProp 'orderLength' 'OrderLength' 9 diff --git a/docs/meta-dsl-spec.md b/docs/meta-dsl-spec.md index 7170cc09..80cd3aa2 100644 --- a/docs/meta-dsl-spec.md +++ b/docs/meta-dsl-spec.md @@ -663,7 +663,7 @@ omit-on-empty. Поля пишутся частичной формой (`Standar | Поле JSON | Умолчание | XML элемент | |-----------|----------|-------------| | `extDimensionTypes` | пусто | ExtDimensionTypes (ссылка на ПВХ видов субконто; `ПланВидовХарактеристик.X` → `ChartOfCharacteristicTypes.X`) | -| `maxExtDimensionCount` | `3` | MaxExtDimensionCount (число субконто; `0` → нет субконто) | +| `maxExtDimensionCount` | `3` при заданном `extDimensionTypes`, иначе `0` | MaxExtDimensionCount (платформа не даёт > 0 без ПВХ видов субконто) | | `codeMask` | пусто | CodeMask (маска кода счёта) | | `codeSeries` | `WholeChartOfAccounts` | CodeSeries | | `checkUnique` | `true` | CheckUnique *(≠ Catalog `false`)* |