mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-08 20:43:21 +03:00
Раннер сам прятал дефекты, которые чинит #57. normalizeXmlContent при runtime=python снимал ровно четыре измерения: пробел перед `/>`, whitespace между тегами, пустую пару <Tag></Tag> и хвостовой пробельный мусор. Паритет PS<->PY по этим измерениям проверялся ЧЕРЕЗ маску — расхождение физически не могло упасть. Снято три из четырёх (пробел, пустая пара, хвост). Схлопывание whitespace между тегами оставлено: порты кое-где расставляют отступы иначе, это форматирование, а не байтовый канон. Ужесточён checkPreserves: eol теперь считает ОДИНОЧНЫЕ LF, а не «есть ли хоть один CR». Прежняя проверка пропускала смешанный выход — cfe-init давал 10 CR на 70 строк и проходил её, то есть головной дефект тикета был ей невидим. Добавлены ключи selfClose:"tight" и noEmptyPairs; preserves проставлен в 13 кейсах навыков-эмиттеров (по одному на навык, на его СОБСТВЕННЫЙ артефакт). Снятие масок сразу вскрыло четыре реальных расхождения портов: - form-edit собирает выход из OuterXml и писал `<a />`; в списке 17 навыков его не было, потому что искал по вызовам Save — здесь другой путь. Тот же случай, что с Form.xml в cfe-borrow; - meta-edit py дописывал хвостовой перевод в создаваемый Ext/Predefined.xml и читал существующий без newline='' (терял CRLF); - skd-info py писал отчёт -OutFile без хвостового перевода, PS через WriteAllLines — с ним. Это текстовый отчёт, канон Конфигуратора к нему не относится, поэтому выровнял py по существующему эталону; - фикстуры кейсов содержали <Vendor></Vendor> — снимок нашего же старого вывода. Конфигуратор пустых пар не пишет, .NET их сохраняет, lxml схлопывает. Поправлены 10 фикстур: пары → самозакрывающиеся, EOL и BOM не тронуты. Результат: PS 641/641, python 638/641 (+3 runtimeOnly-скипа) — со снятыми масками. Дрейф снэпшотов: 10 файлов, только пробельные теги и пустые пары. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
28 lines
1.0 KiB
XML
28 lines
1.0 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
|
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
|
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
|
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
|
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
|
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<dataSource>
|
|
<name>ИсточникДанных1</name>
|
|
<dataSourceType>Local</dataSourceType>
|
|
</dataSource>
|
|
<dataSet xsi:type="DataSetQuery">
|
|
<name>Основной</name>
|
|
<dataSource>ИсточникДанных1</dataSource>
|
|
<query>SELECT 1</query>
|
|
<field xsi:type="DataSetFieldField">
|
|
<dataPath/>
|
|
<field/>
|
|
</field>
|
|
</dataSet>
|
|
<settingsVariant>
|
|
<dcsset:name>Основной</dcsset:name>
|
|
<dcsset:settings/>
|
|
</settingsVariant>
|
|
</DataCompositionSchema>
|