feat(form-compile): forgiving платформенные v8-типы (StandardPeriod/StandardBeginningDate/UUID)

Помогаем модели правильно вывести тип: принимаем англ. без префикса и рус.имя,
приводим к каноничному v8:X (эмитится verbatim):
- StandardPeriod / СтандартныйПериод → v8:StandardPeriod
- StandardBeginningDate / СтандартнаяДатаНачала → v8:StandardBeginningDate
- UUID / УникальныйИдентификатор → v8:UUID
- СписокЗначений → ValueList (v8:ValueListType)

Раньше bare StandardPeriod падал в "Unrecognized bare type" и эмитился без
префикса (невалидно). Input-сахар (декомпилятор пишет каноничный v8:). Зеркало
py. Кейс attributes-types использует рус. СтандартныйПериод (вывод тот же,
сертифицирован). Регресс 39/39 ps1+py.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-08 18:07:14 +03:00
co-authored by Claude Opus 4.8
parent 5a67c56e92
commit 7a2c257721
4 changed files with 25 additions and 4 deletions
@@ -1,4 +1,4 @@
# form-compile v1.76 — Compile 1C managed form from JSON or object metadata
# form-compile v1.77 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$JsonPath,
@@ -1972,6 +1972,14 @@ $script:formTypeSynonyms["определяемыйтип"] = "Define
$script:formTypeSynonyms["характеристика"] = "Characteristic"
$script:formTypeSynonyms["любаяссылка"] = "AnyRef"
$script:formTypeSynonyms["любаяссылкаиб"] = "AnyIBRef"
# Платформенные v8-типы (forgiving: англ. без префикса + рус.) → каноничный с префиксом v8: (эмитим verbatim)
$script:formTypeSynonyms["standardperiod"] = "v8:StandardPeriod"
$script:formTypeSynonyms["стандартныйпериод"] = "v8:StandardPeriod"
$script:formTypeSynonyms["standardbeginningdate"] = "v8:StandardBeginningDate"
$script:formTypeSynonyms["стандартнаядатаначала"] = "v8:StandardBeginningDate"
$script:formTypeSynonyms["uuid"] = "v8:UUID"
$script:formTypeSynonyms["уникальныйидентификатор"] = "v8:UUID"
$script:formTypeSynonyms["списокзначений"] = "ValueList"
# Known invalid types (runtime/UI types that don't exist in XDTO schema)
$script:knownInvalidTypes = @{
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# form-compile v1.76 — Compile 1C managed form from JSON or object metadata
# form-compile v1.77 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import copy
@@ -2772,6 +2772,14 @@ _FORM_TYPE_SYNONYMS = {
"характеристика": "Characteristic",
"любаяссылка": "AnyRef",
"любаяссылкаиб": "AnyIBRef",
# Платформенные v8-типы (forgiving: англ. без префикса + рус.) → каноничный с префиксом v8:
"standardperiod": "v8:StandardPeriod",
"стандартныйпериод": "v8:StandardPeriod",
"standardbeginningdate": "v8:StandardBeginningDate",
"стандартнаядатаначала": "v8:StandardBeginningDate",
"uuid": "v8:UUID",
"уникальныйидентификатор": "v8:UUID",
"списокзначений": "ValueList",
}