Удаление каталога товаров или информационного блока (инфоблока) в системе 1С-Битрикс: Управление сайтом, это действие необратимое и потенциально опасное для целостности данных. Прежде чем приступить к выполнению, обязательно создайте полную резервную копию сайта (файлов и базы данных).
В данной статье мы рассмотрим основные сценарии: удаление инфоблока «Каталог», удаление разделов/элементов внутри каталога, а также очистку связанных данных (торговых каталогов, свойств, прав доступа).
Сценарий 1: Полное удаление инфоблока «Каталог товаров»
Это самый радикальный способ. Он удаляет саму структуру каталога, все разделы, элементы, свойства и настройки.
- Авторизуйтесь в административной панели (
/bitrix/admin/). - Перейдите в меню: Контент → Инфоблоки → Типы инфоблоков.
- Найдите тип инфоблока, к которому относится ваш каталог (обычно это Каталог или 1С-Каталог).
- Нажмите на название типа инфоблока, чтобы увидеть список инфоблоков внутри.
- Найдите нужный инфоблок (например, «Каталог товаров»).
- В строке инфоблока нажмите на меню действий (значок «гамбургер» или правый клик) и выберите Удалить.
- Система запросит подтверждение. Внимательно прочитайте предупреждение: будут удалены все разделы, элементы, свойства, права доступа и настройки SEO.
- Подтвердите удаление.
Сценарий 2: Правильное удаление Торгового каталога (SKU, цены, остатки)
В Битриксе «Каталог товаров» (Инфоблок) и «Торговый каталог» (Цены, Остатки, SKU) — это разные сущности. Если вы удалите только инфоблок, в базе данных останутся таблицы b_catalog_product, b_catalog_price, b_catalog_store_amount и др. Это приведет к ошибкам при переиндексации или новом импорте.
Порядок действий:
- Отвязка Торгового каталога:
- Перейдите: Магазин → Настройки → Торговый каталог.
- Найдите строку, привязанную к вашему инфоблоку каталога.
- Нажмите Редактировать → внизу страницы кнопка Удалить (или «Отвязать» в старых версиях). Это удалит цены, остатки, настройки SKU, но сохранит сам инфоблок с товарами.
- Удаление инфоблока: После отвязки торгового каталога выполните действия из Сценария 1 для удаления самого инфоблока.
Сценарий 3: Удаление только разделов или элементов (очистка каталога)
Если нужно сохранить структуру каталога (свойства, настройки, права), но убрать все товары и категории:
Вариант А: Через административный раздел (для небольших объемов)
- Контент → Инфоблоки → выберите тип и инфоблок каталога.
- В левом меню выберите Разделы.
- Выберите корневой раздел (или нужные ветки) → галочка «Выбрать все» → в выпадающем меню «Действия» выберите Удалить.
- Аналогично можно удалить элементы на вкладке Элементы.
Вариант Б: Через публичную часть (компонент bitrix:catalog.section.list / bitrix:catalog.products)
Если у вас настроено управление каталогом в публичной части (режим правки), можно зайти в публичную часть, включить «Режим правки» и удалять разделы/товары через контекстное меню компонента.
Вариант В: Массовое удаление через API (для разработчиков, большие объемы)
Если товаров/разделов больше 10-50 тысяч, админка может «упасть» по таймауту. Используйте скрипт в /bitrix/php_interface/ или консольный скрипт.
<?php
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (!CModule::IncludeModule("iblock")) die("IBLOCK not installed");
$IBLOCK_ID = *; // ID вашего инфоблока каталога
// 1. Удаляем элементы (товары)
$arFilter = array("IBLOCK_ID" => $IBLOCK_ID);
$res = CIBlockElement::GetList(array, $arFilter, false, false, array("ID"));
while($el = $res->Fetch) {
CIBlockElement::Delete($el["ID"]);
// Для больших объемов лучше использовать CIBlockElement::Delete($el["ID"]); в цикле с ограничением по времени
}
// 2. Удаляем разделы
$res = CIBlockSection::GetList(array("DEPTH_LEVEL" => "DESC"), array("IBLOCK_ID" => $IBLOCK_ID), false, array("ID"));
while($sec = $res->Fetch) {
CIBlockSection::Delete($sec["ID"]);
}
echo "Готово.";
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?> Внимание: Запускайте такой скрипт только если понимаете, что делаете. Лучше оформить его как агент или консольную команду (php script.php) для обхода лимитов max_execution_time.
Сценарий 4: Удаление каталога, созданного модулем «Интернет-магазин» (Битрикс24 / Стартовые шаблоны)
Если вы устанавливали демо-данные или используете коробочный «Интернет-магазин», каталог может быть привязан к множеству модулей:
- Модуль «Торговый каталог» (цены, остатки, SKU) — отвязать/удалить (см. Сценарий 2).
- Модуль «Маркетинг» / «Рекламные кампании» — проверьте, не привязаны ли товары к скидочным купонам или правилам работы с корзиной.
- Модуль «Поиск» — после удаления инфоблока переиндексируйте поиск (Настройки → Поиск → Переиндексация).
- Компоненты на страницах — удалите или настройте компоненты
bitrix:catalog,bitrix:catalog.section.list,bitrix:catalog.smart.filterна страницах сайта, иначе будут ошибки 404 или «Инфоблок не найден». - Права доступа — записи прав на инфоблок удалятся автоматически, но если были специальные права на разделы — проверьте Настройки → Пользователи → Группы пользователей → вкладка «Права».
Что проверить ПОСЛЕ удаления (Чек-лист)
- Очистка кэша: Настройки → Инструменты → Очистка кэша (выберите «Все кэши» или «Кэш компонентов»).
- Переиндексация поиска: Настройки → Поиск → Переиндексация (запустите полную).
- Проверка ссылок: Пройдитесь по сайту (главная, меню, карта сайта), убедитесь, что нет ссылок на удаленные разделы/товары (ошибки 404).
- Sitemap.xml: Если генерировался автоматически — перегенерируйте (Маркетинг → Поисковая оптимизация → Карта сайта).
- Агенты: Проверьте Настройки → Инструменты → Агенты — нет ли агентов, ссылающихся на удаленный инфоблок (например, выгрузка в Яндекс.Маркет, генерация YML).
- Интеграции (1С, API, CRM): Если шел обмен с 1С, обновите настройки обмена на стороне 1С (уберите выгрузку в этот инфоблок), иначе при следующем обмене инфоблок может восстановиться пустым или с ошибками.
- Инфоблок: Редактирование инфоблока → вкладка «Основные» → снимите галочку Активен. Каталог исчезнет с сайта, но данные сохранятся в БД.
- Разделы/Товары: Массово снимите галочку «Активен» через список элементов/разделов (действие «Изменить» → «Активность: Нет»).
- Торговый каталог: Можно просто не отображать цены/остатки, отключив модуль каталога для данного инфоблока.
Частые ошибки и их решения
| Ошибка / Проблема | Причина | Решение |
|---|---|---|
| «Нельзя удалить инфоблок, так как он используется в Торговом каталоге» | Инфоблок привязан к модулю каталога (есть цены/остатки). | Сначала удалите/отвяжите Торговый каталог в Магазин → Настройки → Торговый каталог. |
| После удаления на сайте белый экран / ошибка 500 | Компонент каталога на странице ищет несуществующий IBLOCK_ID. | Отредактируйте страницу в визуальном редакторе или в коде шаблона, удалите или перенастройте компонент bitrix:catalog. |
| Товары удалены, но в фильтре / умном фильтре остаются старые значения свойств | Кэш компонента bitrix:catalog.smart.filter или индексы фильтра. | Очистите кэш. При необходимости удалите индексы фильтра в настройках инфоблока (вкладка «Индексы» — но инфоблока уже нет, поэтому чистите кэш и переиндексируйте поиск). |
| При следующем обмене с 1С каталог восстановился | В 1С настроена выгрузка в этот инфоблок (по внешнему коду). | Измените настройки обмена в 1С или в Битриксе (модуль «Обмен данными с 1С» → Настройки обмена). |
Альтернатива удалению: Архивирование (Деактивация)
Если есть сомнения — не удаляйте, а деактивируйте:
Это безопаснее и позволяет быстро вернуть всё назад за 1 минуту.
Резюме
Удаление каталога в 1С-Битрикс — процесс каскадный. Главное правило: сначала разрывайте связи (Торговый каталог, права, компоненты на страницах, агенты, 1С), и только потом удаляйте сам инфоблок. Всегда действуйте на тестовой копии сайта или имея свежий бэкап.
Если каталог большой (100к+ товаров), используйте консольные скрипты или API-агенты, чтобы не превысить лимиты PHP. После завершения обязательно очистите кэш и переиндексируйте поиск.
Статья подготовлена на основе актуальных версий 1С-Битрикс (модуль «Инфоблоки», модуль «Торговый каталог»). Интерфейс может незначительно отличаться в зависимости от редакции (Старт, Стандарт, Малый бизнес, Бизнес) и версии ядра.