mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +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:StringQualifiers>
|
||||
</valueType>
|
||||
<editFormat xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>L=ru_RU</v8:content>
|
||||
</v8:item>
|
||||
</editFormat>
|
||||
<appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Формат</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<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>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
{
|
||||
"name": "modify-field сохраняет неизвестные дочерние элементы (editFormat, appearance и т.п.)",
|
||||
"name": "modify-field сохраняет неизвестные дочерние элементы (<appearance> со всеми вложениями) — структура из ERP",
|
||||
"setup": "fixture:multilang-base",
|
||||
"params": {
|
||||
"templatePath": "Template.xml",
|
||||
"operation": "modify-field",
|
||||
"value": "Контрагент @ignoreNullsInGroups"
|
||||
"value": "Контрагент @dimension"
|
||||
},
|
||||
"expect": {
|
||||
"stdoutContains": "Field \"Контрагент\" modified"
|
||||
},
|
||||
"idempotent": true
|
||||
}
|
||||
|
||||
@@ -36,12 +36,21 @@
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<editFormat xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>L=ru_RU</v8:content>
|
||||
</v8:item>
|
||||
</editFormat>
|
||||
<appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Формат</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<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>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
||||
|
||||
+15
-6
@@ -36,12 +36,21 @@
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<editFormat xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>L=ru_RU</v8:content>
|
||||
</v8:item>
|
||||
</editFormat>
|
||||
<appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Формат</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<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>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
||||
|
||||
+16
-7
@@ -27,7 +27,7 @@
|
||||
</v8:item>
|
||||
</title>
|
||||
<role>
|
||||
<dcscom:ignoreNullsInGroups>true</dcscom:ignoreNullsInGroups>
|
||||
<dcscom:dimension>true</dcscom:dimension>
|
||||
</role>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
@@ -36,12 +36,21 @@
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<editFormat xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>L=ru_RU</v8:content>
|
||||
</v8:item>
|
||||
</editFormat>
|
||||
<appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Формат</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<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>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ 1 КАК Контрагент</query>
|
||||
|
||||
Reference in New Issue
Block a user