В начало

Пользователь в группе

 

Если роль нельзя проверить в результате ошибок в идентификаторах объектов метаданных, т.е. функция РольДоступна() ничего не покажет, т.к. роль просто не применится в пользователю, что можно увидеть в конфигураторе, то права можно проверить по группе доступа.

 

Листинг. Модуль

&НаСервере

Функция ПользовательВГруппе(Знач Группа)

                       

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

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

                        "ВЫБРАТЬ

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

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

                        |ИЗ

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

                        |ГДЕ

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

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

           

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

            Запрос.УстановитьПараметр("Пользователь", ПараметрыСеанса.ТекущийПользователь);

           

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

            Выборка = РезЗапр.Выбрать();

           

            Если Выборка.Следующий() Тогда

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

            Иначе

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

            КонецЕсли;

           

КонецФункции//ПользовательВГруппе

 

&НаСервере

Функция ЕстьДоступКОтчету()

 

            Возврат РольДоступна("ЕДС_ДоступКОтчетуИсполнителей") ИЛИ

                    ПользовательВГруппе("Исполнители: доступ к отчету Справка по выполнению");

           

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