diff --git a/.claude/skills/form-compile/scripts/form-compile.ps1 b/.claude/skills/form-compile/scripts/form-compile.ps1 index 76ae27c4..f928f611 100644 --- a/.claude/skills/form-compile/scripts/form-compile.ps1 +++ b/.claude/skills/form-compile/scripts/form-compile.ps1 @@ -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 = @{ diff --git a/.claude/skills/form-compile/scripts/form-compile.py b/.claude/skills/form-compile/scripts/form-compile.py index d4110e60..eca6251f 100644 --- a/.claude/skills/form-compile/scripts/form-compile.py +++ b/.claude/skills/form-compile/scripts/form-compile.py @@ -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", } diff --git a/docs/form-dsl-spec.md b/docs/form-dsl-spec.md index 1ed780e7..d322c49d 100644 --- a/docs/form-dsl-spec.md +++ b/docs/form-dsl-spec.md @@ -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 → ``) diff --git a/tests/skills/cases/form-compile/attributes-types.json b/tests/skills/cases/form-compile/attributes-types.json index 5f8cc1a2..ac1e5cc2 100644 --- a/tests/skills/cases/form-compile/attributes-types.json +++ b/tests/skills/cases/form-compile/attributes-types.json @@ -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" } ]