Как удалить каталог битрикс управление сайтом

Инструкция, как удалить каталог в Битриксе за пару кликов. Чистим структуру сайта, не ломая ядро и не теряя нервы. Просто следуйте шагам!

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Удаление каталога товаров или информационного блока (инфоблока) в системе 1С-Битрикс: Управление сайтом, это действие необратимое и потенциально опасное для целостности данных. Прежде чем приступить к выполнению, обязательно создайте полную резервную копию сайта (файлов и базы данных).

В данной статье мы рассмотрим основные сценарии: удаление инфоблока «Каталог», удаление разделов/элементов внутри каталога, а также очистку связанных данных (торговых каталогов, свойств, прав доступа).


Сценарий 1: Полное удаление инфоблока «Каталог товаров»

Это самый радикальный способ. Он удаляет саму структуру каталога, все разделы, элементы, свойства и настройки.

  1. Авторизуйтесь в административной панели (/bitrix/admin/).
  2. Перейдите в меню: Контент → Инфоблоки → Типы инфоблоков.
  3. Найдите тип инфоблока, к которому относится ваш каталог (обычно это Каталог или 1С-Каталог).
  4. Нажмите на название типа инфоблока, чтобы увидеть список инфоблоков внутри.
  5. Найдите нужный инфоблок (например, «Каталог товаров»).
  6. В строке инфоблока нажмите на меню действий (значок «гамбургер» или правый клик) и выберите Удалить.
  7. Система запросит подтверждение. Внимательно прочитайте предупреждение: будут удалены все разделы, элементы, свойства, права доступа и настройки SEO.
  8. Подтвердите удаление.
Важно: Если инфоблок участвует в обмене данными с 1С (имеет внешний код, привязан к модулю «Торговый каталог»), простое удаление инфоблока может оставить «мусор» в таблицах модуля каталога (цены, остатки, SKU). См. Сценарий 2.

Сценарий 2: Правильное удаление Торгового каталога (SKU, цены, остатки)

В Битриксе «Каталог товаров» (Инфоблок) и «Торговый каталог» (Цены, Остатки, SKU) — это разные сущности. Если вы удалите только инфоблок, в базе данных останутся таблицы b_catalog_product, b_catalog_price, b_catalog_store_amount и др. Это приведет к ошибкам при переиндексации или новом импорте.

Порядок действий:

  1. Отвязка Торгового каталога:
    • Перейдите: Магазин → Настройки → Торговый каталог.
    • Найдите строку, привязанную к вашему инфоблоку каталога.
    • Нажмите Редактировать → внизу страницы кнопка Удалить (или «Отвязать» в старых версиях). Это удалит цены, остатки, настройки SKU, но сохранит сам инфоблок с товарами.
  2. Удаление инфоблока: После отвязки торгового каталога выполните действия из Сценария 1 для удаления самого инфоблока.

Сценарий 3: Удаление только разделов или элементов (очистка каталога)

Если нужно сохранить структуру каталога (свойства, настройки, права), но убрать все товары и категории:

Вариант А: Через административный раздел (для небольших объемов)

  1. Контент → Инфоблоки → выберите тип и инфоблок каталога.
  2. В левом меню выберите Разделы.
  3. Выберите корневой раздел (или нужные ветки) → галочка «Выбрать все» → в выпадающем меню «Действия» выберите Удалить.
  4. Аналогично можно удалить элементы на вкладке Элементы.

Вариант Б: Через публичную часть (компонент 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 или «Инфоблок не найден».
  • Права доступа — записи прав на инфоблок удалятся автоматически, но если были специальные права на разделы — проверьте Настройки → Пользователи → Группы пользователей → вкладка «Права».

Что проверить ПОСЛЕ удаления (Чек-лист)

  1. Очистка кэша: Настройки → Инструменты → Очистка кэша (выберите «Все кэши» или «Кэш компонентов»).
  2. Переиндексация поиска: Настройки → Поиск → Переиндексация (запустите полную).
  3. Проверка ссылок: Пройдитесь по сайту (главная, меню, карта сайта), убедитесь, что нет ссылок на удаленные разделы/товары (ошибки 404).
  4. Sitemap.xml: Если генерировался автоматически — перегенерируйте (Маркетинг → Поисковая оптимизация → Карта сайта).
  5. Агенты: Проверьте Настройки → Инструменты → Агенты — нет ли агентов, ссылающихся на удаленный инфоблок (например, выгрузка в Яндекс.Маркет, генерация YML).
  6. Интеграции (1С, API, CRM): Если шел обмен с 1С, обновите настройки обмена на стороне 1С (уберите выгрузку в этот инфоблок), иначе при следующем обмене инфоблок может восстановиться пустым или с ошибками.

  7. Частые ошибки и их решения

    Ошибка / Проблема Причина Решение
    «Нельзя удалить инфоблок, так как он используется в Торговом каталоге» Инфоблок привязан к модулю каталога (есть цены/остатки). Сначала удалите/отвяжите Торговый каталог в Магазин → Настройки → Торговый каталог.
    После удаления на сайте белый экран / ошибка 500 Компонент каталога на странице ищет несуществующий IBLOCK_ID. Отредактируйте страницу в визуальном редакторе или в коде шаблона, удалите или перенастройте компонент bitrix:catalog.
    Товары удалены, но в фильтре / умном фильтре остаются старые значения свойств Кэш компонента bitrix:catalog.smart.filter или индексы фильтра. Очистите кэш. При необходимости удалите индексы фильтра в настройках инфоблока (вкладка «Индексы» — но инфоблока уже нет, поэтому чистите кэш и переиндексируйте поиск).
    При следующем обмене с 1С каталог восстановился В 1С настроена выгрузка в этот инфоблок (по внешнему коду). Измените настройки обмена в 1С или в Битриксе (модуль «Обмен данными с 1С» → Настройки обмена).

    Альтернатива удалению: Архивирование (Деактивация)

    Если есть сомнения — не удаляйте, а деактивируйте:

    • Инфоблок: Редактирование инфоблока → вкладка «Основные» → снимите галочку Активен. Каталог исчезнет с сайта, но данные сохранятся в БД.
    • Разделы/Товары: Массово снимите галочку «Активен» через список элементов/разделов (действие «Изменить» → «Активность: Нет»).
    • Торговый каталог: Можно просто не отображать цены/остатки, отключив модуль каталога для данного инфоблока.

    Это безопаснее и позволяет быстро вернуть всё назад за 1 минуту.


    Резюме

    Удаление каталога в 1С-Битрикс — процесс каскадный. Главное правило: сначала разрывайте связи (Торговый каталог, права, компоненты на страницах, агенты, 1С), и только потом удаляйте сам инфоблок. Всегда действуйте на тестовой копии сайта или имея свежий бэкап.

    Если каталог большой (100к+ товаров), используйте консольные скрипты или API-агенты, чтобы не превысить лимиты PHP. После завершения обязательно очистите кэш и переиндексируйте поиск.


    Статья подготовлена на основе актуальных версий 1С-Битрикс (модуль «Инфоблоки», модуль «Торговый каталог»). Интерфейс может незначительно отличаться в зависимости от редакции (Старт, Стандарт, Малый бизнес, Бизнес) и версии ядра.