$arSelect = Array("ID", "NAME", "DATE_ACTIVE_FROM"); $arFilter = Array("IBLOCK_ID"=>$iblock, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y"); $res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect); $i; while($ob = $res->GetNextElement()) { $i++; $el = new CIBlockElement; $ElementArray = Array("ACTIVE" => "N",); $arFields = $ob->GetFields(); $el->Update($arFields['ID'], $ElementArray); } echo "отключено элементов: ".$i;
В переменной $iblock
должен содержаться ID вашего инфоблока.
C разделами инфоблока — ситуация аналогичная. Нам потребуется класс CIBlockSection.
Готовое решение:
$arFilter = Array('IBLOCK_ID'=>$iblock, 'GLOBAL_ACTIVE'=>'Y'); $db_list = CIBlockSection::GetList(Array(), $arFilter, true); $i; while($ar_result = $db_list->GetNext()) { $i++; $bs = new CIBlockSection; $arFields = Array("ACTIVE" => "N"); $bs->Update($ar_result['ID'], $arFields); } echo "отключено разделов: ".$i;