Битрикс — скрипт удаления всех элементов и разделов из инфоблока

14.02.2019  08:55

Возникла проблема, что выгрузка из 1С отработала некорректно и потребовалось удалить из инфоблока все записи. Скрипт с небольшим простеньким интерфейсом:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
set_time_limit(0);
ini_set('max_execution_time', '3600');
ini_set('memory_limit', '512M');
$c_elem = 0;
$c_sect = 0;
CModule::IncludeModule('iblock');
CModule::IncludeModule('blog');
CModule::IncludeModule('user');
global $USER;
if (!$USER->IsAdmin()){
exit;
}
$del_action = $_REQUEST["del"];
$IBLOCK_ID = intval($_REQUEST["iblock_id"]);
echo '
'; if(empty($del_action) && empty($result)) { $res = CIBlock::GetList( Array(), Array( // 'TYPE'=>'catalog', 'SITE_ID'=>SITE_ID, 'ACTIVE'=>'Y', "CNT_ACTIVE"=>"Y", ), true ); echo ''; echo '
'; } if(!empty($del_action) && empty($result)) { // $IBLOCK_ID = $del_action; $arFilterSect = Array( "IBLOCK_ID"=>$IBLOCK_ID, // "ID"=>88421,//N // "ACTIVE" => "Y", ); $res = CIBlockElement::GetList(Array("ID"=>"ASC"), $arFilterSect, $filterFields); while ($ar_fields = $res->GetNext()) {//del elements / удаление элементов // для красоты можно добавить транзакции ($DB) // $DB->StartTransaction(); if(!CIBlockElement::Delete($ar_fields["ID"])) { $strWarning .= 'Error!'; // $DB->Rollback(); } // else // $DB->Commit(); // echo $ar_fields["NAME"];exit; $c_elem ++; } $arFilter = Array('IBLOCK_ID'=>$IBLOCK_ID); $db_list = CIBlockSection::GetList(Array($by=>$order), $arFilter, true); // $db_list->NavStart(20); // echo $db_list->NavPrint($arIBTYPE["SECTION_NAME"]); while($ar_result = $db_list->GetNext()) {// del sections / удаление разделов // echo $ar_result["NAME"]; // $DB->StartTransaction(); if(!CIBlockSection::Delete($ar_result["ID"])) { $strWarning .= 'Error.'; // $DB->Rollback(); } // else // $DB->Commit(); // echo $ar_result["NAME"];exit; $c_sect ++; } echo 'Удалено элементов: '.$c_elem.', секций: '.$c_sect; } if(empty($del_action) && !empty($result)) { echo 'result'; } echo '
';
Андрей Панёвин
Здравствуйте! Я — Андрей Панёвин и занимаюсь профессиональной разработкой сайтов на платформе 1С-Битрикс (исключительно программирование). Есть вопросы по статье? Могу подсказать и помочь по скайпу (andrey.panevin.ru), WhatsApp (+7-911-091-0670) или перепиской в ВК.
1000 р./час.



перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 54  PHP 68  web-программирование 92  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю-:
Имя


email (не публикуется)