fix(skd-compile): DataSetUnion inner items оборачиваются как <item>

Платформенный 1С пишет вложенные dataSets внутри DataSetUnion как
<item xsi:type="DataSetQuery">, а наш compile эмитил <dataSet xsi:type=...>.
Это вело к двум проблемам:
- сгенерированный XML отличался от платформенного (косметика для bit-perfect)
- skd-decompile симметрично искал <dataSet> и пропускал inner items
  при чтении реальных схем — теряя все вложенные fields/titles

Эталон: upload/erf/ПроверкаЭкранирования/.../Templates/СКД_Объединение
показывает что Designer всегда пишет <item xsi:type="..."> внутри Union.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-05-22 16:00:59 +03:00
parent a46d5a166b
commit eac0ae5a02
4 changed files with 20 additions and 19 deletions
@@ -56,7 +56,7 @@
</dataSet>
<dataSet xsi:type="DataSetUnion">
<name>Объединение</name>
<dataSet xsi:type="DataSetQuery">
<item xsi:type="DataSetQuery">
<name>Часть1</name>
<field xsi:type="DataSetFieldField">
<dataPath>Поле</dataPath>
@@ -72,8 +72,8 @@
</field>
<dataSource>ИсточникДанных1</dataSource>
<query>ВЫБРАТЬ 1 КАК Поле</query>
</dataSet>
<dataSet xsi:type="DataSetQuery">
</item>
<item xsi:type="DataSetQuery">
<name>Часть2</name>
<field xsi:type="DataSetFieldField">
<dataPath>Поле</dataPath>
@@ -89,7 +89,7 @@
</field>
<dataSource>ИсточникДанных1</dataSource>
<query>ВЫБРАТЬ 2 КАК Поле</query>
</dataSet>
</item>
</dataSet>
<settingsVariant>
<dcsset:name>Основной</dcsset:name>
@@ -49,16 +49,16 @@
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Подразделения</v8:Type>
</valueType>
</field>
<dataSet xsi:type="DataSetObject">
<item xsi:type="DataSetObject">
<name>Часть1</name>
<dataSource>ИсточникДанных1</dataSource>
<objectName>ДанныеЧасть1</objectName>
</dataSet>
<dataSet xsi:type="DataSetObject">
</item>
<item xsi:type="DataSetObject">
<name>Часть2</name>
<dataSource>ИсточникДанных1</dataSource>
<objectName>ДанныеЧасть2</objectName>
</dataSet>
</item>
</dataSet>
<settingsVariant>
<dcsset:name>Основной</dcsset:name>