diff --git a/.claude/skills/form-compile/scripts/form-compile.ps1 b/.claude/skills/form-compile/scripts/form-compile.ps1 index c2b5263b..5c1830aa 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.128 — Compile 1C managed form from JSON or object metadata +# form-compile v1.129 — Compile 1C managed form from JSON or object metadata # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [string]$JsonPath, @@ -2176,9 +2176,11 @@ function Emit-SingleType { } } - # DynamicList - if ($typeStr -eq "DynamicList") { - X "$indentcfg:DynamicList" + # Голые конфигурационные типы (cfg: без .Имя): дин-список, набор констант, общий объект отчёта. + # Корпус (acc+erp 8.3.24): DynamicList 5205, ConstantsSet 103, ReportObject 10. (Дотированные формы + # ConstantsSet.X / ReportObject.X ловит общий cfg:-regex ниже.) + if ($typeStr -in @("DynamicList","ConstantsSet","ReportObject")) { + X "$indentcfg:$typeStr" return } diff --git a/.claude/skills/form-compile/scripts/form-compile.py b/.claude/skills/form-compile/scripts/form-compile.py index 690edb91..1ae2c398 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.128 — Compile 1C managed form from JSON or object metadata +# form-compile v1.129 — Compile 1C managed form from JSON or object metadata # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import copy @@ -3412,9 +3412,10 @@ def emit_single_type(lines, type_str, indent): lines.append(f'{indent}{DCS_MAP[type_str]}') return - # DynamicList - if type_str == 'DynamicList': - lines.append(f'{indent}cfg:DynamicList') + # Голые конфигурационные типы (cfg: без .Имя): дин-список, набор констант, общий объект отчёта. + # Корпус (acc+erp 8.3.24): DynamicList 5205, ConstantsSet 103, ReportObject 10. + if type_str in ('DynamicList', 'ConstantsSet', 'ReportObject'): + lines.append(f'{indent}cfg:{type_str}') return # TypeSet (набор типов) → : определяемый тип / характеристика (именованные) diff --git a/docs/form-dsl-spec.md b/docs/form-dsl-spec.md index a7e039ad..39bf0899 100644 --- a/docs/form-dsl-spec.md +++ b/docs/form-dsl-spec.md @@ -1142,6 +1142,8 @@ Forgiving-синонимы типа: XML-имя (`SpreadSheetDocumentField`) и | `"FormattedString"` | `v8ui:FormattedString` | | `"Picture"` | `v8ui:Picture` | | `"DynamicList"` | `cfg:DynamicList` | +| `"ConstantsSet"` | `cfg:ConstantsSet` (набор констант; голый конфигурационный тип без `.Имя`) | +| `"ReportObject"` | `cfg:ReportObject` (общий объект отчёта без `.Имя`; дотированная форма `ReportObject.Имя` — отдельный отчёт) | | `"StandardPeriod"` | `v8:StandardPeriod` (forgiving: `СтандартныйПериод`, `v8:StandardPeriod`) | | `"StandardBeginningDate"` | `v8:StandardBeginningDate` (синоним `СтандартнаяДатаНачала`) | | `"UUID"` | `v8:UUID` (синоним `УникальныйИдентификатор`) | diff --git a/tests/skills/cases/form-compile/attributes-types.json b/tests/skills/cases/form-compile/attributes-types.json index 80680c8b..ac0b7b44 100644 --- a/tests/skills/cases/form-compile/attributes-types.json +++ b/tests/skills/cases/form-compile/attributes-types.json @@ -31,6 +31,8 @@ { "name": "СписокЗначений", "type": "ValueList", "valueType": "string(50) | decimal(10,2)" }, { "name": "СписокЛюбой", "type": "ValueList", "valueType": "" }, { "name": "Идентификатор", "type": "v8:UUID" }, + { "name": "НаборКонстант", "type": "ConstantsSet" }, + { "name": "ОбъектОтчета", "type": "ReportObject" }, { "name": "Таблица", "type": "ValueTable", "title": "Таблица", "columns": [ { "name": "ИНН", "type": "string(12,fixed)" }, { "name": "Код", "type": "string(9,fixed)" }, diff --git a/tests/skills/cases/form-compile/snapshots/attributes-types/DataProcessors/Типы/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/attributes-types/DataProcessors/Типы/Forms/Форма/Ext/Form.xml index a2a374ae..de800de4 100644 --- a/tests/skills/cases/form-compile/snapshots/attributes-types/DataProcessors/Типы/Forms/Форма/Ext/Form.xml +++ b/tests/skills/cases/form-compile/snapshots/attributes-types/DataProcessors/Типы/Forms/Форма/Ext/Form.xml @@ -165,7 +165,29 @@ v8:UUID - + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Набор констант</v8:content> + </v8:item> + + + cfg:ConstantsSet + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Объект отчета</v8:content> + </v8:item> + + + cfg:ReportObject + + + <v8:item> <v8:lang>ru</v8:lang> @@ -176,7 +198,7 @@ <v8:Type>v8:ValueTable</v8:Type> </Type> <Columns> - <Column name="ИНН" id="23"> + <Column name="ИНН" id="25"> <Type> <v8:Type>xs:string</v8:Type> <v8:StringQualifiers> @@ -185,7 +207,7 @@ </v8:StringQualifiers> </Type> </Column> - <Column name="Код" id="24"> + <Column name="Код" id="26"> <Type> <v8:Type>xs:string</v8:Type> <v8:StringQualifiers> @@ -194,7 +216,7 @@ </v8:StringQualifiers> </Type> </Column> - <Column name="Имя" id="25"> + <Column name="Имя" id="27"> <Type> <v8:Type>xs:string</v8:Type> <v8:StringQualifiers>