Заполнение списка нужных групп на форме ввода при создании\загрузке формы. Поиск групп идет в порядке их внесения в базу, есть подозрение, что выдаются даже группы из удаленных разделов и приложений... От найденных наименований групп откусим лишнее для формирования приличного имени и добавим его в переменную типа Категория.
Код:
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 символов "ключа" поиска блабла
i += 1;
s += GrpItem.data.__name+';';
}
}
}
Функция выбора пользователей из групп и заполнение переменной типа "Пользователи". По списку наименований с формы ввода формируем уникальное наименование группы и ищем ее. Выбираем первого попавшегося пользователя, входящего в нее, и заносим его в массив пользователей...
Код:
async function OnDepartChange(): Promise<void> {
var groupName: string = '';
var perflist = await Context.data.a_deplist; ////Переменная TEnum - список выбранных групп на форме ввода
var UserRefs: UserItemRef[] = [];
Context.data.a_performers=[]; //Контекстная переменная для найденных пользователей
//Цикл по списку выбранных групп
for (let i = 0; i < perflist!.length; i++) {
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 => u.groupIds.has(GrpItem)).first(); //Поиск первого пользователя, входящего в группу
if (CurUser) {
UserRefs.push(CurUser); //Заносим пользователей в промежуточный массив
}
}
}
Context.data.a_performers=UserRefs; //Присваиваем значение контекстной переменной "Пользователи"
}