Имя: Пароль:
1C
1C 7.7
v7: Получение всех заказов с WB
0 zenon46
 
10.10.25
16:12
Господа, доброго времени суток. Понадобилось загрузить с WB все заказы с начала года, которые complete.
На первом проходе все получается как нужно, на втором выдается ошибка 400 (не верная ссылка), пересмотрел отладчиком, вроде бы все как нужно next и следующая дата уходят как надо. Куда копать ?
Сделал так :
	next  = 0;
	ДатаНачалаЗапроса = ПолучитьДатуЧисло(2025,01,01,00,00,00); 
	
	Пока 1 = 1 Цикл
		
		текСсылка = "orders?limit=1000&next="+next+"&dateFrom="+ДатаНачалаЗапроса+""; 
	
		Карлик.УстановитьПараметр("HTTPHEADER","Authorization: ТОКЕН");
		Карлик.УстановитьПараметр("HTTPHEADER","Content-type: application/json; charset=utf-8");	
		Карлик.УстановитьПараметр("URL","marketplace-api.wildberries.ru/api/v3/"+текСсылка);
	
		Приемник		= Карлик.Приемник;
		Приемник.Тип	= 1;
		Приемник.Данные = глПолучитьПутьРабочегоСтола()+"\"+"Answer.json";
		
		КодВозврата = Карлик.Выполнить();
		
		Если КодВозврата <> 200 Тогда
			глСервис.ИконкаПредупреждения(1,1,1);
			Предупреждение("Ошибка при загрузке заказов в сайта!",15);
			СтатусВозврата(0);Возврат;
		КонецЕсли;
		
		UTF8_Win1251();
		
		тестJSON = глРазборJSON(глПолучитьПутьРабочегоСтола()+"\"+"Answer.json");

		Если тестJSON.orders.Количество() > 0 Тогда
			ОбщееКоличиствоЗаказов = тестJSON.orders.Количество();	
			Для i = 0 По (ОбщееКоличиствоЗаказов-1) Цикл 			
				текЗначИЗ_JSON = тестJSON.orders.Получить(i);
				тзТест.НоваяСтрока();
				тзТест.ДатаЗаказа = текЗначИЗ_JSON.createdAt;
			КонецЦикла;
		ИначеЕсли тестJSON.orders.Количество() = 0 Тогда 
			Прервать;
		КонецЕсли;
		
		КрайняяДатаПолученияЗаказа = тзТест.ДатаЗаказа;
		Год = Лев(КрайняяДатаПолученияЗаказа,4);
		КрайняяДатаПолученияЗаказа = СтрЗаменить(КрайняяДатаПолученияЗаказа,Год+"-","");
		Мес = Лев(КрайняяДатаПолученияЗаказа,2);
		КрайняяДатаПолученияЗаказа = СтрЗаменить(КрайняяДатаПолученияЗаказа,Мес+"-","");
		День = Лев(КрайняяДатаПолученияЗаказа,2); 
		next = Число(тестJSON.next); 
		ДатаНачалаЗапроса = ПолучитьДатуЧисло(Число(Год),Число(Мес),Число(День),00,00,00);
		
	КонецЦикла;
1 Bigbro
 
10.10.25
19:32
я бы дату проверил, вдруг там дата месяц наоборот. чем черт не шутит все эти форматы по своему выбирают.
2 dedmoroz777
 
10.10.25
19:47
Не меняй дату в цикле
3 Злопчинский
 
11.10.25
13:03
Может таймаут влепить между запросами?