Вход | Регистрация

1С:Предприятие ::

Метки: 

Обход результата запроса

Я
   triviumfan
 
15.01.18 - 23:50
Доброго дня (ночи!).

Первый раз вижу, что метод Следующий() обходит не все элементы выборки из результата запроса. В чём прикол?!
Справочник "Контрагенты", ~30к элементов.

Запрос = Новый Запрос("Выбрать Ссылка, Наименование Из Справочник." + СправочникДляПоиска);
Выборка = Запрос.Выполнить().Выбрать();

Индикатор1 = 0;
ЭлементыФормы.Индикатор1.МаксимальноеЗначение = Выборка.Количество();

Пока Выборка.Следующий() Цикл
//...

КонецЦикла;

На 27% выполнения цикл останавливается. Никогда такого ранее не встречал. Хотя помнится, некоторые жаловались на похожее поведение платформы при работе с ado recordset. Куда копать? Выгружать результат в ТЗ? Дико звучит...
 
 
   Darych
 
1 - 16.01.18 - 01:07
ЭлементыФормы.Индикатор1.МаксимальноеЗначение = Выборка.Количество();
Задвинь это и наслаждайся
   triviumfan
 
2 - 16.01.18 - 07:57
    Пока Выборка.Следующий() Цикл
                
        УИД_Источника = Выборка.Ссылка.УникальныйИдентификатор();
        УИД_Приемника = ТекCOMОбъект.NewObject("УникальныйИдентификатор", Строка(УИД_Источника));
        НайденныйЭлемент = ВнешнийСправочник.ПолучитьСсылку(УИД_Приемника);
        
        Если Найти(ТекCOMОбъект.String(НайденныйЭлемент),"не найден") = 0 Тогда 
            
            Если ТолькоРазныеНаименования И НайденныйЭлемент.Наименование = Выборка.Наименование Тогда
                Продолжить;
            КонецЕсли;
            
            НоваяСтрока = СписокОбъектов.Добавить();
            НоваяСтрока.Источник = Выборка.Ссылка;
            НоваяСтрока.НаименованиеПриемника = НайденныйЭлемент.Наименование;
            НоваяСтрока.Приемник = ТекCOMОбъект.String(УИД_Приемника);
            
        КонецЕсли;
        
                Индикатор1 = Индикатор1 + 1;
        ОбработкаПрерыванияПользователя();
        
    КонецЦикла;

Ошибка в том, что индикатор не всегда инкрементируется. Нет никакой ошибки) Автор сам дурак, плюс противопоказано ночью обработки писать. Отбой, всем печенек)


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует