Ассиметричный по времени обмен с Битриксом. УТ 11
Клиент захотел, чтобы заказы с сайта грузились чаще, а товары выгружались реже. Потому что товары меняются редко, а заказы нужно видеть чуть ли не оперативно.
Я сделал простую логику — при запуске обмена запоминалось, когда произошла последняя выгрузка товаров и если время еще не подошло, то делал только загрузку заказов.
&Вместо(«ДобавитьНастройкиОбменаВПараметры»)
Функция дор_ДобавитьНастройкиОбменаВПараметры(УзелОбмена, Параметры, ПринудительнаяПолноеОбновлениеДанныхТовара)
//2021-05-06 — делает загрузку не такой частой
Результат = ПродолжитьВызов(УзелОбмена, Параметры, ПринудительнаяПолноеОбновлениеДанныхТовара);
Если Результат <> Истина Тогда Возврат Результат; КонецЕсли; //Если были ошибки
УстановитьПривилегированныйРежим(Истина);
дор_ИнтервалВыгрузкиНаСайтМинут = Константы.дор_ИнтервалВыгрузкиНаСайтМинут.Получить();
Если ЗначениеЗаполнено(дор_ИнтервалВыгрузкиНаСайтМинут) Тогда
дор_ПоследняяВыгрузкаНаСайт = Константы.дор_ПоследняяВыгрузкаНаСайт.Получить();
Сейчас = ТекущаяДата();
РазницаМинут = Цел((Сейчас — дор_ПоследняяВыгрузкаНаСайт) / 60); //Разница в минутах
//Если прошло еще недостаточно времени с момента последней выгрузки
Если РазницаМинут < дор_ИнтервалВыгрузкиНаСайтМинут Тогда
Параметры.ВыгружатьНаСайт = ложь;
Параметры.ОбменТоварами = ложь;
СообщитьПодробно(» Прошло только » + РазницаМинут + » минут. Выгрузка на сайт не будет производиться, т.к. требуется перерыв » + дор_ИнтервалВыгрузкиНаСайтМинут + » минут.», Параметры, Истина, ложь);
Иначе
Константы.дор_ПоследняяВыгрузкаНаСайт.Установить(Сейчас);
дор_ПодготовитьДанныеПередВыгрузкой(); //Готовим данные для перед выгрузкой
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Для пользователя это выглядит так:
Вот несколько протоколов обмена:
Среда: УТ 11.4.13.46, 1С 8.3.16.1502, Битрикс «Интернет-магазин + 1С 7.0.1.32»
Объем факт: 1 час.
Свежие комментарии