ТП Битрикса признало ошибку, что товары по отбору по свойству выгружаются из 1С криво (не все, как-то неправильно отбор товаров работает)
Решение: выгружать все товары без данного отбора, а по определенному свойству товары деактивировать обработчиком
2 обработчика (на добавление, изменение) размещаем в /bitrix/php_interface/init.php
Решение: выгружать все товары без данного отбора, а по определенному свойству товары деактивировать обработчиком
2 обработчика (на добавление, изменение) размещаем в /bitrix/php_interface/init.php
- 10 - ID инфоблока
- свойство, в котором укзано, грузить или нет на сайт (ID свойства 989, код свойства GRUZIT_NA_SAYT)
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "MyOnBeforeIBlockElementUpdate"); function MyOnBeforeIBlockElementUpdate(&$arFields){ if(($_GET['type'] == 'catalog') && ($_GET['mode'] == 'import') && strstr($_GET['filename'], 'import') && ($arFields["IBLOCK_ID"]==10)){ if(isset($arFields["PROPERTY_VALUES"][989])){ foreach ($arFields["PROPERTY_VALUES"][989] as $arValue) { if($arValue["VALUE"]=="нет"){ $arFields["ACTIVE"] = "N"; } } } else{ if((!isset($arFields["ACTIVE"]) || ($arFields["ACTIVE"]=="Y")) && CModule::IncludeModule('iblock')){ $arSelect = Array("ID", "IBLOCK_ID"); $arFilter = Array("IBLOCK_ID"=>10, "ID"=>$arFields["ID"], "PROPERTY_GRUZIT_NA_SAYT"=>"нет"); $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>1), $arSelect); if($arElement = $res->Fetch()){ $arFields["ACTIVE"] = "N"; } } } } } AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "MyOnBeforeIBlockElementAdd"); function MyOnBeforeIBlockElementAdd(&$arFields){ if($arFields["IBLOCK_ID"]==10){ if(isset($arFields["PROPERTY_VALUES"][989])){ foreach ($arFields["PROPERTY_VALUES"][989] as $arValue) { if($arValue["VALUE"]=="нет"){ $arFields["ACTIVE"] = "N"; } } } } } |