Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (2)

Лучшие ответы пользователя

Все ответы (1)
  • Как очистить корзину битрикс24, если в ней лежат удаленные файлы/сущности годовалой давности, несмотря на настройку "Удалять через 30 дней"?

    @SergeySukhanov
    За эту корзину отчевают таблицы

    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";


    Можете написать своего агента, воткнуть в крон или позапускать пару тысяч раз в консоли.
    Ответ написан
    Комментировать