Files
cc-1c-skills/tests/skills/cases/cfe-validate/object-paths-vs-config.json
T
Nick Shirokov 9b1c3de642 feat(cfe-validate): полнота GeneratedType, ТЧ из AdditionalColumns, сверка путей с -ConfigPath
Три вещи, на которых платформа отвергала расширение, а валидатор молчал.

Check 9 — полнота набора GeneratedType у заимствованной оболочки: неполный
набор платформа не читает («отсутствует один или более типов объекта»).
Карта категорий взята из той же таблицы спецификации (§2.5) и заведена в
реестр check-type-maps.mjs, чтобы копия не разошлась с остальными.

Check 12 — <AdditionalColumns table="Объект.X"> при незаимствованной
табличной части. В отличие от соседних проверок блока, здесь сигнал точный
(имя из атрибута), а последствие жёсткое, поэтому ошибка, а не warning.

Check 14 — пути Объект.* заимствованных форм против конфигурации-источника,
по новому опциональному -ConfigPath. Без него проверка пропускается с явной
строкой в отчёте. Отличить живой путь от висячего иначе нельзя: Объект.Партнер
валиден и без заимствования (наследуется от базы), а Объект.Товары.Артикул не
разрешится нигде. Итоги колонок (Total<Колонка>) и стандартные реквизиты
пропускаются — иначе ложные срабатывания на типовых формах.

Проверено на пяти расширениях: наши (оба режима) и оба эталона Конфигуратора
проходят чисто, расширение с дефектом ловится. Регресс cfe-* 51/51 на обоих
рантаймах, гарды дрейфа зелёные.
2026-08-12 16:17:56 +03:00

44 lines
2.0 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "С -ConfigPath ловится путь на несуществующую колонку ТЧ (Объект.Товары.Артикул)",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "Document", "name": "ЗаказКлиента",
"tabularSections": { "Товары": [ { "name": "Количество", "type": "Number(10,3)" } ] }
},
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "form-add/scripts/form-add",
"args": { "-ObjectPath": "{workDir}/Documents/ЗаказКлиента.xml", "-FormName": "ФормаДокумента" }
},
{
"script": "form-compile/scripts/form-compile",
"input": {
"title": "Заказ клиента",
"elements": [
{ "table": "Товары", "path": "Объект.Товары", "columns": [
{ "input": "Количество", "path": "Объект.Товары.Количество" },
{ "input": "Артикул", "path": "Объект.Товары.Артикул" }
] }
],
"attributes": [ { "name": "Объект", "type": "DocumentObject.ЗаказКлиента", "main": true } ]
},
"args": { "-JsonPath": "{inputFile}", "-OutputPath": "{workDir}/Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml" }
},
{
"script": "cfe-init/scripts/cfe-init",
"args": { "-Name": "Тест", "-OutputDir": "{workDir}/ext", "-ConfigPath": "{workDir}" }
},
{
"script": "cfe-borrow/scripts/cfe-borrow",
"args": { "-ExtensionPath": "{workDir}/ext", "-ConfigPath": "{workDir}", "-Object": "Document.ЗаказКлиента.Form.ФормаДокумента", "-BorrowMainAttribute": "Form" }
}
],
"params": { "extensionPath": "ext" },
"args_extra": ["-ConfigPath", "{workDir}"],
"expectError": true,
"expect": { "stdoutContains": "Объект.Товары.Артикул" }
}