docs(skills): Language исключён из сортировки без замера — так и написать

В комментарии семьи is_order_sensitive_type и в гайде причина исключения Language была
подана как установленная: «порядок языков задаёт порядок <v8:item> в мультиязычных
строках по всей выгрузке». Это гипотеза, высказанная при обсуждении, и мы её не
проверяли. Основания у четырёх исключений разные, и теперь это видно: CommonAttribute —
исключение самого стандарта, Subsystem и CommandGroup — замер по корпусу (в ACC 15 живых
групп команд из 39 вне GroupsOrder), Language — осторожность без замера.

Правка задевает тело семьи, поэтому идёт по всем пяти навыкам в обоих портах.

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:37:15 +03:00
co-authored by Claude Opus 5
parent e48599164e
commit 4fa57c73b5
11 changed files with 31 additions and 31 deletions
+3 -3
View File
@@ -1,4 +1,4 @@
# cf-edit v1.27 — Edit 1C configuration root (Configuration.xml) # cf-edit v1.28 — 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(
@@ -495,8 +495,8 @@ function Get-NewObjectPosition([string]$cfgDir) {
# порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: # порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
# пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, # пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
# порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит # порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
# (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт # (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
# порядок <v8:item> в мультиязычных строках по всей выгрузке. # без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
# Явно названный вид сортируется в любом случае. # Явно названный вид сортируется в любом случае.
# Реестр семьи: tests/skills/check-inline-drift.mjs. # Реестр семьи: tests/skills/check-inline-drift.mjs.
function Test-OrderSensitiveType([string]$typeName) { function Test-OrderSensitiveType([string]$typeName) {
+3 -3
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# cf-edit v1.27 — Edit 1C configuration root (Configuration.xml) # cf-edit v1.28 — 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
@@ -393,8 +393,8 @@ def is_order_sensitive_type(type_name):
порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
(в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
порядок <v8:item> в мультиязычных строках по всей выгрузке. без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
Явно названный вид сортируется в любом случае. Явно названный вид сортируется в любом случае.
Реестр семьи: tests/skills/check-inline-drift.mjs. Реестр семьи: tests/skills/check-inline-drift.mjs.
""" """
@@ -1,4 +1,4 @@
# cfe-borrow v1.35 — Borrow objects from configuration into extension (CFE) # cfe-borrow v1.36 — Borrow objects from configuration into extension (CFE)
# 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(
@@ -2296,8 +2296,8 @@ function Get-NewObjectPosition([string]$cfgDir) {
# порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: # порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
# пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, # пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
# порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит # порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
# (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт # (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
# порядок <v8:item> в мультиязычных строках по всей выгрузке. # без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
# Явно названный вид сортируется в любом случае. # Явно названный вид сортируется в любом случае.
# Реестр семьи: tests/skills/check-inline-drift.mjs. # Реестр семьи: tests/skills/check-inline-drift.mjs.
function Test-OrderSensitiveType([string]$typeName) { function Test-OrderSensitiveType([string]$typeName) {
@@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# cfe-borrow v1.35 — Borrow objects from configuration into extension (CFE) # cfe-borrow v1.36 — Borrow objects from configuration into extension (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse import argparse
@@ -257,8 +257,8 @@ def is_order_sensitive_type(type_name):
порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
(в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
порядок <v8:item> в мультиязычных строках по всей выгрузке. без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
Явно названный вид сортируется в любом случае. Явно названный вид сортируется в любом случае.
Реестр семьи: tests/skills/check-inline-drift.mjs. Реестр семьи: tests/skills/check-inline-drift.mjs.
""" """
@@ -1,4 +1,4 @@
# meta-compile v1.101 — Compile 1C metadata object from JSON # meta-compile v1.102 — Compile 1C metadata object from JSON
# 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(
@@ -5273,8 +5273,8 @@ function Get-NewObjectPosition([string]$cfgDir) {
# порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: # порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
# пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, # пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
# порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит # порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
# (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт # (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
# порядок <v8:item> в мультиязычных строках по всей выгрузке. # без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
# Явно названный вид сортируется в любом случае. # Явно названный вид сортируется в любом случае.
# Реестр семьи: tests/skills/check-inline-drift.mjs. # Реестр семьи: tests/skills/check-inline-drift.mjs.
function Test-OrderSensitiveType([string]$typeName) { function Test-OrderSensitiveType([string]$typeName) {
@@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# meta-compile v1.101 — Compile 1C metadata object from JSON # meta-compile v1.102 — Compile 1C metadata object from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse import argparse
@@ -5248,8 +5248,8 @@ def is_order_sensitive_type(type_name):
порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
(в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
порядок <v8:item> в мультиязычных строках по всей выгрузке. без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
Явно названный вид сортируется в любом случае. Явно названный вид сортируется в любом случае.
Реестр семьи: tests/skills/check-inline-drift.mjs. Реестр семьи: tests/skills/check-inline-drift.mjs.
""" """
@@ -1,4 +1,4 @@
# role-compile v1.34 — Compile 1C role from JSON # role-compile v1.35 — Compile 1C role from JSON
# 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(
@@ -1224,8 +1224,8 @@ function Get-NewObjectPosition([string]$cfgDir) {
# порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: # порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
# пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, # пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
# порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит # порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
# (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт # (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
# порядок <v8:item> в мультиязычных строках по всей выгрузке. # без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
# Явно названный вид сортируется в любом случае. # Явно названный вид сортируется в любом случае.
# Реестр семьи: tests/skills/check-inline-drift.mjs. # Реестр семьи: tests/skills/check-inline-drift.mjs.
function Test-OrderSensitiveType([string]$typeName) { function Test-OrderSensitiveType([string]$typeName) {
@@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# role-compile v1.34 — Compile 1C role from JSON # role-compile v1.35 — Compile 1C role from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse import argparse
import json import json
@@ -1095,8 +1095,8 @@ def is_order_sensitive_type(type_name):
порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
(в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
порядок <v8:item> в мультиязычных строках по всей выгрузке. без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
Явно названный вид сортируется в любом случае. Явно названный вид сортируется в любом случае.
Реестр семьи: tests/skills/check-inline-drift.mjs. Реестр семьи: tests/skills/check-inline-drift.mjs.
""" """
@@ -1,4 +1,4 @@
# xdto-compile v1.14 — Build a 1C XDTO package from an XML Schema (XSD) (+support-guard: общая реализация вместо урезанной) # xdto-compile v1.15 — Build a 1C XDTO package from an XML Schema (XSD) (+support-guard: общая реализация вместо урезанной)
# 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(
@@ -1032,8 +1032,8 @@ function Get-NewObjectPosition([string]$cfgDir) {
# порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: # порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
# пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, # пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
# порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит # порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
# (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт # (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
# порядок <v8:item> в мультиязычных строках по всей выгрузке. # без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
# Явно названный вид сортируется в любом случае. # Явно названный вид сортируется в любом случае.
# Реестр семьи: tests/skills/check-inline-drift.mjs. # Реестр семьи: tests/skills/check-inline-drift.mjs.
function Test-OrderSensitiveType([string]$typeName) { function Test-OrderSensitiveType([string]$typeName) {
@@ -1,4 +1,4 @@
# xdto-compile v1.14 — Build a 1C XDTO package from an XML Schema (XSD) (Python port) (+support-guard: общая реализация вместо урезанной) # xdto-compile v1.15 — Build a 1C XDTO package from an XML Schema (XSD) (Python port) (+support-guard: общая реализация вместо урезанной)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse import argparse
import json import json
@@ -1145,8 +1145,8 @@ def is_order_sensitive_type(type_name):
порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup: порядок в дереве задаёт порядок установки параметров сеанса. Subsystem и CommandGroup:
пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml, пока они не перечислены в <SubsystemsOrder> / <GroupsOrder> файла Ext/CommandInterface.xml,
порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит порядок дерева задаёт порядок в интерфейсе, а платформа эти списки сама не заводит
(в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language: порядок языков задаёт (в выгрузке ACC вне GroupsOrder 15 живых групп из 39). Language исключён из осторожности,
порядок <v8:item> в мультиязычных строках по всей выгрузке. без замера: языков обычно один-два, и в типовых их порядок не алфавитный.
Явно названный вид сортируется в любом случае. Явно названный вид сортируется в любом случае.
Реестр семьи: tests/skills/check-inline-drift.mjs. Реестр семьи: tests/skills/check-inline-drift.mjs.
""" """
+1 -1
View File
@@ -167,7 +167,7 @@
- `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`исключён из осторожности, без замера: языков обычно один-два, порядок в типовых не алфавитный (в ERP сначала русский, потом английский), а что именно зависит от их порядка, мы не проверяли.
**Что поле не делает.** Оно влияет только на новые записи и не приводит в порядок уже накопленное — для этого есть `/cf-edit -Operation sort-childObjects` (без значения он заодно ставит группы видов в канонический порядок). `byName` к тому же предполагает, что список уже упорядочен: объект встаёт перед первым объектом своего вида, чьё имя больше. **Что поле не делает.** Оно влияет только на новые записи и не приводит в порядок уже накопленное — для этого есть `/cf-edit -Operation sort-childObjects` (без значения он заодно ставит группы видов в канонический порядок). `byName` к тому же предполагает, что список уже упорядочен: объект встаёт перед первым объектом своего вида, чьё имя больше.