mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-18 15:45:52 +03:00
Платформа нормализует и то и другое: права внутри <object> идут в фиксированном для типа порядке, сами <object> — по uuid объекта метаданных. Навык писал в порядке ввода, поэтому первая же выгрузка из Конфигуратора давала диф, которого никто не делал. Замеры (debug/role-edit/FINDINGS.md): канон прав снят с платформы и сошёлся с топологической сортировкой по корпусу (~290k узлов <right>); порядок узлов по uuid подтверждён на 363 ролях ACC из 363 и отдельно на 44 ролях с вложенными объектами, где ключ — uuid самого реквизита. Порядок дерева конфигурации тут ни при чём — прямое сравнение с ChildObjects даёт скачущие позиции. Проверка: выход обоих портов совпал с выгрузкой 1С байт в байт. Сортировка узлов строго ordinal: Sort-Object сравнивает по культуре и игнорирует дефис, из-за чего порядок разошёлся бы и с платформой, и с py-портом. Объект, которого нет в выгрузке (uuid неизвестен), уходит в конец с предупреждением в stderr — платформа переставит его сама. Кейсы с несколькими объектами переведены с preRun на фикстуры: uuid, который meta-compile генерирует заново на каждом прогоне, сделал бы порядок узлов плавающим. Фикстуры собраны теми же навыками. Двум фикстурам добавлен документ-регистратор: регистр расчёта без него платформа не принимает, и verify-snapshots это поймал. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FGkXwoXTuafcu1SXMsauFq
28 lines
640 B
JSON
28 lines
640 B
JSON
{
|
|
"name": "Роль с базовыми правами",
|
|
"setup": "fixture:basic-role-fx",
|
|
"input": {
|
|
"name": "Кладовщик",
|
|
"objects": [
|
|
"Catalog.Товары: Read, View"
|
|
]
|
|
},
|
|
"validatePath": "Roles/Кладовщик",
|
|
"expect": {
|
|
"files": [
|
|
"Roles/Кладовщик.xml",
|
|
"Roles/Кладовщик/Ext/Rights.xml"
|
|
],
|
|
"preserves": {
|
|
"file": "Roles/Кладовщик/Ext/Rights.xml",
|
|
"bom": true,
|
|
"eol": "crlf",
|
|
"encoding": "UTF-8",
|
|
"finalNewline": false,
|
|
"noCR13": true,
|
|
"selfClose": "tight",
|
|
"noEmptyPairs": true
|
|
}
|
|
}
|
|
}
|