fix(9 навыков): без хвостового перевода строки в конце XML (#57)

Конфигуратор не пишет перевод строки в конце файла — последний байт `>`. Это видно
на чистой выгрузке пустой ИБ (Windows и macOS) и на всех 8 выгрузках в cfsrc.
Наши эмиттеры добавляли лишний, причём оба порта и по разным причинам:

- PS: StringBuilder.AppendLine дописывает Environment.NewLine после последней строки;
- PY: '\n'.join(lines) + '\n' — хвост добавлен явно.

В meta-compile заведена единая точка записи Write-XmlFile: там документ собирают
и AppendLine, и явные `n в билдерах Predefined/Content/Flowchart, а выходов семь.
В остальных обрезка стоит в самом вызове записи.

Модули .bsl, JSON-выход form-compile, HTML-справка help-add и XSD из xdto-decompile
сюда НЕ входят: канон Конфигуратора описывает XML метаданных, а у этих артефактов
свои правила. Результаты XmlDocument.Save тоже не трогаются — у них хвоста нет.

Навыки редактирования продолжают сохранять стиль ВХОДНОГО файла: кейс
subsystem-edit/roundtrip-crlf-preserve, где фикстура намеренно с хвостом, остаётся
зелёным. Это контракт #44/#46/#47, и он не отменяется.

Дрейф снэпшотов: 547 файлов, у каждого только последняя строка, содержательных
изменений ноль. Тесты 641/641.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-05 13:53:05 +03:00
co-authored by Claude Opus 5
parent 39cf8e49cf
commit abe9431d8f
565 changed files with 601 additions and 593 deletions
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -88,4 +88,4 @@
</Properties>
<ChildObjects/>
</Catalog>
</MetaDataObject>
</MetaDataObject>
@@ -88,4 +88,4 @@
</Properties>
<ChildObjects/>
</Catalog>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -79,4 +79,4 @@
</Properties>
<ChildObjects/>
</Document>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -134,4 +134,4 @@
<Form>ФормаЭлемента</Form>
</ChildObjects>
</Catalog>
</MetaDataObject>
</MetaDataObject>
@@ -24,4 +24,4 @@
<SavedData>true</SavedData>
</Attribute>
</Attributes>
</Form>
</Form>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -79,4 +79,4 @@
</Properties>
<ChildObjects/>
</Document>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>
@@ -20,4 +20,4 @@
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
</MetaDataObject>