mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-19 09:09:41 +03:00
fix(skd-edit): realistic multilang fixture (ERP-style appearance block)
multilang-base/Template.xml содержал <editFormat xsi:type="v8:LocalStringType"> на <field xsi:type="DataSetFieldField">, что нелегально по XDTO-схеме DCS — 1С Designer падал с "Исключение XDTO" при загрузке через LoadExternalDataProcessorOrReportFromFiles. Snapshot-тесты этого не ловили (только byte-equality), а platform-verify (tests/skills/verify-snapshots.mjs) ронялся на трёх кейсах с этой фикстурой. Заменил <editFormat> на реалистичный <appearance> блок с вложенным <dcscor:item xsi:type="dcsset:SettingsParameterValue"> и многоязычным <dcscor:value> (ru + en) — структура взята из типовой ERP-выгрузки. Это даёт более правильный test для preserve-unknown-children: <appearance> содержит вложенный multi-lang xsi:type-узел, который точно прошёл бы через DOM round-trip с искажениями, если бы _unknownChildren не работал. preserve-unknown-children-modify-field: shorthand изменён с "@ignoreNullsInGroups" на "@dimension" (no-op по составу role, но триггерит rebuild). Прежний @ignoreNullsInGroups без @dimension давал комбинацию, которую Designer отвергает (ignoreNullsInGroups валиден только в контексте resource-роли). 39/39 snapshot suite (PS+PY) + 39/39 platform verify через erf-build → Designer. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -36,12 +36,21 @@
|
|||||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||||
</v8:StringQualifiers>
|
</v8:StringQualifiers>
|
||||||
</valueType>
|
</valueType>
|
||||||
<editFormat xsi:type="v8:LocalStringType">
|
<appearance>
|
||||||
<v8:item>
|
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||||
<v8:lang>ru</v8:lang>
|
<dcscor:parameter>Формат</dcscor:parameter>
|
||||||
<v8:content>L=ru_RU</v8:content>
|
<dcscor:value xsi:type="v8:LocalStringType">
|
||||||
</v8:item>
|
<v8:item>
|
||||||
</editFormat>
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>ЧДЦ=2</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>en</v8:lang>
|
||||||
|
<v8:content>NFD=2</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</dcscor:value>
|
||||||
|
</dcscor:item>
|
||||||
|
</appearance>
|
||||||
</field>
|
</field>
|
||||||
<dataSource>ИсточникДанных1</dataSource>
|
<dataSource>ИсточникДанных1</dataSource>
|
||||||
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "modify-field сохраняет неизвестные дочерние элементы (editFormat, appearance и т.п.)",
|
"name": "modify-field сохраняет неизвестные дочерние элементы (<appearance> со всеми вложениями) — структура из ERP",
|
||||||
"setup": "fixture:multilang-base",
|
"setup": "fixture:multilang-base",
|
||||||
"params": {
|
"params": {
|
||||||
"templatePath": "Template.xml",
|
"templatePath": "Template.xml",
|
||||||
"operation": "modify-field",
|
"operation": "modify-field",
|
||||||
"value": "Контрагент @ignoreNullsInGroups"
|
"value": "Контрагент @dimension"
|
||||||
|
},
|
||||||
|
"expect": {
|
||||||
|
"stdoutContains": "Field \"Контрагент\" modified"
|
||||||
},
|
},
|
||||||
"idempotent": true
|
"idempotent": true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,12 +36,21 @@
|
|||||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||||
</v8:StringQualifiers>
|
</v8:StringQualifiers>
|
||||||
</valueType>
|
</valueType>
|
||||||
<editFormat xsi:type="v8:LocalStringType">
|
<appearance>
|
||||||
<v8:item>
|
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||||
<v8:lang>ru</v8:lang>
|
<dcscor:parameter>Формат</dcscor:parameter>
|
||||||
<v8:content>L=ru_RU</v8:content>
|
<dcscor:value xsi:type="v8:LocalStringType">
|
||||||
</v8:item>
|
<v8:item>
|
||||||
</editFormat>
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>ЧДЦ=2</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>en</v8:lang>
|
||||||
|
<v8:content>NFD=2</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</dcscor:value>
|
||||||
|
</dcscor:item>
|
||||||
|
</appearance>
|
||||||
</field>
|
</field>
|
||||||
<dataSource>ИсточникДанных1</dataSource>
|
<dataSource>ИсточникДанных1</dataSource>
|
||||||
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
||||||
|
|||||||
+15
-6
@@ -36,12 +36,21 @@
|
|||||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||||
</v8:StringQualifiers>
|
</v8:StringQualifiers>
|
||||||
</valueType>
|
</valueType>
|
||||||
<editFormat xsi:type="v8:LocalStringType">
|
<appearance>
|
||||||
<v8:item>
|
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||||
<v8:lang>ru</v8:lang>
|
<dcscor:parameter>Формат</dcscor:parameter>
|
||||||
<v8:content>L=ru_RU</v8:content>
|
<dcscor:value xsi:type="v8:LocalStringType">
|
||||||
</v8:item>
|
<v8:item>
|
||||||
</editFormat>
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>ЧДЦ=2</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>en</v8:lang>
|
||||||
|
<v8:content>NFD=2</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</dcscor:value>
|
||||||
|
</dcscor:item>
|
||||||
|
</appearance>
|
||||||
</field>
|
</field>
|
||||||
<dataSource>ИсточникДанных1</dataSource>
|
<dataSource>ИсточникДанных1</dataSource>
|
||||||
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
||||||
|
|||||||
+16
-7
@@ -27,7 +27,7 @@
|
|||||||
</v8:item>
|
</v8:item>
|
||||||
</title>
|
</title>
|
||||||
<role>
|
<role>
|
||||||
<dcscom:ignoreNullsInGroups>true</dcscom:ignoreNullsInGroups>
|
<dcscom:dimension>true</dcscom:dimension>
|
||||||
</role>
|
</role>
|
||||||
<valueType>
|
<valueType>
|
||||||
<v8:Type>xs:string</v8:Type>
|
<v8:Type>xs:string</v8:Type>
|
||||||
@@ -36,12 +36,21 @@
|
|||||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||||
</v8:StringQualifiers>
|
</v8:StringQualifiers>
|
||||||
</valueType>
|
</valueType>
|
||||||
<editFormat xsi:type="v8:LocalStringType">
|
<appearance>
|
||||||
<v8:item>
|
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||||
<v8:lang>ru</v8:lang>
|
<dcscor:parameter>Формат</dcscor:parameter>
|
||||||
<v8:content>L=ru_RU</v8:content>
|
<dcscor:value xsi:type="v8:LocalStringType">
|
||||||
</v8:item>
|
<v8:item>
|
||||||
</editFormat>
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>ЧДЦ=2</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>en</v8:lang>
|
||||||
|
<v8:content>NFD=2</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</dcscor:value>
|
||||||
|
</dcscor:item>
|
||||||
|
</appearance>
|
||||||
</field>
|
</field>
|
||||||
<dataSource>ИсточникДанных1</dataSource>
|
<dataSource>ИсточникДанных1</dataSource>
|
||||||
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
||||||
|
|||||||
Reference in New Issue
Block a user