feat(form-validate): проверки необъявленного префикса и версии формата

Обе проверки — про ошибки, которые делает не платформа, а тот, кто пишет
XML руками. Обе вскрыты на наших же фикстурах, обе платформенно-фатальны:
файл не читается вовсе, а прежний валидатор говорил OK.

Check 13 — префикс в значении типа обязан резолвиться. `cfg:CatalogRef.X`
в <v8:Type> при незадекларированном xmlns:cfg даёт «Исключение XDTO при
чтении файла». Область видимости считается по узлу, а не по корню:
локальная xmlns на элементе законна и в типовых встречается (d4p1, mxl).

Check 14 — версия формата формы против версии конфигурации. В пределах
одной выгрузки версия едина; форма из более новой выгрузки даёт
«Неизвестная версия формата N загружаемого файла».

Ложных срабатываний нет: корпус УТ/БП/ERP, 21 097 форм — те же 8 форм с
ошибками, что и до правки. Регресс 15/15 на обоих рантаймах, паритет
портов сверен построчно.
This commit is contained in:
Nick Shirokov
2026-08-12 18:59:55 +03:00
parent 1b40dc5b03
commit 7dc2e6e443
12 changed files with 582 additions and 2 deletions
@@ -0,0 +1,8 @@
{
"name": "Ошибка: префикс в значении типа не объявлен — платформа не прочитает файл (XDTO)",
"setup": "fixture:undeclared-prefix",
"params": { "formPath": "DataProcessors/Opaque/Forms/Форма" },
"expectError": true,
"expect": { "stdoutContains": "prefix 'cfg:' is not declared" },
"skipPlatformVerify": "фикстура намеренно нечитаема платформой — в этом и смысл кейса"
}