mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-01 07:50:50 +03:00
feat(cf-edit): sort-childObjects без аргумента выравнивает и порядок групп видов
Настройка 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
This commit is contained in:
co-authored by
Claude Opus 5
parent
1bc943e846
commit
989b3490bc
@@ -169,7 +169,7 @@
|
||||
- `Subsystem` и `CommandGroup` — пока они не перечислены в `<SubsystemsOrder>` / `<GroupsOrder>` файла `Ext/CommandInterface.xml`, порядок в дереве задаёт порядок в интерфейсе, а платформа эти списки сама не заводит: в выгрузке ACC вне `GroupsOrder` 15 живых групп из 39, а `SubsystemsOrder` не появляется, пока интерфейс не настроен руками.
|
||||
- `Language` — порядок языков задаёт порядок `<v8:item>` в мультиязычных строках по всей выгрузке.
|
||||
|
||||
**Что поле не делает.** Оно влияет только на новые записи и не приводит в порядок уже накопленное — для этого есть `/cf-edit -Operation sort-childObjects`. `byName` к тому же предполагает, что список уже упорядочен: объект встаёт перед первым объектом своего вида, чьё имя больше. Взаимный порядок групп видов навыки не меняют вовсе: платформа приводит его к своему при первой же выгрузке.
|
||||
**Что поле не делает.** Оно влияет только на новые записи и не приводит в порядок уже накопленное — для этого есть `/cf-edit -Operation sort-childObjects` (без значения он заодно ставит группы видов в канонический порядок). `byName` к тому же предполагает, что список уже упорядочен: объект встаёт перед первым объектом своего вида, чьё имя больше. Взаимный порядок групп видов навыки не меняют вовсе: платформа приводит его к своему при первой же выгрузке.
|
||||
|
||||
**Объекты с префиксом `Удалить`** стандарт разрешает держать в конце ветки. Навыки их не выделяют и ставят по алфавиту — это стандарту не противоречит, и типовые конфигурации поступают так же (в ACC 360 таких объектов из 373 стоят по алфавиту, а не в хвосте).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user