feat(meta-compile,meta-decompile): дефолт maxExtDimensionCount ПС завязан на наличие ПВХ (v1.40/v0.29)

В конфигураторе «Количество субконто» недоступно, пока не указан план видов характеристик видов
субконто. Зеркалим: дефолт maxExtDimensionCount = 3 при заданном extDimensionTypes, иначе 0.
Раньше компилятор всегда ставил 3 → план счетов «с нуля» без ПВХ был невалиден для 1С
(«у плана счетов с количеством субконто ≠ 0 должен быть установлен план видов характеристик»).

Декомпилятор зеркалит дефолт (с ПВХ 3, без 0) → omit-on-default сохранён. Роундтрип 3/3 match
(корпус несёт ПВХ → 3 опускается, без изменений). Регресс 47/47 ps1+py, form-compile 12/12.
spec §7.2c.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-07-05 21:13:11 +03:00
co-authored by Claude Opus 4.8
parent faec6e6f19
commit 3e7bfc12c4
4 changed files with 10 additions and 7 deletions
@@ -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