mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-29 16:11:01 +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:
co-authored by
Claude Opus 4.8
parent
5a67c56e92
commit
7a2c257721
@@ -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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[string]$JsonPath,
|
[string]$JsonPath,
|
||||||
@@ -1972,6 +1972,14 @@ $script:formTypeSynonyms["определяемыйтип"] = "Define
|
|||||||
$script:formTypeSynonyms["характеристика"] = "Characteristic"
|
$script:formTypeSynonyms["характеристика"] = "Characteristic"
|
||||||
$script:formTypeSynonyms["любаяссылка"] = "AnyRef"
|
$script:formTypeSynonyms["любаяссылка"] = "AnyRef"
|
||||||
$script:formTypeSynonyms["любаяссылкаиб"] = "AnyIBRef"
|
$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)
|
# Known invalid types (runtime/UI types that don't exist in XDTO schema)
|
||||||
$script:knownInvalidTypes = @{
|
$script:knownInvalidTypes = @{
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
import argparse
|
import argparse
|
||||||
import copy
|
import copy
|
||||||
@@ -2772,6 +2772,14 @@ _FORM_TYPE_SYNONYMS = {
|
|||||||
"характеристика": "Characteristic",
|
"характеристика": "Characteristic",
|
||||||
"любаяссылка": "AnyRef",
|
"любаяссылка": "AnyRef",
|
||||||
"любаяссылкаиб": "AnyIBRef",
|
"любаяссылкаиб": "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` |
|
| `"ValueTable"` | `v8:ValueTable` |
|
||||||
| `"ValueTree"` | `v8:ValueTree` |
|
| `"ValueTree"` | `v8:ValueTree` |
|
||||||
| `"ValueList"` | `v8:ValueListType` |
|
| `"ValueList"` | `v8:ValueListType` (синоним `СписокЗначений`) |
|
||||||
| `"FormattedString"` | `v8ui:FormattedString` |
|
| `"FormattedString"` | `v8ui:FormattedString` |
|
||||||
| `"Picture"` | `v8ui:Picture` |
|
| `"Picture"` | `v8ui:Picture` |
|
||||||
| `"DynamicList"` | `cfg:DynamicList` |
|
| `"DynamicList"` | `cfg:DynamicList` |
|
||||||
|
| `"StandardPeriod"` | `v8:StandardPeriod` (forgiving: `СтандартныйПериод`, `v8:StandardPeriod`) |
|
||||||
|
| `"StandardBeginningDate"` | `v8:StandardBeginningDate` (синоним `СтандартнаяДатаНачала`) |
|
||||||
|
| `"UUID"` | `v8:UUID` (синоним `УникальныйИдентификатор`) |
|
||||||
|
|
||||||
|
> Платформенные `v8:`-типы можно писать без префикса или по-русски — компилятор приводит к каноничному `v8:X`. Уже-префиксованную форму (`v8:StandardPeriod`) принимает как есть.
|
||||||
|
|
||||||
### Наборы типов (TypeSet → `<v8:TypeSet>`)
|
### Наборы типов (TypeSet → `<v8:TypeSet>`)
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
{ "name": "Число", "type": "decimal(10,0,nonneg)", "edit": false },
|
{ "name": "Число", "type": "decimal(10,0,nonneg)", "edit": false },
|
||||||
{ "name": "Дата", "type": "dateTime", "title": "" },
|
{ "name": "Дата", "type": "dateTime", "title": "" },
|
||||||
{ "name": "Булево", "type": "boolean" },
|
{ "name": "Булево", "type": "boolean" },
|
||||||
{ "name": "Период", "type": "v8:StandardPeriod", "save": ["Период", "EndDate", "StartDate", "Variant"] },
|
{ "name": "Период", "type": "СтандартныйПериод", "save": ["Период", "EndDate", "StartDate", "Variant"] },
|
||||||
{ "name": "СписокЗначений", "type": "ValueList" },
|
{ "name": "СписокЗначений", "type": "ValueList" },
|
||||||
{ "name": "Идентификатор", "type": "v8:UUID" }
|
{ "name": "Идентификатор", "type": "v8:UUID" }
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user