fix(form-validate): проверка 14 сверяет форму с её дескриптором, с выгрузкой — предупреждением

Тело формы сравнивалось с Configuration.xml, а платформа сверяет его с дескриптором формы
(Forms/<Имя>.xml, у общей формы CommonForms/<Имя>.xml): только эту пару она отвергает при
расхождении («Версия формата загружаемого файла … отличается от версии формата ранее загруженных
файлов»). Отсюда были ошибки в обе стороны: согласованная пара 2.18 в выгрузке 2.20 (грузится)
получала ERROR, а пара 2.20/2.18 при Configuration.xml 2.18 (не грузится) проходила. Кроме того,
при якоре без версии генераторный detect_format_version отдавал дефолт 2.17 — ложное расхождение.

Теперь: форма ≠ своему дескриптору — ошибка; иначе форма ≠ выгрузке — предупреждение (платформа
грузит, но выгрузка неоднородна). Контекст «конфигурация / EPF» берётся тем же поиском якоря
(find_dump_anchor). Новая общая функция ext_body_owner — семья в check-inline-drift.

Co-Authored-By: Sergei Pleshanov <2357qwr@gmail.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-26 22:05:28 +03:00
co-authored by Sergei Pleshanov Claude Opus 5.5
parent a90861800b
commit c943acefa2
57 changed files with 1702 additions and 128 deletions
@@ -0,0 +1,7 @@
{
"name": "Форма в версии своего дескриптора и выгрузки — проверка 14 чисто",
"setup": "fixture:version-parts",
"params": { "formPath": "Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml" },
"noSnapshot": "form-validate только читает и печатает — эталон зафиксировал бы фикстуру, а не выход проверяемого навыка; проверяется stdout",
"expect": { "stdoutContains": ["=== Validation OK: Form."] }
}