Полная выгрузка на сайт Bitrix 3 раза в неделю
Клиент захотел, чтобы полная выгрузка товаров из УТ на сайт Bitrix происходила 3 раза в неделю, чтобы подчищать товары, которые больше не выгружаются на сайт.
Проблема была в том, что расписание было настроено на частичный обмен. А использовать две настройки не получится — т.к. каждая настройка использует свой каталог товаров. А свойство «Выгружать изменения» почему-то задается у плана обмена.
Решено было доработать модуль выгрузки, в итоге получилось такое расширение:
&Вместо("ДобавитьНастройкиОбменаВПараметры") Функция дор_ДобавитьНастройкиОбменаВПараметры(УзелОбмена, Параметры, ПринудительнаяПолноеОбновлениеДанныхТовара) //Осипов 2021-11-21 добавлена полная выгрзка УстановитьПривилегированныйРежим(истина); дор_ПоследняяПолнаяВыгрузкаНаСайт = Константы.дор_ПоследняяПолнаяВыгрузкаНаСайт.Получить(); ЭтоПолнаяВыгрузка = ложь; Если НачалоДня(дор_ПоследняяПолнаяВыгрузкаНаСайт) <> НачалоДня(ТекущаяДата()) Тогда ДеньНедели = ДеньНедели(ТекущаяДата()); Если ДеньНедели = 1 ИЛИ ДеньНедели = 3 ИЛИ ДеньНедели = 5 Тогда ПринудительнаяПолноеОбновлениеДанныхТовара = истина; ЭтоПолнаяВыгрузка = истина; //Корректируем для полной выгрузки Параметры.Вставить("ВыгружатьТолькоИзменения", ложь); Константы.дор_ПоследняяПолнаяВыгрузкаНаСайт.Установить(ТекущаяДата()); //Запоминаем время выгрузки КонецЕсли; КонецЕсли; Результат = ПродолжитьВызов(УзелОбмена, Параметры, ПринудительнаяПолноеОбновлениеДанныхТовара); Если Результат <> Истина Тогда Возврат Результат; КонецЕсли; //Если были ошибки Возврат Результат; КонецФункции
Обратите внимание, что свойство «Выгружать изменения» подменяется до получения полных настроек по первичным. Также заведена дополнительная константа для хранения времени и даты последней полной выгрузки. Если при выгрузке произойдет сбой, она будет считаться все равно успешной, но на самом деле клиенту хватает и одной гарантированной выгрузки в неделю. А падает обмен редко.
Ну а дальше по коду понятно, в понедельник, среду и пятницу при первом запуске обмена произойдет полная выгрузка.
Начало обменов сдвинул на 5 утра, чтобы полная выгрузка успела пройти — она идет 1.5-2 часа.
По сути, в коде программно устанавливаются две галочки.
Первая — признак того, что выгружать все данные, а не только изменения (ВыгружатьТолькоИзменения = ложь):
Вторая — аналог нажатия кнопки «Выгружать все картинки» (ПринудительнаяПолноеОбновлениеДанныхТовара = истина):
Среда: УТ 11.4.13.46. Объем: 1.5 час.
Свежие комментарии