Имя: Пароль:
1C
 
Обработка элементов справочника по массиву данных
0 falselight
 
04.09.19
05:28
Суть задачи в обработке справочника по списку email адресов.
Адреса считываются с текстового файла. Преобразовываясь в массив электронных адресов.
Теперь нужно находить элементы справочника по этим электронным адресам и производить обработку.
Сделал через НайтиПоРеквизиту(). Но очень длительно работает. Адресов много.
Какие есть методы ускорения этой обработки?
Как это извлечь запросом, передав туда список адресов?

//
//

//
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Если ПереключательМножественныйВыбор = 0 Тогда
        Если ПутьКФайлу <> "" Тогда
            мEMAILАдреса = Новый Массив;
            невалидные_адреса = Новый ЧтениеТекста(ПутьКФайлу);
            Строка = СокрЛП(невалидные_адреса.ПрочитатьСтроку());
            //
            Если Строка <> Неопределено Тогда
                мEMAILАдреса.Добавить(Строка);
            КонецЕсли;
            //
            Пока Строка <> Неопределено Цикл
                Строка = невалидные_адреса.ПрочитатьСтроку();
                Если Строка <> Неопределено Тогда
                    мEMAILАдреса.Добавить(Строка);
                КонецЕсли;
            КонецЦикла;
            //
            НачатьТранзакцию();
            Для каждого мЭл Из мEMAILАдреса Цикл
                //
                СпрВладельцыКарт = Справочники.ВладельцыКарт.НайтиПоРеквизиту("ЭлектроннаяПочта", мЭл);
                Сообщить("=>> " + мЭл);
            КонецЦикла;
            ЗафиксироватьТранзакцию();
        КонецЕсли;
1 falselight
 
04.09.19
05:33
Видимо нужно делать запросом. А потом уже обрабатывать выборку.

//
//

ВЫБРАТЬ
    ВладельцыКарт.Ссылка,
    ВладельцыКарт.ЭлектроннаяПочта
ИЗ
    Справочник.ВладельцыКарт КАК ВладельцыКарт
ГДЕ
    ВладельцыКарт.ЭлектроннаяПочта В(&СписокЭлАдресов)