...

Работа с группами пользователей и переменной типа "Пользователи"

Тема в разделе "Примеры сценариев", создана пользователем c_trunk, 2 фев 2022.

  1. c_trunk

    c_trunk Участник

    Заполнение списка нужных групп на форме ввода при создании\загрузке формы. Поиск групп идет в порядке их внесения в базу, есть подозрение, что выдаются даже группы из удаленных разделов и приложений... От найденных наименований групп откусим лишнее для формирования приличного имени и добавим его в переменную типа Категория.
    Код:
    
    async function onInit() {
        
    Context.fields.a_deplist.data.variants = []; //Переменная TEnum - список групп на форме приложения
        
    var i:number 0;
        var 
    s:string ';';
        
    //Выборка групп по вхождению подстроки в имя группы
        
    const GrpItems await System.userGroups.search().where(ug => ug.__name.like('блабла')).all();
        
    //Перебор найденного
        
    for (let GrpItem of GrpItems) {
            
    //Контроль дублей...
            
    if (s.indexOf(';'+GrpItem.data.__name+';') < 0) {
                
    Context.fields.a_deplist.data.variants.push({code:'a_num'+i,name:GrpItem.data.__name.substring(6)}); //Вырежем первые 6 символов "ключа" поиска блабла
                
    += 1;
                
    += GrpItem.data.__name+';';
            }       
        }
    }
    Функция выбора пользователей из групп и заполнение переменной типа "Пользователи". По списку наименований с формы ввода формируем уникальное наименование группы и ищем ее. Выбираем первого попавшегося пользователя, входящего в нее, и заносим его в массив пользователей...
    Код:
    
    async function OnDepartChange(): Promise<void> {
        var 
    groupNamestring '';
        var 
    perflist await Context.data.a_deplist////Переменная TEnum - список выбранных групп на форме ввода
        
    var UserRefsUserItemRef[] = [];
        
    Context.data.a_performers=[]; //Контекстная переменная для найденных пользователей
     
        //Цикл по списку выбранных групп
        
    for (let i 0perflist!.lengthi++) {
            
    groupName 'блабла'+perflist!.name//Формируем уникальное имя для поиска
          
            //Первая найденная группа
            
    const GrpItem await System.userGroups.search().where(ug => ug.__name.eq(groupName)).first();
            if (
    GrpItem) {
                const 
    CurUser await System.users.search().where(=> u.groupIds.has(GrpItem)).first(); //Поиск первого пользователя, входящего в группу
                
    if (CurUser) {
                    
    UserRefs.push(CurUser); //Заносим пользователей в промежуточный массив
                
    }
            }
        }
        
    Context.data.a_performers=UserRefs;  //Присваиваем значение контекстной переменной "Пользователи"     
    }
    Последнее редактирование: 2 фев 2022