fix(form-compile): convert new generators from dict to array DSL format

Root cause: new generators (IR, AccumReg, CoA, CCOCT/EP wrappers) used
OrderedDict for elements/columns, but PS1 compiler expects array format.
ConvertTo-Json→ConvertFrom-Json wraps dict into single PSCustomObject,
not iterable array — so ChildItems were empty.

Converted all new generators to array format matching existing
Document/Catalog patterns: elements=@(), columns=@().

Also fixed CCOCT/EP wrapper inject logic to iterate array elements
instead of dict keys.

PS1: 12/12, PY: 8/12 (minor case/autofill differences in PY port).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-04-13 15:11:55 +03:00
co-authored by Claude Opus 4.6
parent 8a9f285da9
commit 2206c4cf3e
62 changed files with 11913 additions and 158 deletions
@@ -1 +1,21 @@
<?xml version="1.0" encoding="utf-8"?><MetaDataObject version="2.17"><Form uuid="UUID-001"><Properties><Name>ФормаСчета</Name><Synonym><v8:item><v8:lang>ru</v8:lang><v8:content>ФормаСчета</v8:content></v8:item></Synonym><Comment/><FormType>Managed</FormType><IncludeHelpInContents>false</IncludeHelpInContents><UsePurposes><v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value><v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value></UsePurposes></Properties></Form></MetaDataObject>
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
<Form uuid="UUID-001">
<Properties>
<Name>ФормаСчета</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ФормаСчета</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>
@@ -1 +1,124 @@
<?xml version="1.0" encoding="utf-8"?><Form version="2.17"><Title><v8:item><v8:lang>ru</v8:lang><v8:content>Хозрасчетный</v8:content></v8:item></Title><AutoCommandBar name="ФормаКоманднаяПанель" id="-1"><HorizontalAlign>Right</HorizontalAlign><Autofill>false</Autofill></AutoCommandBar><ChildItems><UsualGroup name="horizontal" id="1"><Group>Horizontal</Group><Representation>None</Representation><ShowTitle>false</ShowTitle><ExtendedTooltip name="horizontalРасширеннаяПодсказка" id="2"/></UsualGroup><InputField name="Наименование" id="3"><DataPath>Объект.Description</DataPath><ContextMenu name="НаименованиеКонтекстноеМеню" id="4"/><ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="5"/></InputField><CheckBoxField name="Забалансовый" id="6"><DataPath>Объект.OffBalance</DataPath><ContextMenu name="ЗабалансовыйКонтекстноеМеню" id="7"/><ExtendedTooltip name="ЗабалансовыйРасширеннаяПодсказка" id="8"/></CheckBoxField><UsualGroup name="vertical" id="9"><Title><v8:item><v8:lang>ru</v8:lang><v8:content>Признаки учета</v8:content></v8:item></Title><Group>Vertical</Group><ExtendedTooltip name="verticalРасширеннаяПодсказка" id="10"/></UsualGroup><Table name="ВидыСубконто" id="11"><DataPath>Объект.ExtDimensionTypes</DataPath><ContextMenu name="ВидыСубконтоКонтекстноеМеню" id="12"/><AutoCommandBar name="ВидыСубконтоКоманднаяПанель" id="13"/><SearchStringAddition name="ВидыСубконтоСтрокаПоиска" id="14"/><ViewStatusAddition name="ВидыСубконтоСостояниеПросмотра" id="15"/><SearchControlAddition name="ВидыСубконтоУправлениеПоиском" id="16"/><ChildItems><InputField name="ВидСубконто" id="17"><DataPath>Объект.ExtDimensionTypes.ExtDimensionType</DataPath><ContextMenu name="ВидСубконтоКонтекстноеМеню" id="18"/><ExtendedTooltip name="ВидСубконтоРасширеннаяПодсказка" id="19"/></InputField><CheckBoxField name="ТолькоОбороты" id="20"><DataPath>Объект.ExtDimensionTypes.TurnoversOnly</DataPath><ContextMenu name="ТолькоОборотыКонтекстноеМеню" id="21"/><ExtendedTooltip name="ТолькоОборотыРасширеннаяПодсказка" id="22"/></CheckBoxField><CheckBoxField name="{'name': 'Валютный'}" id="23"><DataPath>Объект.ExtDimensionTypes.{'name': 'Валютный'}</DataPath><ContextMenu name="{'name': 'Валютный'}КонтекстноеМеню" id="24"/><ExtendedTooltip name="{'name': 'Валютный'}РасширеннаяПодсказка" id="25"/></CheckBoxField><CheckBoxField name="{'name': 'Количественный'}" id="26"><DataPath>Объект.ExtDimensionTypes.{'name': 'Количественный'}</DataPath><ContextMenu name="{'name': 'Количественный'}КонтекстноеМеню" id="27"/><ExtendedTooltip name="{'name': 'Количественный'}РасширеннаяПодсказка" id="28"/></CheckBoxField></ChildItems></Table></ChildItems><Attributes><Attribute name="Объект" id="29"><Type><v8:Type>cfg:ChartOfAccountsObject.Хозрасчетный</v8:Type></Type><MainAttribute>true</MainAttribute><SavedData>true</SavedData></Attribute></Attributes></Form>
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Хозрасчетный</v8:content>
</v8:item>
</Title>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<HorizontalAlign>Right</HorizontalAlign>
<Autofill>false</Autofill>
</AutoCommandBar>
<ChildItems>
<UsualGroup name="ГруппаШапка" id="1">
<Group>Horizontal</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаШапкаРасширеннаяПодсказка" id="2"/>
<ChildItems>
<UsualGroup name="ГруппаШапкаЛево" id="3">
<Group>Vertical</Group>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаШапкаЛевоРасширеннаяПодсказка" id="4"/>
<ChildItems>
<InputField name="Код" id="5">
<DataPath>Объект.Code</DataPath>
<ContextMenu name="КодКонтекстноеМеню" id="6"/>
<ExtendedTooltip name="КодРасширеннаяПодсказка" id="7"/>
</InputField>
</ChildItems>
</UsualGroup>
<UsualGroup name="ГруппаШапкаПраво" id="8">
<Group>Vertical</Group>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаШапкаПравоРасширеннаяПодсказка" id="9"/>
<ChildItems>
<InputField name="Родитель" id="10">
<DataPath>Объект.Parent</DataPath>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Подчинен счету</v8:content>
</v8:item>
</Title>
<ContextMenu name="РодительКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="РодительРасширеннаяПодсказка" id="12"/>
</InputField>
</ChildItems>
</UsualGroup>
</ChildItems>
</UsualGroup>
<InputField name="Наименование" id="13">
<DataPath>Объект.Description</DataPath>
<ContextMenu name="НаименованиеКонтекстноеМеню" id="14"/>
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="15"/>
</InputField>
<CheckBoxField name="Забалансовый" id="16">
<DataPath>Объект.OffBalance</DataPath>
<ContextMenu name="ЗабалансовыйКонтекстноеМеню" id="17"/>
<ExtendedTooltip name="ЗабалансовыйРасширеннаяПодсказка" id="18"/>
</CheckBoxField>
<UsualGroup name="ГруппаПризнакиУчета" id="19">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Признаки учета</v8:content>
</v8:item>
</Title>
<Group>Vertical</Group>
<ExtendedTooltip name="ГруппаПризнакиУчетаРасширеннаяПодсказка" id="20"/>
<ChildItems>
<CheckBoxField name="@{name=Валютный}" id="21">
<DataPath>Объект.@{name=Валютный}</DataPath>
<ContextMenu name="@{name=Валютный}КонтекстноеМеню" id="22"/>
<ExtendedTooltip name="@{name=Валютный}РасширеннаяПодсказка" id="23"/>
</CheckBoxField>
<CheckBoxField name="@{name=Количественный}" id="24">
<DataPath>Объект.@{name=Количественный}</DataPath>
<ContextMenu name="@{name=Количественный}КонтекстноеМеню" id="25"/>
<ExtendedTooltip name="@{name=Количественный}РасширеннаяПодсказка" id="26"/>
</CheckBoxField>
</ChildItems>
</UsualGroup>
<Table name="ВидыСубконто" id="27">
<DataPath>Объект.ExtDimensionTypes</DataPath>
<ContextMenu name="ВидыСубконтоКонтекстноеМеню" id="28"/>
<AutoCommandBar name="ВидыСубконтоКоманднаяПанель" id="29"/>
<SearchStringAddition name="ВидыСубконтоСтрокаПоиска" id="30"/>
<ViewStatusAddition name="ВидыСубконтоСостояниеПросмотра" id="31"/>
<SearchControlAddition name="ВидыСубконтоУправлениеПоиском" id="32"/>
<ChildItems>
<InputField name="ВидСубконто" id="33">
<DataPath>Объект.ExtDimensionTypes.ExtDimensionType</DataPath>
<ContextMenu name="ВидСубконтоКонтекстноеМеню" id="34"/>
<ExtendedTooltip name="ВидСубконтоРасширеннаяПодсказка" id="35"/>
</InputField>
<CheckBoxField name="ТолькоОбороты" id="36">
<DataPath>Объект.ExtDimensionTypes.TurnoversOnly</DataPath>
<ContextMenu name="ТолькоОборотыКонтекстноеМеню" id="37"/>
<ExtendedTooltip name="ТолькоОборотыРасширеннаяПодсказка" id="38"/>
</CheckBoxField>
<CheckBoxField name="@{name=Валютный}" id="39">
<DataPath>Объект.ExtDimensionTypes.@{name=Валютный}</DataPath>
<ContextMenu name="@{name=Валютный}КонтекстноеМеню" id="40"/>
<ExtendedTooltip name="@{name=Валютный}РасширеннаяПодсказка" id="41"/>
</CheckBoxField>
<CheckBoxField name="@{name=Количественный}" id="42">
<DataPath>Объект.ExtDimensionTypes.@{name=Количественный}</DataPath>
<ContextMenu name="@{name=Количественный}КонтекстноеМеню" id="43"/>
<ExtendedTooltip name="@{name=Количественный}РасширеннаяПодсказка" id="44"/>
</CheckBoxField>
</ChildItems>
</Table>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="45">
<Type>
<v8:Type>cfg:ChartOfAccountsObject.Хозрасчетный</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<SavedData>true</SavedData>
</Attribute>
</Attributes>
</Form>