Files
cc-1c-skills/tests/skills/cases/template-add/html-legacy-migrate.json
T
Nick ShirokovandClaude Opus 5 04563a6973 feat(template-add): добавление страницы макета на втором языке
Повторный вызов на существующем макете безусловно отказывал, поэтому второй язык
приходилось добавлять руками — дописывать <Page> в дескриптор и заводить файл
страницы. Случай не редкий: в выгрузке ERP 54 макета из 70 двуязычные.

Теперь при -TemplateType HTML существующий макет — повод добавить страницу, а не
отказать. Порядок <Page> — по коду языка (в ERP так во всех 54). Версия формата
берётся из самого дескриптора, чтобы правка чужой выгрузки не меняла формат.
Метаданные макета и ChildObjects не трогаются: перезапись сменила бы UUID.

Отказ остался там, где он по делу: тот же язык повторно, нехтмловый макет под тем же
именем, любой не-HTML тип.

Макет в старой раскладке (Ext/Template.html) мигрируется с громким [WARN]: платформа
такую раскладку игнорирует, то есть состояние и так нерабочее, а создать её могла
только версия навыка без -Lang — значит это страница на языке по умолчанию.

Проверено на 8.3.27.1859: двуязычный макет доходит до базы и возвращается обратно
байт в байт — и дескриптор, и обе страницы. Попутно измерено: страницу на языке,
не объявленном в Languages/, платформа принимает — поэтому состав языков не проверяем.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-22 17:19:57 +03:00

37 lines
1.5 KiB
JSON

{
"name": "HTML-макет в старой раскладке: страница переносится, язык добавляется",
"preRun": [
{
"script": "epf-init/scripts/init",
"args": { "-Name": "МояОбработка", "-SrcDir": "{workDir}" }
},
{
"script": "template-add/scripts/add-template",
"args": {
"-ObjectName": "МояОбработка",
"-TemplateName": "МакетHTML",
"-TemplateType": "HTML",
"-SrcDir": "{workDir}"
}
},
{ "deletePath": "МояОбработка/Templates/МакетHTML/Ext/Template" },
{ "deletePath": "МояОбработка/Templates/МакетHTML/Ext/Template.xml" },
{
"writeFile": {
"path": "МояОбработка/Templates/МакетHTML/Ext/Template.html",
"content": "<!DOCTYPE html>\n<html><body>\nСТАРОЕ_СОДЕРЖИМОЕ\n</body></html>"
}
}
],
"params": { "objectName": "МояОбработка", "templateName": "МакетHTML", "templateType": "HTML" },
"args_extra": ["-Lang", "en"],
"expect": {
"stdoutContains": ["[WARN]", "старой раскладке", "Добавлена страница макета"],
"filesAbsent": ["МояОбработка/Templates/МакетHTML/Ext/Template.html"],
"fileContains": {
"file": "МояОбработка/Templates/МакетHTML/Ext/Template/ru.html",
"text": "СТАРОЕ_СОДЕРЖИМОЕ"
}
}
}