mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 09:15:52 +03:00
fix(meta-edit): проверка «ребёнок уже есть» не видела узлов без Properties
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
This commit is contained in:
co-authored by
Claude Opus 5
parent
8d1670468a
commit
0dac85946f
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"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"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user