mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-18 07:35:52 +03:00
fix(meta-compile): порядок элементов по канону выгрузки
Детект порядка, добавленный в раундтрип-харнес, показал 1242 расхождения на 4897 объектах (25%). Раньше они были невидимы: дифф строился через Compare-Object, то есть по мультимножеству строк, и позиция не проверялась. Ложных срабатываний там нет по построению — проверка включается только когда мультимножества уже совпали. Три категории, все — порядок эмиссии; DSL и декомпилятор не затронуты. 1. Виды детей регистров (1140 объектов). Компилятор печатал Resource, Dimension, Attribute. Канон, снятый с корпуса acc+erp (разброса внутри типа нет): Resource, Attribute, Dimension у информационного, накопления и расчёта; Dimension, Resource, Attribute — у бухгалтерского. Команды у платформы идут последними, как и было. 2. Квалификаторы в составном типе (61 объект). Платформа пишет сначала ВСЕ <v8:Type>/<v8:TypeSet>, потом блоки квалификаторов, а Emit-TypeContent рекурсивно печатал каждую часть целиком. На одиночном типе оба порядка совпадают — потому и не всплывало. Порядок самих блоков тоже канонический и НЕ зеркалит порядок типов: Number, String, Date (при типах boolean,string,dateTime,decimal квалификаторы идут Number,String,Date; контрпримеров в корпусе нет). 3. Стандартные реквизиты плана обмена (41 объект, весь список): блок начинается с ThisNode, а не с Ref. Проверка: - корпусный раундтрип 4897 объектов: порядок ≠ 1242 → 0, match не просел (150/1640/151/2600/314/42), TOTAL diff lines 0; - юнит-тесты 648/648 ps1, 645/648 py; - 1С-сертификация на платформе 8.3.24: регистры информационный, накопления, бухгалтерский, расчёта и план обмена — все приняты; - дрейф снэпшотов (10 файлов, 9 кейсов) сверен как чистая перестановка строк. NB: сверять нужно с нормализацией UUID-\d+ — раннер нумерует плейсхолдеры по порядку появления, и перестановка детей меняет, кому достанется UUID-015. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4833c3b707
commit
a3aa8fe87c
+5
-5
@@ -41,17 +41,17 @@
|
||||
<CharacteristicExtValues/>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>100</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>100</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
<Hierarchical>false</Hierarchical>
|
||||
<FoldersOnTop>true</FoldersOnTop>
|
||||
|
||||
Reference in New Issue
Block a user