Files
cc-1c-skills/tests/skills/cases/cfe-borrow/form-main-attr-columns.json
T
Nick Shirokov 3fafa099b2 feat(cfe-borrow): перенос UseAlways/Columns основного реквизита формы
Заимствование формы с -BorrowMainAttribute синтезировало <Attribute
name="Объект"> с нуля — Type/MainAttribute/SavedData и всё. Секции
<UseAlways> и <Columns> исходной формы терялись, а вместе с ними и
дополнительные колонки табличных частей, объявленные прямо в форме:
платформа отвергала загрузку («Неверный путь к данным: Объект.Товары.Артикул»).

Три связанных следствия:
- секции переносятся из исходной формы (helper Get-MainAttributeExtraXml
  на оба порта, отступ в BaseForm — тем же приёмом, что у ChildItems);
- табличная часть, упомянутая только в <AdditionalColumns table="…">,
  теперь попадает в сбор путей и заимствуется — иначе «Колонки не могут
  быть добавлены к реквизиту»;
- типы колонок дозаимствуются через collect_reference_types, как это
  делает Конфигуратор (DefinedTypes/Артикул в эталоне).

Попутно снят PS↔PY-дрейф: lxml включал хвостовой пробельный узел в
tostring, из-за чего .py вставлял пустые строки, которых нет у .ps1
(with_tail=False в четырёх местах).

E2E на UT_DEMO (8.3.27, формат 2.20, форма заказа поставщику): режим с
основным реквизитом грузится «Load completed successfully» без ручных
правок. Регресс 11/11 на обоих рантаймах.
2026-08-12 15:49:34 +03:00

63 lines
2.9 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": [ { "name": "СуммаПрописью", "type": "String(200)" } ] },
{ "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"]
}