Тестировалось на конфигурации УНФ 3.0.7.122, Платформа 8.3.22.2411.
Работает в ГРМ.
ФРЭШ - не проверял.
Позволит сэкономить время на поиске и осмыслении инструкций, написании основных функций http-запросов на начальных этапах разработки систем взаимодействия с указанными маркетплейсами.
Обработка полностью функциональна.
Поиск и сопоставление номенклатуры происходит по штрихкодам и артикулам.
Приведу код поиска.
Артикулы:
&НаСервере
Функция НайтиПоАртикулу(Артикул, Размер)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХарактеристикиНоменклатуры.Владелец КАК Номенклатура,
| ХарактеристикиНоменклатуры.Ссылка КАК Характеристика
|ИЗ
| Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
|ГДЕ
| ХарактеристикиНоменклатуры.Владелец.Артикул = &Артикул
| И ХарактеристикиНоменклатуры.Наименование ПОДОБНО &Размер";
Запрос.УстановитьПараметр("Артикул", Артикул);
Запрос.УстановитьПараметр("Размер", "% " + Размер + ",%");
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Количество() = 1 Тогда
Выборка.Следующий();
струк = Новый Структура;
струк.Вставить("Номенклатура",Выборка.Номенклатура);
струк.Вставить("Характеристика",Выборка.Характеристика);
Возврат струк;
КонецЕсли;
КонецФункции
Штрихкоды:
&НаСервере
Функция НайтиПоШтрихкоду(Штрихкод)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
| ШтрихкодыНоменклатуры.Характеристика КАК Характеристика
|ИЗ
| РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
|ГДЕ
| ШтрихкодыНоменклатуры.Штрихкод = &Штрихкод";
Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
стру = Новый Структура;
стру.Вставить("Номенклатура",Выборка.Номенклатура);
стру.Вставить("Характеристика",Выборка.Характеристика);
Возврат стру;
КонецЕсли;
КонецФункции
Пример запроса к WB:
&НаКлиенте
Процедура ВБОстатки(Команда)
Этап = 0;
//Остатки
Индикатор("Wildberries","Запрос остатков",0);
Параметр = Новый Структура;
//текДата = Формат(ТекущаяДата(),"ДФ=yyyy-MM-dd; ДЛФ=");
текДата = Формат(Дата(2018,1,1),"ДФ=yyyy-MM-dd; ДЛФ="); // "API:Для получения полного остатка следует указывать максимально раннее значение.Например, 2019-06-20
Параметр.Вставить("Сервер", "statistics-api.wildberries.ru");
Параметр.Вставить("url", "/api/v1/supplier/stocks?dateFrom=" + текДата);
Остатки = ВыполнитьГетЗапросВБ(Параметр);
Этап = 1;
//Продажи
//https://statistics-api.wildberries.ru/api/v1/supplier/orders
Параметр = Новый Структура;
ДатаНачала = Формат(ПериодПродаж.ДатаНачала,"ДФ=yyyy-MM-dd; ДЛФ=");
ДатаОкончания = Формат(ПериодПродаж.ДатаОкончания,"ДФ=yyyy-MM-dd; ДЛФ=");
rrdid = 0;
Параметр.Вставить("Сервер", "statistics-api.wildberries.ru");
// Параметр.Вставить("url", "/api/v1/supplier/orders?dateFrom=" + ДатаНачала);
Продажи = Новый Массив;
Пока Истина Цикл
Прогресс = цел(Этап * 100/этапы);
Индикатор("Wildberries","Запрос продаж", Прогресс);
Параметр.Вставить("url", "/api/v5/supplier/reportDetailByPeriod?dateFrom=" + ДатаНачала + "&dateTo=" + ДатаОкончания + "&limit=10000&rrdid=" + Формат(rrdid,"ЧН=0; ЧГ="));
Результат = ВыполнитьГетЗапросВБ(Параметр);
КоличествоСтрок = Результат.Количество();
rrdid = Формат(Результат[КоличествоСтрок-1].rrd_id, "ЧГ=0");
Для Каждого эл Из Результат Цикл
Продажи.Добавить(эл);
КонецЦикла;
Если КоличествоСтрок < 10000 Тогда
Прервать;
КонецЕсли;
Этапы = Этапы + 1;
Этап = Этап + 1;
Прогресс = цел(Этап * 100/этапы);
Индикатор("Wildberries","Ожидание готовности сервера 60 сек",Прогресс);
ПаузаНаСервере(60);
Этапы = Этапы + 1;
Этап = Этап + 1;
КонецЦикла;
Этап = Этап + 1;
Прогресс = цел(Этап * 100/этапы);
Индикатор("Wildberries","Формирование таблиц...", Прогресс);
ОбработатьОстаткиВБ(Остатки,Продажи);
Элементы.ТЗСкладВБ.Заголовок = "Остаток на " + Формат(ТекущаяДата(),"ДЛФ=D");
Элементы.ТЗСкладВБСумма.ТекстПодвала = Формат(ТЗ.Итог("СкладВБСумма"),"ЧДЦ=2");
Элементы.ТЗВБ_ВРезерве.ТекстПодвала = ТЗ.Итог("СкладВБРезерв");
Элементы.ТЗСкладВБПродано.ТекстПодвала = ТЗ.Итог("СкладВБПродано");
Элементы.ТЗСкладВБ.ТекстПодвала = ТЗ.Итог("СкладВБ");
КонецПроцедуры
Код абсолютно открыт, поэтому не составит труда изменить параметры поиска и сопоставления товаров в соответствии с иной структурой хранения номенклатуры.