mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-02 00:10:50 +03:00
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:
co-authored by
Claude Opus 5
parent
989b3490bc
commit
e48599164e
@@ -34,7 +34,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cf-edit.ps1" -Confi
|
|||||||
| `modify-property` | `Ключ=Значение` (batch `;;`) | Изменить свойство |
|
| `modify-property` | `Ключ=Значение` (batch `;;`) | Изменить свойство |
|
||||||
| `add-childObject` | `Type.Name` (batch `;;`) | Зарегистрировать уже существующий файл объекта в ChildObjects. Для создания нового объекта используй `/meta-compile`, `/role-compile`, `/subsystem-compile` — они регистрируют автоматически |
|
| `add-childObject` | `Type.Name` (batch `;;`) | Зарегистрировать уже существующий файл объекта в ChildObjects. Для создания нового объекта используй `/meta-compile`, `/role-compile`, `/subsystem-compile` — они регистрируют автоматически |
|
||||||
| `remove-childObject` | `Type.Name` (batch `;;`) | Удалить объект из ChildObjects |
|
| `remove-childObject` | `Type.Name` (batch `;;`) | Удалить объект из ChildObjects |
|
||||||
| `sort-childObjects` | вид, напр. `Catalog` (batch `;;`), либо пусто | Упорядочить ChildObjects по имени внутри вида. Без значения — все виды, кроме тех, где порядок несёт смысл (см. reference) |
|
| `sort-childObjects` | вид, напр. `Catalog` (batch `;;`), либо пусто | Упорядочить ChildObjects по имени внутри вида. Без значения — все виды, кроме четырёх (см. reference) |
|
||||||
| `add-defaultRole` | `Role.Name` или `Name` | Добавить роль по умолчанию |
|
| `add-defaultRole` | `Role.Name` или `Name` | Добавить роль по умолчанию |
|
||||||
| `remove-defaultRole` | `Role.Name` или `Name` | Удалить роль по умолчанию |
|
| `remove-defaultRole` | `Role.Name` или `Name` | Удалить роль по умолчанию |
|
||||||
| `set-defaultRoles` | Имена через `;;` | Заменить список ролей по умолчанию |
|
| `set-defaultRoles` | Имена через `;;` | Заменить список ролей по умолчанию |
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ Batch: `"Catalog.Товары ;; Document.Заказ ;; Enum.ВидыОплат"
|
|||||||
-Operation sort-childObjects -Value "Catalog ;; Role"
|
-Operation sort-childObjects -Value "Catalog ;; Role"
|
||||||
```
|
```
|
||||||
|
|
||||||
Виды, где порядок несёт смысл, пропускаются, пока не названы явно: `CommonAttribute` (порядок разделителей задаёт порядок параметров сеанса), `Subsystem` и `CommandGroup` (порядок в панели), `Language` (порядок мультиязычных строк).
|
Не сортируются, пока вид не назван явно: `CommonAttribute`, `Subsystem`, `CommandGroup`, `Language`.
|
||||||
|
|
||||||
Вызов **без значения** дополнительно ставит сами группы видов в канонический порядок — тот, в котором их пишет платформа. Вызов с явным видом этого не делает: он трогает только имена внутри названного вида.
|
Вызов без значения дополнительно ставит группы видов в канонический порядок; вызов с явным видом трогает только имена внутри него.
|
||||||
|
|
||||||
## add-defaultRole / remove-defaultRole / set-defaultRoles
|
## add-defaultRole / remove-defaultRole / set-defaultRoles
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
[CmdletBinding(PositionalBinding=$false)]
|
[CmdletBinding(PositionalBinding=$false)]
|
||||||
param(
|
param(
|
||||||
@@ -551,12 +551,12 @@ function Sort-MetadataNames([string[]]$names) {
|
|||||||
return $out.ToArray()
|
return $out.ToArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
# Упорядочить <ChildObjects> по имени внутри вида.
|
# Упорядочить <ChildObjects>: имена внутри вида, а без аргумента — и группы видов.
|
||||||
# Без значения — все виды, кроме Subsystem (порядок подсистем в дереве задаёт порядок
|
# Виды из Test-OrderSensitiveType по имени не сортируются, пока не названы явно.
|
||||||
# разделов в панели, пока их не перечислили в <SubsystemsOrder>); явно названный вид
|
# Вызов без значения дополнительно ставит группы видов в канонический порядок: платформа
|
||||||
# сортируется в любом случае. Взаимный порядок видов не трогаем: платформа приводит его
|
# починила бы его только при загрузке-выгрузке, то есть неканоничный файл даёт диф на
|
||||||
# к своему при первой же выгрузке. Переставляем ЗНАЧЕНИЯ узлов, а не сами узлы — отступы
|
# ровном месте. Переставляем ЗНАЧЕНИЯ узлов, а не сами узлы — отступы и структура файла
|
||||||
# и структура файла остаются как были, меняются только имена в строках.
|
# остаются как были, в дифе только перестановка строк.
|
||||||
function Do-SortChildObjects([string]$batchVal) {
|
function Do-SortChildObjects([string]$batchVal) {
|
||||||
if (-not $script:childObjsEl) { Write-Error "No <ChildObjects> element found"; exit 1 }
|
if (-not $script:childObjsEl) { Write-Error "No <ChildObjects> element found"; exit 1 }
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
@@ -855,13 +855,13 @@ def main():
|
|||||||
info(f"Added: {type_name}.{obj_name_val}")
|
info(f"Added: {type_name}.{obj_name_val}")
|
||||||
|
|
||||||
def do_sort_child_objects(batch_val):
|
def do_sort_child_objects(batch_val):
|
||||||
"""Упорядочить <ChildObjects> по имени внутри вида.
|
"""Упорядочить <ChildObjects>: имена внутри вида, а без аргумента — и группы видов.
|
||||||
|
|
||||||
Без значения — все виды, кроме Subsystem (порядок подсистем в дереве задаёт порядок
|
Виды из is_order_sensitive_type по имени не сортируются, пока не названы явно.
|
||||||
разделов в панели, пока их не перечислили в <SubsystemsOrder>); явно названный вид
|
Вызов без значения дополнительно ставит группы видов в канонический порядок: платформа
|
||||||
сортируется в любом случае. Взаимный порядок видов не трогаем: платформа приводит его
|
починила бы его только при загрузке-выгрузке, то есть неканоничный файл даёт диф на
|
||||||
к своему при первой же выгрузке. Переставляем ЗНАЧЕНИЯ узлов, а не сами узлы —
|
ровном месте. Переставляем ЗНАЧЕНИЯ узлов, а не сами узлы — отступы и структура файла
|
||||||
отступы и структура файла остаются как были, меняются только имена в строках.
|
остаются как были, в дифе только перестановка строк.
|
||||||
"""
|
"""
|
||||||
nonlocal modify_count
|
nonlocal modify_count
|
||||||
if child_objs_el is None:
|
if child_objs_el is None:
|
||||||
|
|||||||
@@ -163,13 +163,13 @@
|
|||||||
|
|
||||||
**Порядок имён** — как в дереве Конфигуратора: регистр не учитывается, подчёркивание раньше цифр, цифры раньше букв, латиница раньше кириллицы, `ё` на месте `е`. Сравнение реализовано ключом «ранг+символ», а не культурными таблицами ОС, поэтому PowerShell- и Python-порты дают одинаковый результат на любой платформе.
|
**Порядок имён** — как в дереве Конфигуратора: регистр не учитывается, подчёркивание раньше цифр, цифры раньше букв, латиница раньше кириллицы, `ё` на месте `е`. Сравнение реализовано ключом «ранг+символ», а не культурными таблицами ОС, поэтому PowerShell- и Python-порты дают одинаковый результат на любой платформе.
|
||||||
|
|
||||||
**Четыре вида поле не затрагивает** — они всегда дописываются в конец, и массовая сортировка их тоже пропускает. Упорядочить их можно, только назвав вид явно.
|
**Четыре вида поле не затрагивает** — новый объект просто дописывается в конец своей группы, и массовая сортировка их имена тоже не трогает. Положения самой группы это не касается: она всегда встаёт в канонический порядок видов. Упорядочить их можно, только назвав вид явно.
|
||||||
|
|
||||||
- `CommonAttribute` — исключение самого стандарта: у общих реквизитов-разделителей порядок в дереве задаёт порядок установки параметров сеанса.
|
- `CommonAttribute` — исключение самого стандарта: у общих реквизитов-разделителей порядок в дереве задаёт порядок установки параметров сеанса.
|
||||||
- `Subsystem` и `CommandGroup` — пока они не перечислены в `<SubsystemsOrder>` / `<GroupsOrder>` файла `Ext/CommandInterface.xml`, порядок в дереве задаёт порядок в интерфейсе, а платформа эти списки сама не заводит: в выгрузке ACC вне `GroupsOrder` 15 живых групп из 39, а `SubsystemsOrder` не появляется, пока интерфейс не настроен руками.
|
- `Subsystem` и `CommandGroup` — пока они не перечислены в `<SubsystemsOrder>` / `<GroupsOrder>` файла `Ext/CommandInterface.xml`, порядок в дереве задаёт порядок в интерфейсе, а платформа эти списки сама не заводит: в выгрузке ACC вне `GroupsOrder` 15 живых групп из 39, а `SubsystemsOrder` не появляется, пока интерфейс не настроен руками.
|
||||||
- `Language` — порядок языков задаёт порядок `<v8:item>` в мультиязычных строках по всей выгрузке.
|
- `Language` — порядок языков задаёт порядок `<v8:item>` в мультиязычных строках по всей выгрузке.
|
||||||
|
|
||||||
**Что поле не делает.** Оно влияет только на новые записи и не приводит в порядок уже накопленное — для этого есть `/cf-edit -Operation sort-childObjects` (без значения он заодно ставит группы видов в канонический порядок). `byName` к тому же предполагает, что список уже упорядочен: объект встаёт перед первым объектом своего вида, чьё имя больше. Взаимный порядок групп видов навыки не меняют вовсе: платформа приводит его к своему при первой же выгрузке.
|
**Что поле не делает.** Оно влияет только на новые записи и не приводит в порядок уже накопленное — для этого есть `/cf-edit -Operation sort-childObjects` (без значения он заодно ставит группы видов в канонический порядок). `byName` к тому же предполагает, что список уже упорядочен: объект встаёт перед первым объектом своего вида, чьё имя больше.
|
||||||
|
|
||||||
**Объекты с префиксом `Удалить`** стандарт разрешает держать в конце ветки. Навыки их не выделяют и ставят по алфавиту — это стандарту не противоречит, и типовые конфигурации поступают так же (в ACC 360 таких объектов из 373 стоят по алфавиту, а не в хвосте).
|
**Объекты с префиксом `Удалить`** стандарт разрешает держать в конце ветки. Навыки их не выделяют и ставят по алфавиту — это стандарту не противоречит, и типовые конфигурации поступают так же (в ACC 360 таких объектов из 373 стоят по алфавиту, а не в хвосте).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user