Цитата |
---|
Александр Денисюк написал:
Цитата |
---|
Дмитрий Павлюков написал: у нас этот цикл идет бесконечно. |
Переменная "Следующие" меняется? По идеи она должна при каждой загрузке пакета, увеличиваться на 50 |
при первом прохождении - она увеличилась на 50,при следующем проходе принимает значение "". Т.е все начинается заново.
У вас не учтен момент , когда СтруктураОтвета.Получить("next") = Неопределено.
Доработал код вот так, теперь все работает верно:
Код |
---|
Пока Следующие <> Неопределено Цикл
//ТУТ ОШИБКА. ЕСЛИ СтруктураОтвета.Получить("next")= НЕОПРЕДЕЛЕНО ТОГДА ЗНАЧЕНИЕ Следующие ="" и цикл не сможет прекратиться
Следующие = Формат(СтруктураОтвета.Получить("next"), "ЧГ=0");
ТелоHTTPЗапроса = "&start="+Следующие;
СтруктураОтвета = Б24_RestApiКлиентСервер.ОтправкаДанныхНаПортал(ОбщиеНастройки, Метод, ТелоHTTPЗапроса);
Если СтруктураОтвета = Неопределено тогда
Прервать;
КонецЕсли;
Если СтруктураОтвета.Получить("result") <> Неопределено тогда
Для каждого ТекЭлемент из СтруктураОтвета.Получить("result") Цикл
Если ТекЭлемент.Получить("ACTIVE") <> Истина тогда
Продолжить;
КонецЕсли;
НайденныеСтроки = СопоставлениеПользователей.НайтиСтроки(Новый Структура("ИдПользователя", ТекЭлемент.Получить("ID")));
Если НайденныеСтроки.Количество() = 0 тогда
НоваяСтрока = СопоставлениеПользователей.Добавить();
НоваяСтрока.ФИО = Строка(ТекЭлемент.Получить("NAME")) + " " + Строка(ТекЭлемент.Получить("LAST_NAME"));
НоваяСтрока.ИдПользователя = ТекЭлемент.Получить("ID");
КонецЕсли;
КонецЦикла;
КонецЕсли;
//ТУТ ДОБАВИЛ ОБНОВЛЕНИЕ ПЕРЕМЕННОЙ "СЛЕДУЮЩИЕ". Когда нет информации на загрузку, команда СтруктураОтвета.Получить("next") = Неопределено.
Следующие = СтруктураОтвета.Получить("next");
//
КонецЦикла; |