Проверка на роль пользователя



Проверяет пользователя на принадлежность его к группе (в которой находится наша роль).

Для данной функции не требуется никаких дополнительных танцев с ролями, простое создание профилей групп, назначение профилям ролей и участников группы.



Функция ЕстьРоль(ИмяРоли, Пользователь = Неопределено) Экспорт



Если Пользователь = Неопределено Тогда

Пользователь = ПользователиКлиентСервер.ТекущийПользователь();

КонецЕсли;



Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ РАЗРЕШЕННЫЕ

| 1

|ИЗ

| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи

| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли

| ПО ГруппыДоступаПользователи.Ссылка.Профиль = ПрофилиГруппДоступаРоли.Ссылка

|ГДЕ

| ПрофилиГруппДоступаРоли.Роль.Имя = &Роль

| И ГруппыДоступаПользователи.Пользователь = &Пользователь";



Запрос.УстановитьПараметр("Пользователь", Пользователь);

Запрос.УстановитьПараметр("Роль", ИмяРоли);



УстановитьПривилегированныйРежим(Истина);

РезультатЗапроса = Запрос.Выполнить();

УстановитьПривилегированныйРежим(Ложь);



Если РезультатЗапроса.Пустой() Тогда

Возврат Ложь;

Иначе

Возврат Истина;

КонецЕсли;



КонецФункции




✍️ @odin1C_rus