Files
cc-1c-skills/tests/skills/cases/role-compile/rights-datahistory-process.json
T
Nick ShirokovandClaude Opus 5 bbc3be55a5 feat(role-compile): порядок прав и узлов как у платформы
Платформа нормализует и то и другое: права внутри <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
2026-09-13 17:01:54 +03:00

26 lines
1.2 KiB
JSON

{
"name": "Права истории данных у бизнес-процесса, задачи, ПВР и регистра расчёта (сверено с платформой)",
"setup": "fixture:rights-datahistory-process-fx",
"input": {
"name": "ИсторияДанныхПроцессов",
"synonym": "История данных процессов",
"objects": [
"BusinessProcess.Согласование: Read, ReadDataHistory, ViewDataHistory, InteractiveDeleteMarked",
"Task.ЗадачаИсполнителя: Read, UpdateDataHistorySettings, SwitchToDataHistoryVersion",
"ChartOfCalculationTypes.Начисления: Read, EditDataHistoryVersionComment, InteractiveDeleteMarked",
"CalculationRegister.Начисление: Read, Update, View, Edit"
]
},
"validatePath": "Roles/ИсторияДанныхПроцессов",
"expect": {
"files": [
"Roles/ИсторияДанныхПроцессов.xml",
"Roles/ИсторияДанныхПроцессов/Ext/Rights.xml"
],
"fileContains": {
"file": "Roles/ИсторияДанныхПроцессов/Ext/Rights.xml",
"text": "SwitchToDataHistoryVersion"
}
}
}