За эту корзину отчевают таблицы
b_recyclebin
b_recyclebin_data
b_recyclebin_files
Собственно, варварский способ: truncate.
Способ для любителей проводить через ядро:
use Bitrix\Main\Loader;
use Bitrix\Recyclebin\Internals\Models\RecyclebinTable;
// Функция для удаления порции записей из корзины
function deleteRecycleBinRecords($limit = 50)
{
Loader::includeModule('recyclebin');
// Получаем IDs первых $limit записей из корзины
$result = RecyclebinTable::getList([
'select' => ['ID'], // Выбираем только ID
'limit' => $limit, // Ограничиваем выборку
'order' => ['ID' => 'ASC'], // Сортируем по ID
]);
$idsToDelete = [];
while ($item = $result->fetch()) {
$idsToDelete[] = $item['ID'];
}
if (empty($idsToDelete)) {
echo "Корзина пуста.\n";
return false; // Нет записей для удаления
}
// Удаляем каждую запись
foreach ($idsToDelete as $id) {
\Bitrix\Recyclebin\Recyclebin::remove($id);
}
return true; // Есть удаленные записи
}
deleteRecycleBinRecords(100);
echo "Корзина очищена.\n";
Можете написать своего агента, воткнуть в крон или позапускать пару тысяч раз в консоли.