Files
cc-1c-skills/tests/skills/cases/stub-db-create/embed-converts-object.json
T
Nick ShirokovandClaude Opus 5 e2c7f38518 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>
2026-09-14 12:09:58 +03:00

64 lines
2.9 KiB
JSON

{
"name": "Внешняя обработка конвертируется в объект конфигурации",
"fakePlatform": {
"exit": 1,
"log": ""
},
"preRun": [
{
"writeFile": {
"path": "src/Проба.xml",
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MetaDataObject xmlns=\"http://v8.1c.ru/8.3/MDClasses\" xmlns:v8=\"http://v8.1c.ru/8.1/data/core\" xmlns:xr=\"http://v8.1c.ru/8.3/xcf/readable\" version=\"2.17\">\n\t<ExternalDataProcessor uuid=\"aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb\">\n\t\t<InternalInfo>\n\t\t\t<xr:GeneratedType name=\"ExternalDataProcessorObject.Проба\" category=\"Object\">\n\t\t\t\t<xr:TypeId>cccccccc-4444-5555-6666-dddddddddddd</xr:TypeId>\n\t\t\t\t<xr:ValueId>eeeeeeee-7777-8888-9999-ffffffffffff</xr:ValueId>\n\t\t\t</xr:GeneratedType>\n\t\t</InternalInfo>\n\t\t<Properties>\n\t\t\t<Name>Проба</Name>\n\t\t\t<DefaultForm>ExternalDataProcessor.Проба.Form.Форма</DefaultForm>\n\t\t</Properties>\n\t\t<ChildObjects>\n\t\t\t<Form>Форма</Form>\n\t\t</ChildObjects>\n\t</ExternalDataProcessor>\n</MetaDataObject>\n"
}
},
{
"writeFile": {
"path": "src/Проба/Ext/ObjectModule.bsl",
"content": "Процедура Проба()\r\n\tСообщить(\"ExternalDataProcessorObject.Проба\");\r\n\tСообщить(\"ExternalDataProcessor.Проба.Form.Форма\");\r\nКонецПроцедуры\r\n"
}
},
{
"writeFile": {
"path": "src/Проба/Forms/Форма.xml",
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MetaDataObject xmlns=\"http://v8.1c.ru/8.3/MDClasses\" version=\"2.17\">\n\t<Form uuid=\"11111111-2222-3333-4444-555555555555\">\n\t\t<Properties>\n\t\t\t<Name>Форма</Name>\n\t\t</Properties>\n\t</Form>\n</MetaDataObject>\n"
}
}
],
"args_extra": [
"-SourceDir",
"{workDir}/src",
"-V8Path",
"{fakePlatform}",
"-TempBasePath",
"{workDir}/base",
"-EmbedSourceFile",
"{workDir}/src/Проба.xml"
],
"expect": {
"fileContains": [
{
"file": "base/cfg/DataProcessors/Проба.xml",
"text": [
"<DataProcessor uuid=",
"<xr:GeneratedType name=\"DataProcessorObject.Проба\" category=\"Object\">",
"<xr:GeneratedType name=\"DataProcessorManager.Проба\" category=\"Manager\">",
"<DefaultForm>DataProcessor.Проба.Form.Форма</DefaultForm>"
]
},
{
"file": "base/cfg/Configuration.xml",
"text": "<DataProcessor>Проба</DataProcessor>"
}
],
"fileNotContains": {
"file": "base/cfg/DataProcessors/Проба.xml",
"text": [
"<ExternalDataProcessor",
"ExternalDataProcessorObject."
]
}
},
"expectError": true,
"noSnapshot": "платформа фейковая: проверяется сгенерированная конфигурация, а не база"
}