mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 17:25:52 +03:00
fix(role-compile,role-edit): шесть находок ревью
1. Резолв uuid вложенного объекта переписан со сквозной регулярки на спуск по дереву. Поиск по всему файлу брал первый узел с подходящим именем, а реквизит шапки и реквизит табличной части сплошь и рядом называются одинаково — ключ сортировки был чужим и вдобавок дублировался, из-за чего порты могли разложить узлы по-разному. Дочерние подсистемы лежат отдельными файлами и не резолвились вовсе: 431 узел в ролях ACC. Теперь на реальной роли резолвится 90% узлов, остальное — стандартные реквизиты, у которых uuid в выгрузке нет. Для них предупреждение больше не печатается: это норма, а не потеря. 2. Фильтр умолчаний уносил право вместе с его ограничением RLS: условие пропадало молча. Право с ограничением отличается от умолчания самим ограничением и остаётся. 3. modify-property не обновлял кэш умолчаний, и следующие операции того же вызова фильтровали по старому флагу — запись попадала в файл ровно вопреки тому, о чём навык сам предупреждает. 4. Edit-RoleMetadata перечитывал Roles/Имя.xml на каждой операции, и в пакете первая правка молча терялась: set-synonym + set-comment сохранял только комментарий. В py-порте такого не было — расхождение портов закрыто. 5. Атрибуция сообщения в PS шла подстрокой по всему списку отброшенного, из-за чего причина приписывалась чужому объекту. Теперь префиксное сравнение, как в py. Три новых кейса, семьи get_rights_object_uuid и is_standard_kind заведены в check-inline-drift. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FGkXwoXTuafcu1SXMsauFq
This commit is contained in:
co-authored by
Claude Opus 5
parent
5ec732e12b
commit
5b00410485
@@ -411,6 +411,14 @@ const FAMILIES = [
|
||||
// не должно — ps1: null.
|
||||
// Замыкание прав и фильтр значений по умолчанию: обе роли обязаны считать одинаково, иначе
|
||||
// созданная и отредактированная роль разойдутся между собой и с платформой.
|
||||
{
|
||||
name: 'права роли: get_rights_object_uuid', py: 'get_rights_object_uuid', ps1: 'Get-RightsObjectUuid',
|
||||
variants: [{ id: 'base', authority: 'role-compile', consumers: ['role-edit'] }],
|
||||
},
|
||||
{
|
||||
name: 'права роли: is_standard_kind', py: 'is_standard_kind', ps1: 'Test-StandardKind',
|
||||
variants: [{ id: 'base', authority: 'role-compile', consumers: ['role-edit'] }],
|
||||
},
|
||||
{
|
||||
name: 'права роли: close_rights_dependencies', py: 'close_rights_dependencies', ps1: 'Close-RightsDependencies',
|
||||
variants: [{ id: 'base', authority: 'role-compile', consumers: ['role-edit'] }],
|
||||
|
||||
Reference in New Issue
Block a user