Удаляем все неактивные элементы из инфоблока с ID 5, используя D7 ORM с постраничной обработкой для избежания превышения лимитов памяти или времени выполнения:
Код |
---|
<?php
use Bitrix\Main\Loader;
use Bitrix\Iblock\Elements\ElementProductTable; // Замените "Product" на символ. код вашего инфоблока
Loader::includeModule('iblock');
$iblockId = 5;
$limit = 100;
$offset = 0;
do {
$iterator = ElementProductTable::query()
->setSelect(['ID'])
->where('IBLOCK_ID', $iblockId)
->where('ACTIVE', 'N')
->setLimit($limit)
->setOffset($offset)
->exec();
$deletedCount = 0;
while ($row = $iterator->fetch()) {
if (\CIBlockElement::Delete((int)$row['ID'])) {
$deletedCount++;
}
}
$offset += $limit;
echo "Удалено элементов на этой итерации: $deletedCount\n";
} while ($deletedCount > 0); |