При удалении объектов из конфигурации время от времени возникает ситуация, когда по непонятной причине хранилище требует заблокировать еще кучу никак не связанных ролей. При этом при сохранении эти роли фактически не меняются.
Пример. Я удалил только отчет RealEstateObjectsBudgets вместе с его СКД, но для его удаления платформа дополнительно требует захватить роли, которые никак с отчетом не связаны (не регулируют доступность ни к самому отчету, ни к данным, которые он выводит).
После коммита видим, что роли, действительно, не были изменены:
Коллеги, кто-нибудь сталкивался с подобным? Пытаюсь доискаться причин, так захват ролей отнимает кучу времени и, похоже, лишен какого-либо смысла.
(2) dj_serega, время отнимает не захват каждой конкретной роли, а выборочный захват длинного списка почему-то необходимых. По большому счету, этот момент не слишком принципиален – мне важно понять, почему роли вообще требуются для удаления никак не связанного с ними объекта.
(5) Xershi, не вполне понял, это вопрос? Если да, то конфигурация на управляемых формах. Правда, в дереве еще кое-где сохраняются рудименты обычных форм типа объектов интерфейса.
(8) Xershi, то есть мысль следующая – если роль включает право просмотра подсистемы, в которую входит удаляемый объект, то эта роль должна быть захвачена перед удалением объекта. Правильно понял?
(1) bytecoded, Попробовал добавить Объект в конфигурацию. Поместил в хранилище. Потом захватил корень и нужный объект. Все удаляется и никаких дополнительных захватов ролей не требует. Все помещается обратно с изменениями. Ищите связь объекта с ролями. Хранилище тут ни причем.
(12) spacecraft, по такой методике у меня тоже все нормально отрабатывает. Проблема воспроизводится или не всегда, или не для всех объектов. При следующем воспроизведении проверим еще раз и наделаем скринов.
Столкнулся практически с такой же проблемой. После удаления 9 ресурсов из регистра сведений изменения не помещались в хранилище, т.к. система требовала поместить в хранилище еще около 10 нетиповых ролей. Связей между данным регистром и каждой ролью обнаружено не было (да этого в принципе не могло быть, т.к. регистр совсем новый). Помогли следующие действия:
1. Удаление всех записей их регистра сведений (хотя, скорее всего, можно было просто очистить ресурсы, которые требовалось удалить).
2. Захват этих 10 ролей.
После этого изменения по регистру сведений были успешно помещены в хранилище вместе с теми самыми ролями (и, кстати, система вывела сообщения о том, что эти роли не менялись).
Мне кажется это связано с правами на реквизиты объектов. Когда добавляется объект, то права на его реквизиты проставляются в роли (каким-то неявным образом) даже если права на сам объект не выдаются. Поэтому когда объект удаляется, права на реквизиты должны быть также удалены.