test(meta-compile): регресс субконто/признаков ПС + 1С-серт через preRun ПВХ

Кейс chart-of-accounts расширен до полного: ext-dim (maxExtDimensionCount + extDimensionTypes),
признаки учёта и субконто-признаки, предопределённые счета с субконто (короткая запись + токен
Turnover, обе формы Turnover=false/true). Раньше кейс был урезан (maxExtDimensionCount:0) из-за
1С-серта.

Ключ к серту (идея из обсуждения): нужный ПВХ видов субконто создаётся в `preRun` с
типизированными предопределёнными видами (String(100), в пределах valueType плана), а основной
ввод явно задаёт `extDimensionTypes` → авто-стаб/hostEdit харнеса не срабатывают (правки
verify-snapshots не понадобились). Так решены оба прежних блокера: пустой авто-стаб ПВХ и
ордеринг hostEdit.

Байт-регресс 47/47 ps1+py (ps1↔py identical). 1С-cert ✓ (грузится в 8.3.24).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-07-05 20:40:19 +03:00
parent 90a05a58e2
commit 2c50030789
7 changed files with 243 additions and 7 deletions
@@ -1,5 +1,17 @@
{
"name": "План счетов: признаки учёта и предопределённые счета",
"name": "План счетов: субконто, признаки учёта и предопределённые счета",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "ChartOfCharacteristicTypes",
"name": "ВидыСубконто",
"valueType": "String(100)",
"predefined": ["Номенклатура: String(100)", "Склады: String(100)"]
},
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
}
],
"input": {
"type": "ChartOfAccounts",
"name": "Хозрасчетный",
@@ -7,12 +19,17 @@
"codeLength": 8,
"descriptionLength": 120,
"codeMask": "@@@.@@.@",
"maxExtDimensionCount": 0,
"extDimensionTypes": "ChartOfCharacteristicTypes.ВидыСубконто",
"maxExtDimensionCount": 2,
"checkUnique": true,
"accountingFlags": [
{ "name": "Валютный", "synonym": "Валютный учет", "tooltip": "Ведется валютный учет" },
"Количественный"
],
"extDimensionAccountingFlags": [
{ "name": "Суммовой", "fillValue": true },
"Валютный"
],
"predefined": [
{
"name": "ОсновныеСредства",
@@ -21,6 +38,7 @@
"accountType": "Active",
"order": " 01",
"flags": ["Количественный"],
"subconto": ["Номенклатура | Суммовой"],
"childItems": [
{
"name": "ОсновныеСредстваВОрганизации",
@@ -28,7 +46,8 @@
"description": "Основные средства в организации",
"accountType": "Active",
"order": " 01.01",
"flags": ["Количественный"]
"flags": ["Количественный"],
"subconto": ["Номенклатура | Turnover, Суммовой"]
}
]
},
@@ -47,8 +47,8 @@
<UseStandardCommands>true</UseStandardCommands>
<IncludeHelpInContents>false</IncludeHelpInContents>
<BasedOn/>
<ExtDimensionTypes/>
<MaxExtDimensionCount>0</MaxExtDimensionCount>
<ExtDimensionTypes>ChartOfCharacteristicTypes.ВидыСубконто</ExtDimensionTypes>
<MaxExtDimensionCount>2</MaxExtDimensionCount>
<CodeMask>@@@.@@.@</CodeMask>
<CodeLength>8</CodeLength>
<DescriptionLength>120</DescriptionLength>
@@ -288,6 +288,80 @@
<DataHistory>Use</DataHistory>
</Properties>
</AccountingFlag>
<ExtDimensionAccountingFlag uuid="UUID-018">
<Properties>
<Name>Суммовой</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Суммовой</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:boolean">true</FillValue>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<DataHistory>Use</DataHistory>
</Properties>
</ExtDimensionAccountingFlag>
<ExtDimensionAccountingFlag uuid="UUID-019">
<Properties>
<Name>Валютный</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Валютный</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:string"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<DataHistory>Use</DataHistory>
</Properties>
</ExtDimensionAccountingFlag>
</ChildObjects>
</ChartOfAccounts>
</MetaDataObject>
@@ -11,7 +11,15 @@
<Flag ref="ChartOfAccounts.Хозрасчетный.AccountingFlag.Валютный">false</Flag>
<Flag ref="ChartOfAccounts.Хозрасчетный.AccountingFlag.Количественный">true</Flag>
</AccountingFlags>
<ExtDimensionTypes/>
<ExtDimensionTypes>
<ExtDimensionType name="ChartOfCharacteristicTypes.ВидыСубконто.Номенклатура">
<Turnover>false</Turnover>
<AccountingFlags>
<Flag ref="ChartOfAccounts.Хозрасчетный.ExtDimensionAccountingFlag.Суммовой">true</Flag>
<Flag ref="ChartOfAccounts.Хозрасчетный.ExtDimensionAccountingFlag.Валютный">false</Flag>
</AccountingFlags>
</ExtDimensionType>
</ExtDimensionTypes>
<ChildItems>
<Item id="UUID-002">
<Name>ОсновныеСредстваВОрганизации</Name>
@@ -24,7 +32,15 @@
<Flag ref="ChartOfAccounts.Хозрасчетный.AccountingFlag.Валютный">false</Flag>
<Flag ref="ChartOfAccounts.Хозрасчетный.AccountingFlag.Количественный">true</Flag>
</AccountingFlags>
<ExtDimensionTypes/>
<ExtDimensionTypes>
<ExtDimensionType name="ChartOfCharacteristicTypes.ВидыСубконто.Номенклатура">
<Turnover>true</Turnover>
<AccountingFlags>
<Flag ref="ChartOfAccounts.Хозрасчетный.ExtDimensionAccountingFlag.Суммовой">true</Flag>
<Flag ref="ChartOfAccounts.Хозрасчетный.ExtDimensionAccountingFlag.Валютный">false</Flag>
</AccountingFlags>
</ExtDimensionType>
</ExtDimensionTypes>
</Item>
</ChildItems>
</Item>
@@ -0,0 +1,97 @@
<?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">
<ChartOfCharacteristicTypes uuid="UUID-001">
<InternalInfo>
<xr:GeneratedType name="ChartOfCharacteristicTypesObject.ВидыСубконто" category="Object">
<xr:TypeId>UUID-002</xr:TypeId>
<xr:ValueId>UUID-003</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ChartOfCharacteristicTypesRef.ВидыСубконто" category="Ref">
<xr:TypeId>UUID-004</xr:TypeId>
<xr:ValueId>UUID-005</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ChartOfCharacteristicTypesSelection.ВидыСубконто" category="Selection">
<xr:TypeId>UUID-006</xr:TypeId>
<xr:ValueId>UUID-007</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ChartOfCharacteristicTypesList.ВидыСубконто" category="List">
<xr:TypeId>UUID-008</xr:TypeId>
<xr:ValueId>UUID-009</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="Characteristic.ВидыСубконто" category="Characteristic">
<xr:TypeId>UUID-010</xr:TypeId>
<xr:ValueId>UUID-011</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ChartOfCharacteristicTypesManager.ВидыСубконто" category="Manager">
<xr:TypeId>UUID-012</xr:TypeId>
<xr:ValueId>UUID-013</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ВидыСубконто</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Виды субконто</v8:content>
</v8:item>
</Synonym>
<Comment/>
<UseStandardCommands>true</UseStandardCommands>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CharacteristicExtValues/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>100</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<Hierarchical>false</Hierarchical>
<FoldersOnTop>true</FoldersOnTop>
<CodeLength>9</CodeLength>
<CodeAllowedLength>Variable</CodeAllowedLength>
<DescriptionLength>100</DescriptionLength>
<CodeSeries>WholeCharacteristicKind</CodeSeries>
<CheckUnique>true</CheckUnique>
<Autonumbering>true</Autonumbering>
<DefaultPresentation>AsDescription</DefaultPresentation>
<Characteristics/>
<PredefinedDataUpdate>Auto</PredefinedDataUpdate>
<EditType>InDialog</EditType>
<QuickChoice>false</QuickChoice>
<ChoiceMode>BothWays</ChoiceMode>
<InputByString>
<xr:Field>ChartOfCharacteristicTypes.ВидыСубконто.StandardAttribute.Description</xr:Field>
<xr:Field>ChartOfCharacteristicTypes.ВидыСубконто.StandardAttribute.Code</xr:Field>
</InputByString>
<CreateOnInput>DontUse</CreateOnInput>
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<DefaultObjectForm/>
<DefaultFolderForm/>
<DefaultListForm/>
<DefaultChoiceForm/>
<DefaultFolderChoiceForm/>
<AuxiliaryObjectForm/>
<AuxiliaryFolderForm/>
<AuxiliaryListForm/>
<AuxiliaryChoiceForm/>
<AuxiliaryFolderChoiceForm/>
<BasedOn/>
<DataLockFields/>
<DataLockControlMode>Managed</DataLockControlMode>
<FullTextSearch>Use</FullTextSearch>
<ObjectPresentation/>
<ExtendedObjectPresentation/>
<ListPresentation/>
<ExtendedListPresentation/>
<Explanation/>
<DataHistory>DontUse</DataHistory>
<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
</Properties>
<ChildObjects/>
</ChartOfCharacteristicTypes>
</MetaDataObject>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<PredefinedData xmlns="http://v8.1c.ru/8.3/xcf/predef" xmlns:v8="http://v8.1c.ru/8.1/data/core" 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" xsi:type="PlanOfCharacteristicKindPredefinedItems" version="2.17">
<Item id="UUID-001">
<Name>Номенклатура</Name>
<Code/>
<Description>Номенклатура</Description>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>100</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<IsFolder>false</IsFolder>
</Item>
<Item id="UUID-002">
<Name>Склады</Name>
<Code/>
<Description>Склады</Description>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>100</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<IsFolder>false</IsFolder>
</Item>
</PredefinedData>
@@ -246,6 +246,7 @@
</Properties>
<ChildObjects>
<Language>Русский</Language>
<ChartOfCharacteristicTypes>ВидыСубконто</ChartOfCharacteristicTypes>
<ChartOfAccounts>Хозрасчетный</ChartOfAccounts>
</ChildObjects>
</Configuration>