Решение проблемы непрекращающегося обмена УТ с сайтом на Битрикс и Помощник поиска проблем обмена с сайтом на Битрикс


Детализация информации в списке зарегистрированных изменений с возможностью отменить регистрацию изменений. И инструкция, как остановить постоянно возобновляющийся полный обмен с сайтом, несмотря на включённую опцию «Выгружать только изменения» в настройках обмена.

Столкнулся с проблемой: в базе часами выполняется обмен с сайтом на Битрикс на встроенном механизме, хотя в настройках обмена с сайтом установлен Режим выгрузки данных в значение Изменения.

Данные, зарегистрированные для изменений постепенно уменьшаются, а потом снова резко подскакивает количество.

Оказалось, что в изменениях зарегистрированы группы номенклатуры, которые не переносятся, а в типовой сделано так, что если изменяется раздел, все вложенные товары при начале обмена помечаются изменёнными.

Для начала, чтобы это остановить, меняем условие сравнения на ВСписке в модуле ОбменССайтом в процедуре ИзменитьОтборКомпоновщика():

// Добавляем отбор по изменениям.
Если МассивИзмененийНоменклатуры <> Неопределено Тогда

СписокГруппОтбора = Новый СписокЗначений;
СписокГруппОтбора.ЗагрузитьЗначения(МассивИзмененийНоменклатуры);

НовыйЭлемент = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлемент.ИдентификаторПользовательскойНастройки = ОтборПоИзменениям;
НовыйЭлемент.ЛевоеЗначение  =  Новый ПолеКомпоновкиДанных("Номенклатура");
НовыйЭлемент.ВидСравнения  = ВидСравненияКомпоновкиДанных.ВСписке;//.ВСпискеПоИерархии;
НовыйЭлемент.ПравоеЗначение = СписокГруппОтбора;
НовыйЭлемент.Использование  = Истина;

КонецЕсли;

Далее ждём, пока передадутся все данные, которые удаётся передать.

Потом смотрим с помощью обработки, что за разделы зарегистрированы к изменениям, и смотрим, что с этим делать. Вероятно, просто нужно отменить удалить по ним регистрацию изменений.

По заказам обмен передаёт изменения по заказам, которые пришли с сайта. У них должно быть дополнительное свойство с номером заказа в Битриксе, если на закладке "Заказы" в обработке в колонке "Свойство" пусто — это значит, что заказ не с сайта и можно тоже удалить регистрацию изменений.

5 Comments

  1. capitan

    Помощник поиска проблем обмена с сайтом на Битрикс — это показать зарегистрированные изменения )

    Чем не устраивает типовой функционал ? Не такое громкое название ?

    Reply
  2. boogie

    (1) В штатном только список номенклатуры вместе с группами. У меня есть подробности и возможность отменить регистрацию изменений.

    Reply
  3. Xershi

    (2) это не штатный, а огрызок битрикса от штатного.

    В штатном все есть!

    Reply
  4. Xershi

    Типовая обработка называется «Регистрация изменений для обмена».

    Reply
  5. boogie

    (4) В принципе, можно добавить фильтр по полям через ссылку, поразбираться, но в моём варианте есть родитель верхнего уровня, попроще было разбираться.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *