Ошибка при работе с обработкой "Обновление вспомогательных данных": "Роль ИмяРоли содержит право Изменение / Добавление неразделенного объекта ИмяОбъекта".

У меня ошибка возникала на нетиповых ролях. Она означает, что в разделенной информационной базе (даже если возможность явно не используется) прикладная (бизнес) роль предоставляет пользователю полные права на неразделенный объект (метаданные).
Можно, конечно, забрать такие права у нетиповых ролей, но в нашем случае они оказались нужны. Второй простой способ игнорировать данную ошибку, это запускать обработку "Обновление вспомогательных данных" со сложной настройкой и без флага "Проверить назначение ролей"

Но в конфигурации (1С:ERP.УХ 3.2.8.22) есть типовые прикладные роли, которые тоже дают права на Изменение и Добавление тех же объектов и при этом обработка "Обновление вспомогательных данных" на них не ругается.
Решение описано в документации БСП. Для своих ролей необходимо переопределить назначение в общем модуле ПользователиПереопределяемый в процедуре ПриОпределенииНазначенияРолей. У процедуры есть подробное описание за что какой массив ролей отвечает, остается выбрать нужный массив для роли (см. документацию БСП или описание процедуры)

Мне был необходим массив ТолькоДляПользователейСистемы (описание из документации ИТС):

Поэтому в конец процедуры надо было добавить такой код:

И все бы хорошо, но мы ведем доработку через расширения, а после добавления кода при запуске обработки "Обновления вспомогательных данных" ошибки не пропали, а рабочее расширение игнорировалось (сталкивалась ранее с аналогичным поведением этой обработки для настройки "Варианты отчетов", но тогда нетиповой отчет был добавлен в основную конфигурацию и можно было дописать нужные процедуры в модулях отчета, типовой код править не пришлось и расширение не пригодилось). В этот раз не хотелось снимать типовые модули с поддержки. Причем при вызове этой же процедуры из другой внешней обработки код из расширения отработал. Дело оказалось в том, что у длительной операции есть параметры "Без расширения" и "СРасширениямиБазыДанных", которые где-то назначены.

Для конкретного случая параметр БезРасширений был задан в модуле менеджера ПараметрыРаботыПрограммы в процедуре ВыполнитьОбновлениеНеразделяемыхДанныхВФоне

И еще одна проверка на наличие расширений в том же модуле менеджера в процедуре ОбработчикДлительнойОперацииВыполнитьОбновлениеНеразделенныхДанных:

После этих трех правок расширение отработало и ошибки ушли.
Вступайте в нашу телеграмм-группу Инфостарт