Files
cc-1c-skills/tests/skills/cases/cfe-borrow/form-main-attr-columns.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

138 lines
3.6 KiB
JSON

{
"name": "Заимствование формы с основным реквизитом: перенос UseAlways/Columns и заимствование ТЧ из AdditionalColumns",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "Catalog",
"name": "Номенклатура",
"attributes": [
{
"name": "Артикул",
"type": "String",
"length": 25
}
]
},
"args": {
"-JsonPath": "{inputFile}",
"-OutputDir": "{workDir}"
}
},
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "Document",
"name": "ЗаказКлиента",
"attributes": [
{
"name": "Комментарий",
"type": "String",
"length": 100
}
],
"tabularSections": {
"Товары": [
{
"name": "Номенклатура",
"type": "CatalogRef.Номенклатура"
},
{
"name": "Количество",
"type": "Number(10,3)"
}
],
"Оплата": [
{
"name": "Сумма",
"type": "Number(15,2)"
}
]
}
},
"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": [
{
"input": "Комментарий",
"path": "Объект.Комментарий"
},
{
"table": "Товары",
"path": "Объект.Товары",
"columns": [
{
"input": "Номенклатура",
"path": "Объект.Товары.Номенклатура"
},
{
"label": "Артикул",
"path": "Объект.Товары.Артикул"
}
]
}
],
"attributes": [
{
"name": "Объект",
"type": "DocumentObject.ЗаказКлиента",
"main": true,
"useAlways": [
"Объект.Комментарий"
],
"additionalColumns": [
{
"table": "Объект.Оплата",
"columns": []
},
{
"table": "Объект.Товары",
"columns": [
{
"name": "Артикул",
"type": "String(25)"
}
]
}
]
}
]
},
"args": {
"-JsonPath": "{inputFile}",
"-OutputPath": "{workDir}/Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml"
}
},
{
"script": "cfe-init/scripts/cfe-init",
"args": {
"-Name": "Тест",
"-OutputDir": "{workDir}/ext",
"-ConfigPath": "{workDir}"
}
}
],
"params": {
"extensionPath": "ext",
"object": "Document.ЗаказКлиента.Form.ФормаДокумента"
},
"args_extra": [
"-BorrowMainAttribute",
"Form"
]
}