mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-14 18:04:58 +03:00
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:
@@ -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",
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -896,10 +896,15 @@ Pages поддерживает `pagesRepresentation`: `None`, `TabsOnTop`, `Tabs
|
||||
|-----|-----|
|
||||
| `"ValueTable"` | `v8:ValueTable` |
|
||||
| `"ValueTree"` | `v8:ValueTree` |
|
||||
| `"ValueList"` | `v8:ValueListType` |
|
||||
| `"ValueList"` | `v8:ValueListType` (синоним `СписокЗначений`) |
|
||||
| `"FormattedString"` | `v8ui:FormattedString` |
|
||||
| `"Picture"` | `v8ui:Picture` |
|
||||
| `"DynamicList"` | `cfg:DynamicList` |
|
||||
| `"StandardPeriod"` | `v8:StandardPeriod` (forgiving: `СтандартныйПериод`, `v8:StandardPeriod`) |
|
||||
| `"StandardBeginningDate"` | `v8:StandardBeginningDate` (синоним `СтандартнаяДатаНачала`) |
|
||||
| `"UUID"` | `v8:UUID` (синоним `УникальныйИдентификатор`) |
|
||||
|
||||
> Платформенные `v8:`-типы можно писать без префикса или по-русски — компилятор приводит к каноничному `v8:X`. Уже-префиксованную форму (`v8:StandardPeriod`) принимает как есть.
|
||||
|
||||
### Наборы типов (TypeSet → `<v8:TypeSet>`)
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
{ "name": "Число", "type": "decimal(10,0,nonneg)", "edit": false },
|
||||
{ "name": "Дата", "type": "dateTime", "title": "" },
|
||||
{ "name": "Булево", "type": "boolean" },
|
||||
{ "name": "Период", "type": "v8:StandardPeriod", "save": ["Период", "EndDate", "StartDate", "Variant"] },
|
||||
{ "name": "Период", "type": "СтандартныйПериод", "save": ["Период", "EndDate", "StartDate", "Variant"] },
|
||||
{ "name": "СписокЗначений", "type": "ValueList" },
|
||||
{ "name": "Идентификатор", "type": "v8:UUID" }
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user