...

Фильтр по объектам в скрипте и доступ к их свойствам

Тема в разделе "Вопросы по функционалу", создана пользователем RChernov, 21 июн 2022.

  1. RChernov

    RChernov New Member

    Всем привет! Есть вопрос по работе с фильтрами из скрипта. Имеется следующий кейс: в блоке-сценарии внутри процесса необходимо извлечь первые 2 регистра номера ИНН клиента, произвести по ним поиск в справочнике, вернуть соответствующее значение региона (строка) и присвоить его контекстной переменной. С поиском все ок но не понимаю как в возвращенной коллекции (на сколько я понял возвращается именно она) в 5-ой строке обратиться к свойству RegionName и присвоить его контекстной переменной?

    С ELMA работаю недавно и с C# не очень дружен...

    В процессе есть еще несколько аналогичных кейсов с более сложными условиями выборки.

    Спасибо!

    Код:
    public virtual void Izvlechenie_koda_regiona_iz_INN(Context context)
            {
                // Преобразуем значение контекстной переменной в строку, извлекаем из нее первые 2 символа и передаем в служебную переменную:
                string region_code = context.INNKlienta.ToString().Substring(0,2);
                // Формируем строку запроса EQL с подстановкой параметра:
                string query_statement = string.Format("KodRegiona = '{0}'", region_code);
                // Создаем определение фильтра для объекта:
                var filter = PublicAPI.Objects.UserObjects.UserKodyRegionov.Filter().Query(query_statement).Filter;
                // Применяем созданный фильтр для объекта. Указываем параметр ограничения выборки FetchOptions.First - только первые значения:
                var query_with_filter = PublicAPI.Objects.UserObjects.UserKodyRegionov.Find(filter, FetchOptions.First);
                // Присваиваем найденое значение запросом значение контекстной переменной:
                context.RegionDostavki = query_with_filter???;
    
     
  2. v.snegirev

    v.snegirev New Member

    Приветствую, коллеги. Если переменная - коллекция, то и работать с ней нужно соответственно. Например, через foreach. То есть:
    foreach (var e in query_with_filter){
    context.Stroka = e.<свойство>;
    }
     

Поделиться: