mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-02 00:10:50 +03:00
Настройка newObjectPosition не чинит накопленное, а собранная навыками конфигурация могла держать группы видов не в каноне — первая же выгрузка платформы давала диф. Теперь вызов без значения приводит в порядок и сами группы. Вызов с явным видом этого не делает: назвали вид — операция остаётся точечной и трогает только имена внутри него. Приём тот же, что уже работал для имён: переставляется содержимое существующих узлов, а не сами узлы, поэтому отступы и структура файла не меняются, а диф остаётся перестановкой строк. Отличие в том, что меняется и имя тега: в py это присваивание el.tag, в PS имя элемента неизменяемо, поэтому узел заменяется через ReplaceChild — он сохраняет окружающие пробельные узлы на месте (тот же приём, что в meta-edit.ps1). Проверки: порты дают байт-в-байт одинаковый файл; повторный прогон пишет Modified: 0 и не меняет ни байта; на боевой выгрузке УТ (13 979 строк) команда сообщает Modified: 0 — там уже канон, и Bot остался между DefinedType и CommonCommand. Раундтрип через платформу 8.3.24: отсортированная конфигурация вернулась побайтово той же, то есть наш канон совпадает с платформенным и сортировка не создаёт работы следующей выгрузке. Правило видов с осмысленным порядком продолжает действовать для ИМЁН: в раундтрипе языки остались как были. Положение самой группы оно не регулирует — это порядок платформы. Три прежних кейса фиксировали поведение «группы не трогаем» и переписаны по факту. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QoAJmoNbgWKobA7JGgN5S3
31 lines
1.1 KiB
JSON
31 lines
1.1 KiB
JSON
{
|
|
"name": "sort-childObjects без значения: имена внутри видов упорядочены, группы видов приведены к канону, подсистемы по имени не тронуты",
|
|
"setup": "fixture:unsorted-childobjects",
|
|
"input": [
|
|
{
|
|
"operation": "sort-childObjects"
|
|
}
|
|
],
|
|
"expect": {
|
|
"stdoutContains": [
|
|
"Sorted: Catalog (3)",
|
|
"Sorted: Role (2)",
|
|
"Reordered type groups"
|
|
],
|
|
"fileContains": {
|
|
"file": "Configuration.xml",
|
|
"text": "<Language>Русский</Language>\r\n\t\t\t<Subsystem>Яблоко</Subsystem>\r\n\t\t\t<Subsystem>Банан</Subsystem>\r\n\t\t\t<Role>Каппа</Role>\r\n\t\t\t<Role>Омега</Role>\r\n\t\t\t<Catalog>Альфа</Catalog>\r\n\t\t\t<Catalog>Бета</Catalog>\r\n\t\t\t<Catalog>Гамма</Catalog>"
|
|
},
|
|
"preserves": {
|
|
"file": "Configuration.xml",
|
|
"bom": true,
|
|
"eol": "crlf",
|
|
"encoding": "UTF-8",
|
|
"finalNewline": false,
|
|
"noCR13": true,
|
|
"selfClose": "tight",
|
|
"noEmptyPairs": true
|
|
}
|
|
}
|
|
}
|