Группы пользователей 1с программное получение

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

Получить группы пользователей 1с в Бухгалтерии 2.0

В конфигурации Бухгалтерия 2.0 можно воспользоваться типовой функцией ГруппыПользователя(<Пользователь>), из модуля УправлениеПользователями.

Пример 1. Получим все группы текущего пользователя.

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

 

Получить группы пользователей 1с в Управлении торговлей 11

В конфигурации Управление торговлей 11.1 можно использовать следующую функцию:

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

Эту функцию можно расположить в вашем, не типовом, серверном общем модуле и использовать по мере надобности.

Пример 2. Проверить, принадлежит ли текущий пользователь 1с группе пользователей Розничные продажи (код для серверной процедуры)

ГруппыПользователя = МойОбщийМодульСервер.ГруппыПользователя(ПараметрыСеанса.ТекущийПользователь);
ГруппаРозница = Справочники.ГруппыПользователей.НайтиПоНаименованию("Розничные продажи");

Если Не ГруппаРозница = Неопределено Тогда
    ПользовательРозничныеПродажи = ГруппыПользователя.Найти(ГруппаРозница);

    Если Не ПользовательРозничныеПродажи = Неопределено  Тогда
        //Необходимый вам код
    КонецЕсли;
Конецесли;

Также прочитайте статью: Как программно в 1с прибавить к дате день

Добавить комментарий

Ваш e-mail не будет опубликован.