Обновить все элементы

Бывают ситуации, когда нужно обновить все элементы инфоблока. Для создания символьных кодов, например. Или для отрабатывания какого-либо события для ElementUpdate.

Следующий код делает простую штуку — пробегается по элементам и меняет имя элемента на его же имя 🙂

Нужно создать файл с любым именем, вставить в него код и запустить (конечно предварительно заменить ID инфоблока).

<?php
ini_set("max_execution_time","99999");
require_once($_SERVER['DOCUMENT_ROOT']. "/bitrix/modules/main/include/prolog_before.php");
echo 'Start script...<br>';
if(CModule::IncludeModule('iblock')){

$el = new CIBlockElement;
$Filter = array("IBLOCK_ID" => 6, "ACTIVE" => "Y");
$res = CIBlockElement::GetList(array("NAME"=>"ASC"), $Filter, false, false, array('ID', 'IBLOCK_ID', 'NAME'));

while($ob = $res->GetNext()){
$res1 = $el->Update($ob["ID"], array('NAME' => $ob['NAME']));
echo 'Обновлен элемент ID '.$ob["ID"].'<br>';
}
}
?>

То есть по сути элемент не изменяется, но все события для обновления вызываются и отрабатывают.