fix(epf-init,erf-init,form-add): CRLF в разделителях строк модуля

Скелетные генераторы писали Module.bsl с LF, а платформа пишет модули с CRLF:
в выгрузке БП 2643 CRLF и чисто-LF 0 из 3001 модуля (358 «смешанных» — LF внутри
строковых литералов кода), BOM 2001/2001. По тому же доводу сходимости, что и для
XML: платформа перепишет модуль в CRLF при первой выгрузке, значит наш LF — дифф,
созданный нами.

В репозитории уже была встречная конвенция: meta-compile (модуль команды) и
cfe-patch-method (base/local/remote.bsl) пишут .bsl явным CRLF в обоих портах.
Выбивались только эти три скелета.

Хвостовой перевод строки НЕ трогаем: у платформы он неканоничен — 1235 модулей
с ним, 766 без; это след автора кода, а не правило. Меняем только разделители.

Правка в точке записи, а не в шаблоне: так одна строка на скрипт и не трогаются
\u-экранированные кириллические литералы в py (Edit по ним переэкранирует).

Снэпшоты нормализуют EOL и увидеть это не могут — добавлен preserves на модуль
в epf-init/basic, erf-init/basic, form-add/basic.

Windows 641/641 обоими портами, мак 590/0/51, дрейфа снэпшотов нет.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-05 18:53:50 +03:00
co-authored by Claude Opus 5
parent caf038a192
commit d05c91be03
9 changed files with 84 additions and 39 deletions
+17 -10
View File
@@ -8,15 +8,22 @@
"files": [
"ТестоваяОбработка.xml"
],
"preserves": {
"file": "ТестоваяОбработка.xml",
"bom": true,
"eol": "crlf",
"encoding": "UTF-8",
"finalNewline": false,
"noCR13": true,
"selfClose": "tight",
"noEmptyPairs": true
}
"preserves": [
{
"file": "ТестоваяОбработка.xml",
"bom": true,
"eol": "crlf",
"encoding": "UTF-8",
"finalNewline": false,
"noCR13": true,
"selfClose": "tight",
"noEmptyPairs": true
},
{
"file": "ТестоваяОбработка/Ext/ObjectModule.bsl",
"bom": true,
"eol": "crlf"
}
]
}
}
+17 -10
View File
@@ -8,15 +8,22 @@
"files": [
"ТестовыйОтчёт.xml"
],
"preserves": {
"file": "ТестовыйОтчёт.xml",
"bom": true,
"eol": "crlf",
"encoding": "UTF-8",
"finalNewline": false,
"noCR13": true,
"selfClose": "tight",
"noEmptyPairs": true
}
"preserves": [
{
"file": "ТестовыйОтчёт.xml",
"bom": true,
"eol": "crlf",
"encoding": "UTF-8",
"finalNewline": false,
"noCR13": true,
"selfClose": "tight",
"noEmptyPairs": true
},
{
"file": "ТестовыйОтчёт/Ext/ObjectModule.bsl",
"bom": true,
"eol": "crlf"
}
]
}
}
+17 -10
View File
@@ -19,15 +19,22 @@
},
"validatePath": "Catalogs/Товары/Forms/ФормаЭлемента",
"expect": {
"preserves": {
"file": "Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml",
"bom": true,
"eol": "crlf",
"encoding": "UTF-8",
"finalNewline": false,
"noCR13": true,
"selfClose": "tight",
"noEmptyPairs": true
}
"preserves": [
{
"file": "Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml",
"bom": true,
"eol": "crlf",
"encoding": "UTF-8",
"finalNewline": false,
"noCR13": true,
"selfClose": "tight",
"noEmptyPairs": true
},
{
"file": "Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl",
"bom": true,
"eol": "crlf"
}
]
}
}