Files
cc-1c-skills/tests/skills/cases/form-compile/additional-columns-no-key.json
T
Nick Shirokov c9b64f3a0d fix(form-compile): внятный отказ на группу additionalColumns без ключа columns
PS-порт падал с «Не удается индексировать в массив NULL»: @($null).Count в
PowerShell равен единице, поэтому ветка самозакрывающегося тега была
недостижима, и код шёл эмитить несуществующую колонку. PY на том же входе
молча писал пустую группу — портируемого поведения не было вовсе.

Разведены два случая, которые до сих пор путались:
- `"columns": []` — явно пустая группа, законная форма (платформа так
  пишет таблицу без доп. колонок). Работает как работала, self-closing;
- ключа `columns` нет вовсе — недосказанность автора: «доп. колонки есть»,
  а какие, не сказано. Теперь отказ с указанием, что делать.

Валидатор такое по-прежнему пропускает: в выгрузке платформы пустая группа
встречается, запрет на авторинг не равен запрету на существование.

Заодно кейс cfe-borrow/form-main-attr-columns вернулся к форме эталона
Конфигуратора — таблица без колонок описана явно пустым списком, как в
выгрузке, а не обходным манёвром вокруг падения.
2026-08-12 17:01:10 +03:00

32 lines
1.2 KiB
JSON

{
"name": "Группа доп. колонок без ключа columns → [ERROR] exit 1",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "DataProcessor",
"name": "ДопКолонкиБезКлюча",
"tabularSections": [
{ "name": "Прочее", "attributes": [ { "name": "Значение", "type": "String", "length": 50 } ] }
]
},
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "form-add/scripts/form-add",
"args": { "-ObjectPath": "{workDir}/DataProcessors/ДопКолонкиБезКлюча.xml", "-FormName": "Форма" }
}
],
"params": { "outputPath": "DataProcessors/ДопКолонкиБезКлюча/Forms/Форма/Ext/Form.xml" },
"expectError": "key 'columns' is missing",
"input": {
"title": "Доп. колонки без ключа",
"elements": [ { "label": "Подпись", "title": "Группа без columns" } ],
"attributes": [
{ "name": "Объект", "type": "DataProcessorObject.ДопКолонкиБезКлюча", "main": true,
"additionalColumns": [ { "table": "Объект.Прочее" } ]
}
]
}
}