mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-12 06:23:20 +03:00
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:
co-authored by
Claude Opus 5
parent
39cf8e49cf
commit
abe9431d8f
@@ -1,4 +1,4 @@
|
||||
# subsystem-edit v1.9 — Edit existing 1C subsystem XML
|
||||
# subsystem-edit v1.10 — Edit existing 1C subsystem XML
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)][Alias('Path')][string]$SubsystemPath,
|
||||
@@ -332,7 +332,7 @@ function Write-ChildSubsystemStub([string]$childPath, [string]$childName, [strin
|
||||
[void]$sb.AppendLine("`t`t<ChildObjects/>")
|
||||
[void]$sb.AppendLine("`t</Subsystem>")
|
||||
[void]$sb.AppendLine('</MetaDataObject>')
|
||||
[System.IO.File]::WriteAllText($childPath, $sb.ToString(), $utf8Bom)
|
||||
[System.IO.File]::WriteAllText($childPath, $sb.ToString().TrimEnd("`r", "`n"), $utf8Bom)
|
||||
}
|
||||
|
||||
function Import-Fragment([string]$xmlString) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# subsystem-edit v1.9 — Edit existing 1C subsystem XML
|
||||
# subsystem-edit v1.10 — Edit existing 1C subsystem XML
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -242,7 +242,7 @@ def write_child_subsystem_stub(child_path, child_name, format_version):
|
||||
lines.append('\t\t<ChildObjects/>')
|
||||
lines.append('\t</Subsystem>')
|
||||
lines.append('</MetaDataObject>')
|
||||
write_utf8_bom(child_path, '\n'.join(lines) + '\n')
|
||||
write_utf8_bom(child_path, '\n'.join(lines))
|
||||
|
||||
MD_NS = "http://v8.1c.ru/8.3/MDClasses"
|
||||
XR_NS = "http://v8.1c.ru/8.3/xcf/readable"
|
||||
|
||||
Reference in New Issue
Block a user