Привет. Рассмотрим экзотическую задачу, и вариант её решения. В системе битрикс ранее был заведен тип инфоблоков кодом “catalog”. К этому типу привязано некоторое количество информационных блоков в системе. Эти информационные блоки содержат множество разделов, а так же элементов.
Задача в следующем, необходимо затиреть поля детального описания, а так же анонса во всех элементах, находящихся в этих инфоблоках.
Смотрим что получилось:
<?php
$IB_TYPE = 'catalog'; # тип инфоблоков
# подключение библиотеки классов
require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
# доступ только администраторам
global $USER;
if (!$USER->IsAdmin() ) return;
# подключаем модуль инфоблоков
if (CModule::IncludeModule("iblock")){
$arFilter = array("IBLOCK_TYPE" => $IB_TYPE); # фильтр для выборки элементов
# выборка элементов
$elRes = CIBlockElement::GetList(array("SORT"=>"ASC"), $arFilter, false, false, array());
# переменные для счетчика (для отчета)
$arCnt = array ('updated' => 0, 'errors' => 0);
while($ob = $elRes->Fetch()){
# значение полей
$arEl = array("PREVIEW_TEXT" => "","DETAIL_TEXT" => "");
# обновляем текущий элемент
$res = CIBlockElement::Update($ob['ID'], $arEl);
# счетчик
if ($res) $arCnt['updated']++;
else $arCnt['errors']++;
}
# выводим отчет
echo 'обновлено '.$arCnt['updated'].' | ошибок '.$arCnt['errors'];
}
?>
Итак, стоит так же добавить, что запускать скрипт нужно авторизовавшись в системе, под пользователем состоящем в группе «Администраторы».
Код можно модифицировать под свои нужды, к примеру, добавления какого-то значения к элементу, ну или как-то ещё. В общем, на ваше усмотрение.