mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-19 16:35:52 +03:00
fix(meta-edit): первый ребёнок в пустом ChildObjects вставал вровень с контейнером
Get-ChildIndent брал отступ из первого пробельного узла контейнера. В контейнере с детьми это отступ ПЕРЕД первым ребёнком — верно; в пустом (только что раскрытом) единственный пробельный узел — отступ ЗАКРЫВАЮЩЕГО тега, то есть уровень самого контейнера. Первый добавленный реквизит, команда или таблица получали отступ <ChildObjects>, а не на табуляцию глубже. То же во вложенном ChildObjects табличной части. Платформа такой файл принимает и при выгрузке нормализует, поэтому дефект косметический — но он задевал любой объект, а сравнивать наш вывод с выгрузкой становилось неудобно. Эталоны четырёх кейсов пересняты: git diff -w пуст, меняются только отступы. Все 23 снэпшота meta-edit, доезжающие до платформы, приняты 8.3.24.1691. Кейс eds-add-table-twice объявил skipPlatformVerify: он нарочно удаляет файл таблицы, оставляя висячую регистрацию, — платформа отказывает по условию кейса, а не из-за дефекта навыка. Радиус проверен: та же эвристика есть в cf-edit, form-edit, interface-edit и cfe-borrow (семья get_child_indent из списка долга check-inline-drift, не сведена). У form-edit пустой контейнер обрабатывается верно — проверено добавлением элемента в форму с <ChildItems/>; у cf-edit и cfe-borrow ветка недостижима: в ChildObjects конфигурации всегда есть <Language>. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
This commit is contained in:
co-authored by
Claude Opus 5
parent
11c0450d2a
commit
5c79b494cd
@@ -7,21 +7,61 @@
|
||||
"input": {
|
||||
"type": "ExternalDataSource",
|
||||
"name": "PG",
|
||||
"tables": { "products": { "keyFields": ["id"], "fields": ["id: Number(10,0)"] } }
|
||||
"tables": {
|
||||
"products": {
|
||||
"keyFields": [
|
||||
"id"
|
||||
],
|
||||
"fields": [
|
||||
"id: Number(10,0)"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
|
||||
"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" }
|
||||
"input": {
|
||||
"add": {
|
||||
"tables": {
|
||||
"sales": [
|
||||
"id: Number(10,0)"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"args": {
|
||||
"-DefinitionFile": "{inputFile}",
|
||||
"-ObjectPath": "{workDir}/ExternalDataSources/PG.xml"
|
||||
}
|
||||
},
|
||||
{ "deletePath": "ExternalDataSources/PG/Tables/sales.xml" }
|
||||
{
|
||||
"deletePath": "ExternalDataSources/PG/Tables/sales.xml"
|
||||
}
|
||||
],
|
||||
"params": { "objectPath": "ExternalDataSources/PG.xml" },
|
||||
"input": { "add": { "tables": { "sales": ["id: Number(10,0)"] } } },
|
||||
"params": {
|
||||
"objectPath": "ExternalDataSources/PG.xml"
|
||||
},
|
||||
"input": {
|
||||
"add": {
|
||||
"tables": {
|
||||
"sales": [
|
||||
"id: Number(10,0)"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"expect": {
|
||||
"stdoutContains": ["already exists"],
|
||||
"filesAbsent": ["ExternalDataSources/PG/Tables/sales.xml"]
|
||||
}
|
||||
"stdoutContains": [
|
||||
"already exists"
|
||||
],
|
||||
"filesAbsent": [
|
||||
"ExternalDataSources/PG/Tables/sales.xml"
|
||||
]
|
||||
},
|
||||
"skipPlatformVerify": "кейс нарочно удаляет файл таблицы, оставляя висячую регистрацию: такую конфигурацию платформа не загрузит по условию кейса, а не из-за дефекта навыка"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user