fix(meta-compile): allowlist HierarchyType/CodeSeries — фантомное значение + пропуск (v1.15)

Раундтрип-находка (meta-roundtrip, класс-2): meta-compile падал на 90 каталогах
acc+erp из-за неполных/неверных enum-allowlist'ов:
- HierarchyType содержал ФАНТОМНОЕ "HierarchyItemsOnly" (в 1С такого значения нет;
  реальное — "HierarchyOfItems", 61 каталог) → компилятор сгенерил бы битый XML.
- CodeSeries без "WithinOwnerSubordination" (36 каталогов) → краш на валидном значении.

Значения сверены с корпусом (acc+erp 8.3.24). Фикс в обоих портах. После: dec-fail
90→0 на таргет-прогоне, регресс 33/33 (ps+py).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-30 22:17:24 +03:00
parent 8b8620ae44
commit 7000593561
2 changed files with 6 additions and 6 deletions
@@ -1,4 +1,4 @@
# meta-compile v1.14 — Compile 1C metadata object from JSON
# meta-compile v1.15 — Compile 1C metadata object from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)]
@@ -245,7 +245,7 @@ $script:validEnumValues = @{
"Posting" = @("Allow","Deny")
"RealTimePosting" = @("Allow","Deny")
"EditType" = @("InDialog","InList","BothWays")
"HierarchyType" = @("HierarchyFoldersAndItems","HierarchyItemsOnly")
"HierarchyType" = @("HierarchyFoldersAndItems","HierarchyOfItems")
"CodeType" = @("String","Number")
"CodeAllowedLength" = @("Variable","Fixed")
"NumberType" = @("String","Number")
@@ -257,7 +257,7 @@ $script:validEnumValues = @{
"FillChecking" = @("DontCheck","ShowError","ShowWarning")
"Indexing" = @("DontIndex","Index","IndexWithAdditionalOrder")
"SubordinationUse" = @("ToItems","ToFolders","ToFoldersAndItems")
"CodeSeries" = @("WholeCatalog","WithinSubordination")
"CodeSeries" = @("WholeCatalog","WithinSubordination","WithinOwnerSubordination")
"ChoiceMode" = @("BothWays","QuickChoice","FromForm")
}
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# meta-compile v1.14 — Compile 1C metadata object from JSON
# meta-compile v1.15 — Compile 1C metadata object from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -346,7 +346,7 @@ valid_enum_values = {
'Posting': ['Allow', 'Deny'],
'RealTimePosting': ['Allow', 'Deny'],
'EditType': ['InDialog', 'InList', 'BothWays'],
'HierarchyType': ['HierarchyFoldersAndItems', 'HierarchyItemsOnly'],
'HierarchyType': ['HierarchyFoldersAndItems', 'HierarchyOfItems'],
'CodeType': ['String', 'Number'],
'CodeAllowedLength': ['Variable', 'Fixed'],
'NumberType': ['String', 'Number'],
@@ -358,7 +358,7 @@ valid_enum_values = {
'FillChecking': ['DontCheck', 'ShowError', 'ShowWarning'],
'Indexing': ['DontIndex', 'Index', 'IndexWithAdditionalOrder'],
'SubordinationUse': ['ToItems', 'ToFolders', 'ToFoldersAndItems'],
'CodeSeries': ['WholeCatalog', 'WithinSubordination'],
'CodeSeries': ['WholeCatalog', 'WithinSubordination', 'WithinOwnerSubordination'],
'ChoiceMode': ['BothWays', 'QuickChoice', 'FromForm'],
}