ТП Битрикса признало ошибку, что товары по отбору по свойству выгружаются из 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";
}
}
}
}
}
|