Files
cc-1c-skills/tests/skills/cases/form-add/epf-compile-then-add.json
T
Nick ShirokovandClaude Opus 4.8 e01688e764 fix(form-add): идемпотентная регистрация <Form>/<Template> в ChildObjects
form-add и template-add вставляли запись в ChildObjects безусловно.
Если форма/макет уже зарегистрированы (например, form-compile
регистрирует <Form>, не создавая файл метаданных, а затем вызывается
form-add) — возникал дубль <Form>/<Template>, ломавший валидацию.

Приведено к идемпотентной модели, уже применённой в form-compile и
meta-compile: перед вставкой ищем существующую запись по имени; при
наличии — пропускаем и печатаем "Already registered ... (skipped
duplicate)". Зеркально в ps1 и py, регрессионный тест-кейс.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 13:28:16 +03:00

22 lines
869 B
JSON

{
"name": "form-compile затем form-add не дублирует регистрацию формы в ChildObjects",
"setup": "none",
"preRun": [
{
"script": "epf-init/scripts/init",
"args": { "-Name": "КонсольКода", "-SrcDir": "{workDir}" }
},
{
"script": "form-compile/scripts/form-compile",
"input": {
"title": "Форма",
"attributes": [{ "name": "Объект", "type": "ExternalDataProcessorObject.КонсольКода", "main": true }]
},
"args": { "-JsonPath": "{inputFile}", "-OutputPath": "{workDir}/КонсольКода/Forms/Форма/Ext/Form.xml" }
}
],
"params": { "objectPath": "КонсольКода.xml", "formName": "Форма" },
"expect": { "stdoutContains": "Already registered" },
"validatePath": "КонсольКода/Forms/Форма"
}