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

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

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

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

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

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

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

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

Функция ГруппыПользователя(Пользователь) Экспорт
    
    ВсеПользователи = Справочники.ГруппыПользователей.ВсеПользователи;

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

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

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

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

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

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

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

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

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

Ваш адрес email не будет опубликован.