Цитата |
---|
Олег Постоев пишет: Есть мысль сделать так: если элемент не нужно добавлять, то кидаем его во временный инфоблок (меняем значение IBLOCK_ID), тогда синхронизация продолжается, а после синхронизации удаляем элементы временного инфоблока. Костыль, пожалуй, но работать должно |
Задача: при импорте из 1С не добавлять товары с существующим артикулом. Первый раз можно, последующие - нельзя.
Код |
---|
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", 'ProtectDublicate');
function ProtectDublicate(&$arFields)
{
$PARENT_IBLOCK_ID=5; // Блок в который добавляем товары
$articul=$arFields["PROPERTY_VALUES"]["31"]["n0"]["VALUE"]; // В это свойство передаётся артикул
$arFilter=array("IBLOCK_ID"=>$PARENT_IBLOCK_ID,"=PROPERTY_CML2_ARTICLE"=>$articul); // Ищем товар с этим артикулом в инфоблоке
$arSelect = array("ID");
$rsParent = CIBlockElement::GetList(false, $arFilter, $arSelect); // Пиу!
if($rsParent->SelectedRowsCount()>0)
{
$arFields["IBLOCK_ID"]="0"; // Если такой артикул нашёлся, то добавляем его в никуда, нету инфоблока с ID=0
return;
}
}
|
То есть, Олег, это Ваш костыль, но без последующего удаления из временного инфоблока.