Задать вопрос
  • Как правильно проверить профиль группы доступа у пользователя?

    @indefinitumX
    Сделал таким образом + функция определения у пользователя вхождения в ГруппуПользователей

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