Очень долгий обмен с 1С.
При отладке выяснилось, что функция обновления товара отрабатывала по 5 сек на каждый товар.
Причина была в том, что у инфоблока 4тыс свойств, а в функцию update передавались все эти поля, хот 99,9% из них были пустыми.
Добавил в файл \bitrix\modules\iblock\classes\general\cml2.php LINE 3465
// 14.09.2016 usovdm
// Удаляю пустые свойства, т.к. иначе заливка 3900 свойств занимает 5 сек на товар и импорт падает
foreach($arElement['PROPERTY_VALUES'] as $k => $v){
$isRemoveProperty = true;
foreach($v as $k2 => $v2){
if($k2 != '' || $v2['VALUE'] != '') {
$isRemoveProperty = false;
}
}
if ($isRemoveProperty) {
unset($arElement['PROPERTY_VALUES'][$k]);
}
}
перед $updateResult = $obElement->Update($arDBElement["ID"], $arElement, $bWF, true, $this->iblock_resize);
чтобы не менять ядро, нужно наследоват ьи переопределять класс
Свежие комментарии