Загрузка данных


Процедура Экспорт_КитайЗаДень(Знач Параметры) Экспорт
Компонента = Параметры.Компонента;
Топик = Параметры.Топик;
Статистика = Параметры.Статистика;

Попытка
Запрос = Новый Запрос;

Запрос.Текст =
"ВЫБРАТЬ
| Продажи.Регистратор.Дата КАК Дата,
| Продажи.Номенклатура.Наименование КАК Наименование,
| Продажи.Характеристика.КаталожныйНомер_Сокращенный КАК КаталожныйНомер,
| Продажи.Характеристика.Бренд КАК Бренд,
| Продажи.Склад.Наименование КАК Склад,
| Продажи.Склад.ВидСклада КАК ВидСклада,
| Продажи.Контрагент.Наименование КАК Контрагент,
| Продажи.Номенклатура.Родитель.Родитель.Родитель КАК Автомобиль,
| Продажи.Регистратор.Номер КАК НомерДокумента,
| Продажи.Склад.Город.Наименование КАК Город,
| Продажи.Контрагент.Код КАК КодКонтрагента,
| Контрагенты.НомерТелефона КАК Телефон,
| Продажи.Склад.Город.Код КАК КодГород,
| Продажи.Склад.Код КАК КодСклада
|ИЗ
| РегистрНакопления.Продажи КАК Продажи
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО Продажи.Контрагент.Код = Контрагенты.Код
|ГДЕ
| // Изменено условие даты: выбираем весь вчерашний день
| Продажи.Регистратор.Дата >= &ДатаНачала
| И Продажи.Регистратор.Дата < &ДатаОкончания
| //И Продажи.Склад.ВидСклада = &ВидСклада
| И Продажи.Номенклатура.Родитель.Родитель.Родитель.Код = ""ZT0036523""
| И Продажи.Склад.Город.Код = ""000000001""
| И Продажи.Склад.Код В (""H-0000004"",""H-0000017"",""A00000017"",""A00000036"",""A00000007"")";

РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса = Неопределено Тогда Возврат; КонецЕсли;
        
Выборка = РезультатЗапроса.Выбрать();
ТекДата = ТекущаяДата();

Пока Выборка.Следующий() Цикл
Попытка
ТекIdПакета = Строка(Новый УникальныйИдентификатор);
Данные = Новый Структура;
Данные.Вставить("type_source", "china_parts");
// Форматируем дату из выборки (она останется той, которая записана в регистре)
Данные.Вставить("date", Формат(Выборка.Дата, "ДФ='дд.ММ.гггг ЧЧ:мм:сс'"));
Данные.Вставить("catalog_number", СокрЛП(Выборка.КаталожныйНомер));
Данные.Вставить("brend", СокрЛП(Выборка.Бренд));
Данные.Вставить("name_parts", СокрЛП(Выборка.Наименование)); // Убрана лишняя запятая
Данные.Вставить("sklad", СокрЛП(Выборка.Склад));
Данные.Вставить("sklad_type", СокрЛП(Выборка.ВидСклада));
Данные.Вставить("client", СокрЛП(Выборка.Контрагент));
Данные.Вставить("first_level", СокрЛП(Выборка.Автомобиль));
Данные.Вставить("number", СокрЛП(Выборка.НомерДокумента));
Данные.Вставить("city", СокрЛП(Выборка.Город));
Данные.Вставить("client_code", СокрЛП(Выборка.КодКонтрагента));
Данные.Вставить("phone", СокрЛП(Выборка.Телефон));
Данные.Вставить("city_code", Выборка.КодГород);
Данные.Вставить("sklad_code", СокрЛП(Выборка.КодСклада));

ТекСтрока_Json = КоннекторHTTP.ОбъектВJson(Данные);
РезультатОтправки = Компонента.ОтправитьСообщение(ТекСтрока_Json, Топик, -1, ТекIdПакета, "");

Если Не РезультатОтправки Тогда
Статистика.Ошибки = Статистика.Ошибки + 1;
КонецЕсли;

Статистика.Счетчик = Статистика.Счетчик + 1;
Если Статистика.Счетчик % 100 = 0 Тогда
Сообщить("[" + Параметры.КодЗадачи + "] Обработано: " + Статистика.Счетчик);
КонецЕсли;

Исключение
Статистика.Ошибки = Статистика.Ошибки + 1;
Сообщить("[КРИТИЧЕСКАЯ ОШИБКА в записи] Каталог: " + Выборка.КаталожныйНомер +
", Документ: " + Выборка.НомерДокумента +
", Ошибка: " + ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;
КонецЦикла;

Исключение
ВызватьИсключение ОписаниеОшибки();
КонецПопытки;

КонецПроцедуры