fix(epf-build): конвертация в заглушку не калечит имена с суффиксом вида объекта

Замена ExternalReport. -> Report. шла по всему тексту XML и попадала внутрь
имени объекта, если оно оканчивается так же (ПриёмкаExternalReport). Имя берётся
из <Name> до замены и остаётся авторским везде — в имени файла, GeneratedType и
составе конфигурации, — а ссылка в скопированном XML расходилась с ним, и
заглушка не грузилась: «Неизвестный объект метаданных - Report.ПриёмкаReport…».

Заменяется только префикс вида объекта в начале квалифицированного имени.
Регрессии строят фикстуру навыками (erf-init --WithSKD, epf-init, form-add) —
так в кейс попадает и настоящая ссылка вида cfg:ExternalReportObject.<Имя>.
Соседние кейсы каталога переведены на {fakePlatform} и прямые слэши.

Closes #90

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-14 12:09:58 +03:00
co-authored by Claude Opus 5
parent 56b0c0cfd7
commit e2c7f38518
7 changed files with 189 additions and 30 deletions
@@ -1,6 +1,5 @@
{
"name": "Внешняя обработка конвертируется в объект конфигурации",
"osOnly": "win32",
"fakePlatform": {
"exit": 1,
"log": ""
@@ -27,18 +26,18 @@
],
"args_extra": [
"-SourceDir",
"{workDir}\\src",
"{workDir}/src",
"-V8Path",
"{workDir}\\fake.cmd",
"{fakePlatform}",
"-TempBasePath",
"{workDir}\\base",
"{workDir}/base",
"-EmbedSourceFile",
"{workDir}\\src\\Проба.xml"
"{workDir}/src/Проба.xml"
],
"expect": {
"fileContains": [
{
"file": "base\\cfg\\DataProcessors\\Проба.xml",
"file": "base/cfg/DataProcessors/Проба.xml",
"text": [
"<DataProcessor uuid=",
"<xr:GeneratedType name=\"DataProcessorObject.Проба\" category=\"Object\">",
@@ -47,12 +46,12 @@
]
},
{
"file": "base\\cfg\\Configuration.xml",
"file": "base/cfg/Configuration.xml",
"text": "<DataProcessor>Проба</DataProcessor>"
}
],
"fileNotContains": {
"file": "base\\cfg\\DataProcessors\\Проба.xml",
"file": "base/cfg/DataProcessors/Проба.xml",
"text": [
"<ExternalDataProcessor",
"ExternalDataProcessorObject."
@@ -61,4 +60,4 @@
},
"expectError": true,
"noSnapshot": "платформа фейковая: проверяется сгенерированная конфигурация, а не база"
}
}