Files
cc-1c-skills/tests/skills/cases/cfe-borrow/form-bindings.json
T
Nick Shirokov 0dc014dc47 fix(cfe-borrow): не затирать существующий Module.bsl при повторном заимствовании формы
Повторный borrow формы записывал пустой Module.bsl безусловно → терялся
пользовательский код, добавленный в модуль формы (аналог IngvarConsulting/unica#4,
воспроизведено: 150→3 байта). Теперь пустой модуль создаётся только если файла ещё
нет; существующий сохраняется ("Preserved existing Module.bsl"). Дополняет
идемпотентность re-borrow (форма-обёртка/uuid уже были закрыты в v1.5).

Тест form-bindings усилен: между первым и вторым заимствованием в модуль пишется
код (writeFile), idempotent:true теперь проверяет его сохранность побайтно.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 12:57:41 +03:00

49 lines
2.6 KiB
JSON

{
"name": "Заимствование формы: вырезание привязок (Multiple*/Footer) + идемпотентность (модуль и uuid не затираются при повторе)",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "Catalog", "name": "Товары", "attributes": [ { "name": "Артикул", "type": "String", "length": 25 } ] },
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "form-add/scripts/form-add",
"args": { "-ObjectPath": "{workDir}/Catalogs/Товары.xml", "-FormName": "ФормаЭлемента" }
},
{
"script": "form-compile/scripts/form-compile",
"input": {
"title": "Тест",
"elements": [
{ "input": "Артикул", "path": "Объект.Артикул" },
{ "input": "Метки", "path": "Метки", "multipleValueDataPath": "Метки", "multipleValuePresentDataPath": "Метки" },
{ "input": "Подвал", "path": "ПолеПодвала", "footerDataPath": "ПолеПодвала", "footerText": "Итого" }
],
"attributes": [
{ "name": "Объект", "type": "CatalogObject.Товары", "main": true },
{ "name": "Метки", "type": "string(50)" },
{ "name": "ПолеПодвала", "type": "string(50)" }
]
},
"args": { "-JsonPath": "{inputFile}", "-OutputPath": "{workDir}/Catalogs/Товары/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": "Catalog.Товары.Form.ФормаЭлемента", "-BorrowMainAttribute": "Form" }
},
{
"writeFile": {
"path": "ext/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl",
"content": "&НаСервере\nПроцедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)\n\t// пользовательский код — не должен затираться повторным заимствованием\nКонецПроцедуры"
}
}
],
"params": { "extensionPath": "ext", "object": "Catalog.Товары.Form.ФормаЭлемента" },
"args_extra": ["-BorrowMainAttribute", "Form"],
"idempotent": true
}