Разработка на 1С-Битрикс Михаил Базаров
Блог-note

Удалить половину элементов инфоблока с помощью API

Просмотров: 2535
Задача: вот такая странная задача, нужно удалить из инфоблока половину элементов. Не важно каких, просто половину элементов.
Удалить половину элементов инфоблока с помощью API

Получение и удаление элементов через API

Скрипт который удалит элементы, если вы знаете сколько элементов в инфоблоке. Например, в инфоблоке 12 346 элементов, соотвественно нужно удалить 6 173:

use Bitrix\Main\Loader,
    Bitrix\Iblock\ElementTable;
Loader::includeModule('iblock');
$rsElements = ElementTable::getList([
    'filter' => [
        'IBLOCK_ID' => '1', // ID инфоблока
    ],
    'select' => [
        'ID',
    ],
    'limit' => '6173'
]);
foreach ($rsElements as $element) {
    CIBlockElement::Delete($element['ID'])
}

С помощью ElementTable::getList получили 6173 элемента этого инфоблока и удалили их с помощью CIBlockElement::Delete

Другой вариант удаления

Этот вариант подойдет, если не знаете сколько элементов в инфоблоке и не хочется делать скрипт подсчета.

use Bitrix\Main\Loader,
    Bitrix\Iblock\ElementTable;
Loader::includeModule('iblock');
$rsElements = ElementTable::getList([
    'filter' => [
        'IBLOCK_ID' => '1', // ID инфоблока
    ],
    'select' => [
        'ID'
    ]
]);
foreach ($rsElements as $k => $element) {
  if ($k % 2 == 0) {
      CIBlockElement::Delete($element['ID'])
  }
}

Здесь происходит перебор полученного списка элементов. С помощью переменной $k отслеживается текущий индекс элемента в списке. Условие if ($k % 2 == 0) проверяет, является ли индекс чётным (то есть, каждый второй элемент). Если условие выполняется, вызывается метод Delete класса CIBlockElement для удаления элемента по его ID.

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

Услуги

Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.

Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.

Включено в стоимость разработки

В цену уже заложено всё, что нужно для легального и быстрого запуска. Доплачивать за базовые вещи не придётся.

  • Лицензия и модули

    Лицензия на «1С-Битрикс» нужной редакции, дополнительные модули и видео-инструкции по работе с готовым проектом.

  • Скорость и SEO

    Оптимизация кода и сервера под быструю загрузку, базовая SEO-оптимизация и добавление сайта в поисковые системы.

Блог-note

Заметки по 1С-Битрикс