В конфигурациях 1С (например, 1С:Управление торговлей 11), использующих подсистемы Библиотеки Стандартных Подсистем (БСП), в журнале регистрации могут регулярно возникать пачки сообщений с ошибками обновления ролей. При этом в названии роли фигурирует символ вопросительного знака, например: ? ЧтениеКорректировокРеализаций.
Рассмотрим подробно причины возникновения этой проблемы и разберем по шагам действенные способы её устранения.
Проанализируем механику работы подсистемы «Управление доступом» БСП:
? автоматически добавляется подсистемой БСП в тех случаях, когда внутри элемента справочника ПрофилиГруппДоступа осталась ссылка на роль, которой физически больше нет в конфигурации с таким идентификатором (она была переименована, удалена или пересоздана заново)./C ЗапуститьОбновлениеИнформационнойБазы выполняет глобальные обработчики обновления, но не очищает устаревшие текстовые строки ролей внутри уже созданных пользователями профилей групп доступа.Разберем самый простой и быстрый способ решения проблемы без написания специализированного кода:
ПрофилиГруппДоступа (или Профили групп доступа).?. Это означает, что система не может найти соответствие роли в метаданных.Если визуально в профиле ролей с ошибками не видно или изменение флажков не дает результата, требуется принудительно обновить служебные данные БСП. Выполним вызов методов подсистемы с помощью внешней обработки или консоли кода:
// Обновляем данные в справочнике идентификаторов объектов метаданных
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
// Выполняем полное заполнение состава групп доступа
УправлениеДоступом.ЗаполнитьСоставГруппДоступа();
Метод ОбновитьДанныеСправочника() сопоставит физические роли из дерева метаданных конфигуратора с записями в справочнике ИдентификаторыОбъектовМетаданных, а метод ЗаполнитьСоставГруппДоступа() актуализирует права пользователей.
Выясним причину возникновения ошибки в конфигураторе, если стандартные методы не помогают:
Управление доступом.Роль не найдена в метаданных.В случаях, когда профиль групп доступа поврежден и содержит множественные битые ссылки: