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
co-authored by Claude Opus 4.8
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 # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param( param(
[Parameter(Mandatory)] [Parameter(Mandatory)]
@@ -245,7 +245,7 @@ $script:validEnumValues = @{
"Posting" = @("Allow","Deny") "Posting" = @("Allow","Deny")
"RealTimePosting" = @("Allow","Deny") "RealTimePosting" = @("Allow","Deny")
"EditType" = @("InDialog","InList","BothWays") "EditType" = @("InDialog","InList","BothWays")
"HierarchyType" = @("HierarchyFoldersAndItems","HierarchyItemsOnly") "HierarchyType" = @("HierarchyFoldersAndItems","HierarchyOfItems")
"CodeType" = @("String","Number") "CodeType" = @("String","Number")
"CodeAllowedLength" = @("Variable","Fixed") "CodeAllowedLength" = @("Variable","Fixed")
"NumberType" = @("String","Number") "NumberType" = @("String","Number")
@@ -257,7 +257,7 @@ $script:validEnumValues = @{
"FillChecking" = @("DontCheck","ShowError","ShowWarning") "FillChecking" = @("DontCheck","ShowError","ShowWarning")
"Indexing" = @("DontIndex","Index","IndexWithAdditionalOrder") "Indexing" = @("DontIndex","Index","IndexWithAdditionalOrder")
"SubordinationUse" = @("ToItems","ToFolders","ToFoldersAndItems") "SubordinationUse" = @("ToItems","ToFolders","ToFoldersAndItems")
"CodeSeries" = @("WholeCatalog","WithinSubordination") "CodeSeries" = @("WholeCatalog","WithinSubordination","WithinOwnerSubordination")
"ChoiceMode" = @("BothWays","QuickChoice","FromForm") "ChoiceMode" = @("BothWays","QuickChoice","FromForm")
} }
@@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/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 # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse import argparse
@@ -346,7 +346,7 @@ valid_enum_values = {
'Posting': ['Allow', 'Deny'], 'Posting': ['Allow', 'Deny'],
'RealTimePosting': ['Allow', 'Deny'], 'RealTimePosting': ['Allow', 'Deny'],
'EditType': ['InDialog', 'InList', 'BothWays'], 'EditType': ['InDialog', 'InList', 'BothWays'],
'HierarchyType': ['HierarchyFoldersAndItems', 'HierarchyItemsOnly'], 'HierarchyType': ['HierarchyFoldersAndItems', 'HierarchyOfItems'],
'CodeType': ['String', 'Number'], 'CodeType': ['String', 'Number'],
'CodeAllowedLength': ['Variable', 'Fixed'], 'CodeAllowedLength': ['Variable', 'Fixed'],
'NumberType': ['String', 'Number'], 'NumberType': ['String', 'Number'],
@@ -358,7 +358,7 @@ valid_enum_values = {
'FillChecking': ['DontCheck', 'ShowError', 'ShowWarning'], 'FillChecking': ['DontCheck', 'ShowError', 'ShowWarning'],
'Indexing': ['DontIndex', 'Index', 'IndexWithAdditionalOrder'], 'Indexing': ['DontIndex', 'Index', 'IndexWithAdditionalOrder'],
'SubordinationUse': ['ToItems', 'ToFolders', 'ToFoldersAndItems'], 'SubordinationUse': ['ToItems', 'ToFolders', 'ToFoldersAndItems'],
'CodeSeries': ['WholeCatalog', 'WithinSubordination'], 'CodeSeries': ['WholeCatalog', 'WithinSubordination', 'WithinOwnerSubordination'],
'ChoiceMode': ['BothWays', 'QuickChoice', 'FromForm'], 'ChoiceMode': ['BothWays', 'QuickChoice', 'FromForm'],
} }