mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-07 18:50:53 +03:00
Get-AllChildNames собирал имена только из Properties/Name и пропускал детей, которые регистрируются голым текстом: <Table>Имя</Table>, <Form>Имя</Form>, <Template>Имя</Template>. Из-за этого проверка на дубликат была мёртвой: после удаления файла таблицы повторное добавление отвечало «Added: 1» и клало в ChildObjects второй такой же <Table>. Теперь имя берётся из текста узла, если у ребёнка нет Properties. Кейс воспроизводит исходный сценарий: добавить таблицу, удалить её файл, добавить снова — второй записи быть не должно. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AtG4qGvZocJSWLAsbHpBCQ
28 lines
1.0 KiB
JSON
28 lines
1.0 KiB
JSON
{
|
|
"name": "Повторное добавление таблицы не даёт второй записи в ChildObjects",
|
|
"setup": "empty-config",
|
|
"preRun": [
|
|
{
|
|
"script": "meta-compile/scripts/meta-compile",
|
|
"input": {
|
|
"type": "ExternalDataSource",
|
|
"name": "PG",
|
|
"tables": { "products": { "keyFields": ["id"], "fields": ["id: Number(10,0)"] } }
|
|
},
|
|
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
|
|
},
|
|
{
|
|
"script": "meta-edit/scripts/meta-edit",
|
|
"input": { "add": { "tables": { "sales": ["id: Number(10,0)"] } } },
|
|
"args": { "-DefinitionFile": "{inputFile}", "-ObjectPath": "{workDir}/ExternalDataSources/PG.xml" }
|
|
},
|
|
{ "deletePath": "ExternalDataSources/PG/Tables/sales.xml" }
|
|
],
|
|
"params": { "objectPath": "ExternalDataSources/PG.xml" },
|
|
"input": { "add": { "tables": { "sales": ["id: Number(10,0)"] } } },
|
|
"expect": {
|
|
"stdoutContains": ["already exists"],
|
|
"filesAbsent": ["ExternalDataSources/PG/Tables/sales.xml"]
|
|
}
|
|
}
|