Блог Горошко Андрея 1C-Битрикс Работа с корзиной (Recycle Bin) через API: Удаление и восстановление сущностей

Работа с корзиной (Recycle Bin) через API: Удаление и восстановление сущностей

Средний рейтинг
Еще нет оценок

Модуль «Корзина» (recyclebin) позволяет не удалять данные безвозвратно, а временно сохранять их с возможностью восстановления.

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

1. Перемещение в корзину

Если сущность поддерживает корзину (например, задачи), стандартный метод Delete часто имеет опцию «в корзину». Но можно использовать и прямой API корзины для своих сущностей.

use Bitrix\Recyclebin\Recyclebin;

// Регистрируем удаление
$recyclebin = new Recyclebin($moduleId, $entityType, $entityId);
$recyclebin->setName("Название удаленного элемента");
$recyclebin->setData(['field1' => 'value1', 'field2' => 'value2']); // Сохраняем данные для восстановления
$result = $recyclebin->save();

if ($result->isSuccess()) {
    echo "Элемент перемещен в корзину. ID записи: " . $result->getId();
    // Теперь можно физически удалять данные из основной таблицы
}

2. Поиск в корзине

use Bitrix\Recyclebin\Internals\RecyclebinTable;

$res = RecyclebinTable::getList([
    'filter' => [
        '=MODULE_ID' => 'my.module',
        '=ENTITY_TYPE' => 'my_entity'
    ]
]);

while ($item = $res->fetch()) {
    echo "Удаленный элемент: {$item['NAME']} (ID в корзине: {$item['ID']})";
}

3. Восстановление из корзины

$recyclebinId = 10; // ID записи в корзине

$result = Recyclebin::restore($recyclebinId);

if ($result->isSuccess()) {
    echo "Элемент восстановлен!";
}

При восстановлении сработает событие OnBeforeRecycleBinRestore, где ваш модуль должен получить сохраненные данные (getData()) и заново создать запись в своей таблице.

Вывод:
Интеграция с модулем recyclebin — правило хорошего тона для важных данных.

Это защищает пользователей от случайного удаления и снижает нагрузку на техподдержку.


Recyclebin, корзина битрикс, CRecycleBin, удаление в корзину, восстановление из корзины, API корзины, OnBeforeRecycleBinAdd

Мой рейтинг:

Добавить комментарий

Related Post

Bitrix\Main\Update\Stepper: Обработка больших данных по шагам с прогресс-баромBitrix\Main\Update\Stepper: Обработка больших данных по шагам с прогресс-баром

Средний рейтинг Еще нет оценок Когда нужно обработать 100 000 элементов или импортировать огромный файл, обычный скрипт упадет с ошибкой max_execution_time. Решение — выполнять задачу порциями (по шагам). В Битрикс для

Обмен данными между 1С и Битрикс: детальное руководствоОбмен данными между 1С и Битрикс: детальное руководство

Средний рейтинг Еще нет оценок Эта статья подробно описывает процесс обмена данными между 1С и сайтом на базе 1С-Битрикс, используя компонент catalog.import.1c (импорт каталога товаров из 1С на сайт). Мы

Отладка и Логирование в Битрикс: Инструменты разработчикаОтладка и Логирование в Битрикс: Инструменты разработчика

Средний рейтинг Еще нет оценок Ни один разработчик не может обойтись без инструментов отладки. В Битрикс есть несколько способов посмотреть, что происходит «под капотом», от самых простых до продвинутых. 1.