Оставлю это здесь - может тоже пригодится. БСП, как оказалось, также добавляет роли по умолчанию из расшерения. В частности для Инфостарт Тулкит роль ИТК_Полные права. Поскольку, я не хочу, чтобы полноправные пользователи видели Тулкит в интерфейсе, то долго бился над этой проблемой.
Справочник ПрофилиГруппДоступа - модуль менеджера
ИзменениеИКонтроль("ПодготовленныеСтандартныеРолиРасширенийСеанса")
Функция VD_ПодготовленныеСтандартныеРолиРасширенийСеанса()
Результат = Новый Структура;
Результат.Вставить("ОбщиеПрава", Новый Массив);
Результат.Вставить("БазовыеПрава", Новый Массив);
Результат.Вставить("БазовыеПраваВнешнихПользователей", Новый Массив);
Результат.Вставить("АдминистраторСистемы", Новый Массив);
Результат.Вставить("ПолныеПрава", Новый Массив);
Результат.Вставить("Все", Новый Соответствие);
Результат.Вставить("ДополнительныеРолиАдминистратора", Новый Соответствие);
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
Для Каждого Роль Из Метаданные.Роли Цикл
Расширение = Роль.РасширениеКонфигурации();
Если Расширение = Неопределено Тогда
Продолжить;
КонецЕсли;
ИмяРоли = Роль.Имя;
Если СтрЗаканчиваетсяНа(ВРег(ИмяРоли), ВРег("ОбщиеПрава")) Тогда
Результат.ОбщиеПрава.Добавить(ИмяРоли);
Результат.ДополнительныеРолиАдминистратора.Вставить(ИмяРоли, Истина);
Результат.Все.Вставить(ИмяРоли, "ОбщиеПрава");
#Удаление
ИначеЕсли СтрЗаканчиваетсяНа(ВРег(ИмяРоли), ВРег("ПолныеПрава")) Тогда
Результат.ПолныеПрава.Добавить(ИмяРоли);
Результат.ДополнительныеРолиАдминистратора.Вставить(ИмяРоли, Истина);
Результат.Все.Вставить(ИмяРоли, "ПолныеПрава");
#КонецУдаления
ИначеЕсли СтрЗаканчиваетсяНа(ВРег(ИмяРоли), ВРег("БазовыеПрава")) Тогда
Результат.БазовыеПрава.Добавить(ИмяРоли);
Результат.Все.Вставить(ИмяРоли, "БазовыеПрава");
ИначеЕсли СтрЗаканчиваетсяНа(ВРег(ИмяРоли), ВРег("БазовыеПраваВнешнихПользователей")) Тогда
Результат.БазовыеПраваВнешнихПользователей.Добавить(ИмяРоли);
Результат.Все.Вставить(ИмяРоли, "БазовыеПраваВнешнихПользователей");
ИначеЕсли СтрЗаканчиваетсяНа(ВРег(ИмяРоли), ВРег("АдминистраторСистемы")) Тогда
Результат.АдминистраторСистемы.Добавить(ИмяРоли);
Результат.Все.Вставить(ИмяРоли, "АдминистраторСистемы");
Если Не РазделениеВключено Тогда
Результат.ДополнительныеРолиАдминистратора.Вставить(ИмяРоли, Истина);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ОбщегоНазначения.ФиксированныеДанные(Результат);
КонецФункции
Показать