docs(cf-edit): убрать обоснования исключений из инструкции навыка

В справочнике операции при каждом исключённом виде стояла причина: «порядок
разделителей задаёт порядок параметров сеанса», «порядок в панели», «порядок
мультиязычных строк». Позицию вставки выбирает проект, а не модель, — в инструкции
навыка этому места нет. К тому же документальное основание есть только у
CommonAttribute (исключение самого стандарта), остальные три — наш вывод из замеров,
и подавать его как факт тем более не следовало. Осталось перечисление видов.

Заодно сняты два утверждения, которые предыдущая правка сделала ложными: «взаимный
порядок групп видов навыки не меняют вовсе» в гайде и та же фраза в докстрингах обоих
портов — рядом с реализацией, которая ровно это и делает. Формулировка про четыре вида
в гайде уточнена: не сортируются их ИМЕНА, положение самой группы канонично всегда.

Обоснования остаются в docs/v8-project-guide.md, где решение принимает человек.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QoAJmoNbgWKobA7JGgN5S3
This commit is contained in:
Nick Shirokov
2026-08-30 14:05:47 +03:00
co-authored by Claude Opus 5
parent 989b3490bc
commit e48599164e
5 changed files with 19 additions and 19 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cf-edit.ps1" -Confi
| `modify-property` | `Ключ=Значение` (batch `;;`) | Изменить свойство |
| `add-childObject` | `Type.Name` (batch `;;`) | Зарегистрировать уже существующий файл объекта в ChildObjects. Для создания нового объекта используй `/meta-compile`, `/role-compile`, `/subsystem-compile` — они регистрируют автоматически |
| `remove-childObject` | `Type.Name` (batch `;;`) | Удалить объект из ChildObjects |
| `sort-childObjects` | вид, напр. `Catalog` (batch `;;`), либо пусто | Упорядочить ChildObjects по имени внутри вида. Без значения — все виды, кроме тех, где порядок несёт смысл (см. reference) |
| `sort-childObjects` | вид, напр. `Catalog` (batch `;;`), либо пусто | Упорядочить ChildObjects по имени внутри вида. Без значения — все виды, кроме четырёх (см. reference) |
| `add-defaultRole` | `Role.Name` или `Name` | Добавить роль по умолчанию |
| `remove-defaultRole` | `Role.Name` или `Name` | Удалить роль по умолчанию |
| `set-defaultRoles` | Имена через `;;` | Заменить список ролей по умолчанию |
+2 -2
View File
@@ -49,9 +49,9 @@ Batch: `"Catalog.Товары ;; Document.Заказ ;; Enum.ВидыОплат"
-Operation sort-childObjects -Value "Catalog ;; Role"
```
Виды, где порядок несёт смысл, пропускаются, пока не названы явно: `CommonAttribute` (порядок разделителей задаёт порядок параметров сеанса), `Subsystem` и `CommandGroup` (порядок в панели), `Language` (порядок мультиязычных строк).
Не сортируются, пока вид не назван явно: `CommonAttribute`, `Subsystem`, `CommandGroup`, `Language`.
Вызов **без значения** дополнительно ставит сами группы видов в канонический порядок — тот, в котором их пишет платформа. Вызов с явным видом этого не делает: он трогает только имена внутри названного вида.
Вызов без значения дополнительно ставит группы видов в канонический порядок; вызов с явным видом трогает только имена внутри него.
## add-defaultRole / remove-defaultRole / set-defaultRoles
+7 -7
View File
@@ -1,4 +1,4 @@
# cf-edit v1.26 — Edit 1C configuration root (Configuration.xml)
# cf-edit v1.27 — Edit 1C configuration root (Configuration.xml)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -551,12 +551,12 @@ function Sort-MetadataNames([string[]]$names) {
return $out.ToArray()
}
# Упорядочить <ChildObjects> по имени внутри вида.
# Без значения — все виды, кроме Subsystem (порядок подсистем в дереве задаёт порядок
# разделов в панели, пока их не перечислили в <SubsystemsOrder>); явно названный вид
# сортируется в любом случае. Взаимный порядок видов не трогаем: платформа приводит его
# к своему при первой же выгрузке. Переставляем ЗНАЧЕНИЯ узлов, а не сами узлы — отступы
# и структура файла остаются как были, меняются только имена в строках.
# Упорядочить <ChildObjects>: имена внутри вида, а без аргумента — и группы видов.
# Виды из Test-OrderSensitiveType по имени не сортируются, пока не названы явно.
# Вызов без значения дополнительно ставит группы видов в канонический порядок: платформа
# починила бы его только при загрузке-выгрузке, то есть неканоничный файл даёт диф на
# ровном месте. Переставляем ЗНАЧЕНИЯ узлов, а не сами узлы — отступы и структура файла
# остаются как были, в дифе только перестановка строк.
function Do-SortChildObjects([string]$batchVal) {
if (-not $script:childObjsEl) { Write-Error "No <ChildObjects> element found"; exit 1 }
+7 -7
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# cf-edit v1.26 — Edit 1C configuration root (Configuration.xml)
# cf-edit v1.27 — Edit 1C configuration root (Configuration.xml)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -855,13 +855,13 @@ def main():
info(f"Added: {type_name}.{obj_name_val}")
def do_sort_child_objects(batch_val):
"""Упорядочить <ChildObjects> по имени внутри вида.
"""Упорядочить <ChildObjects>: имена внутри вида, а без аргумента — и группы видов.
Без значения — все виды, кроме Subsystem (порядок подсистем в дереве задаёт порядок
разделов в панели, пока их не перечислили в <SubsystemsOrder>); явно названный вид
сортируется в любом случае. Взаимный порядок видов не трогаем: платформа приводит его
к своему при первой же выгрузке. Переставляем ЗНАЧЕНИЯ узлов, а не сами узлы —
отступы и структура файла остаются как были, меняются только имена в строках.
Виды из is_order_sensitive_type по имени не сортируются, пока не названы явно.
Вызов без значения дополнительно ставит группы видов в канонический порядок: платформа
починила бы его только при загрузке-выгрузке, то есть неканоничный файл даёт диф на
ровном месте. Переставляем ЗНАЧЕНИЯ узлов, а не сами узлы — отступы и структура файла
остаются как были, в дифе только перестановка строк.
"""
nonlocal modify_count
if child_objs_el is None: