Проверяет пользователя на принадлежность его к группе (в которой находится наша роль). Для данной функции не требуется никаких дополнительных танцев с ролями, простое создание профилей групп, назначение профилям ролей и участников группы.
Функция ЕстьРоль(ИмяРоли, Пользователь = Неопределено) Экспорт
Если Пользователь = Неопределено Тогда
Пользователь = ПользователиКлиентСервер.ТекущийПользователь();
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| 1
|ИЗ
| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли
| ПО ГруппыДоступаПользователи.Ссылка.Профиль = ПрофилиГруппДоступаРоли.Ссылка
|ГДЕ
| ПрофилиГруппДоступаРоли.Роль.Имя = &Роль
| И ГруппыДоступаПользователи.Пользователь = &Пользователь";
Запрос.УстановитьПараметр("Пользователь", Пользователь);
Запрос.УстановитьПараметр("Роль", ИмяРоли);
УстановитьПривилегированныйРежим(Истина);
РезультатЗапроса = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
Если РезультатЗапроса.Пустой() Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
НедоступныеРолиПоТипуПользователя (БСП)
ПриОбновленииРолейПользователяИБ (БСП)
ОбновитьРолиПользователей (БСП)