К статье
Практический материал

Администрирование · 11 мин

Как удалить модуль 1С-Битрикс

Как правильно удалить модуль 1С-Битрикс через админку и вручную: подготовка, бэкап, удаление данных, проверка результата и типичные ошибки.

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

Штатный механизм удаления предусмотрен в административном разделе и выполняет деинсталляцию корректно: модуль сам убирает свои таблицы, агенты и обработчики событий. Проблемы возникают обычно в двух случаях — когда модуль удалён частично вручную и админка стала недоступна, либо когда модуль сторонний и его деинсталлятор написан некачественно.

Ниже разобраны оба сценария: штатное удаление через панель управления и аварийное удаление, когда стандартный путь недоступен. Отдельно описано, как проверить, что модуль удалён полностью, и что делать с «хвостами» в базе данных.

Подготовка: что сделать до удаления

Первый и обязательный шаг — полная резервная копия. Нужны и файлы сайта, и дамп базы данных, потому что деинсталлятор модуля удаляет данные безвозвратно. Бэкап можно сделать штатным средством Битрикса («Настройки → Инструменты → Резервное копирование») или внешними инструментами: архив файлов через панель хостинга и экспорт базы через mysqldump или phpMyAdmin.

Второй шаг — проверить зависимости. Многие модули связаны между собой: например, интернет-магазин зависит от торгового каталога, а решения из Marketplace — от модулей, для которых они разработаны. Если удалить базовый модуль, зависимые перестанут работать. Список зависимостей виден в карточке модуля и в описании решения на Marketplace.

Третий шаг — определить, где используется модуль: компоненты на страницах, шаблоны, агенты, почтовые события, обработчики в init.php. Если модуль встроен в бизнес-процессы, его удаление сломает соответствующие страницы. Полезно заранее выписать, что придётся убрать или заменить после деинсталляции.

Штатное удаление через административный раздел

Стандартный путь подходит для любого корректно установленного модуля — и стороннего, и входящего в дистрибутив. Порядок действий одинаковый.

Порядок действий
  1. 1
    Войдите в административный раздел с правами администратора
  2. 2
    Откройте «Настройки → Настройки продукта → Модули»
  3. 3
    Найдите нужный модуль в списке и выберите действие «Удалить»
  4. 4
    На шаге деинсталляции отметьте опции удаления таблиц и данных, если они предлагаются
  5. 5
    Подтвердите операцию и дождитесь сообщения об успешном удалении
  6. 6
    Проверьте, что модуль исчез из списка, а его папка — из /bitrix/modules/ или /local/modules/

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

После завершения система покажет результат. Если появилась ошибка на середине процесса, не повторяйте удаление вслепую: сначала посмотрите, на каком шаге остановилась деинсталляция, и проверьте состояние папки модуля и его таблиц — возможно, часть работы уже выполнена.

Удаление сторонних модулей из Marketplace

Решения из Marketplace удаляются тем же способом через список модулей, но у них чаще встречаются особенности. Во-первых, сторонний деинсталлятор может не удалять данные полностью — разработчики иногда оставляют таблицы и папки с загруженными файлами, чтобы при переустановке информация сохранилась.

Во-вторых, у решений часто есть демо-данные и служебные страницы в публичной части: разделы каталога, страницы оформления заказа, инфоблоки. Деинсталлятор модуля их не трогает — это контент сайта, и убирать его нужно вручную через структуру сайта и список инфоблоков.

В-третьих, проверьте лицензионные привязки: некоторые платные решения регистрируют установку на домене. Если планируется переустановка модуля позже, уточните в документации разработчика, как корректно освободить лицензию.

Аварийное удаление, когда админка недоступна

Бывает, что модуль удалён частично или содержит фатальную ошибку, и административный раздел не открывается. В этом случае порядок действий другой: сначала восстановить работоспособность, потом удалять штатно.

Если сайт падает с ошибкой вида «Class not found» или «Table doesn't exist» с упоминанием конкретного модуля, временно отключите его загрузку. Для этого переименуйте папку модуля в /bitrix/modules/ или /local/modules/ — например, добавьте к имени суффикс _off. Это не удаление, а способ остановить автозагрузку классов и получить доступ к админке.

Однако если модуль числится установленным в базе, ядро продолжит вызывать его обработчики событий и агенты. Поэтому следующий шаг — убрать регистрацию модуля в базе данных: в таблице b_module найти запись с ID модуля. Аккуратный вариант — выполнить SQL-запрос на удаление только этой строки, предварительно сделав дамп таблицы.

sql
-- Сначала проверьте запись
SELECT * FROM b_module WHERE ID = 'vendor.module';
-- Затем удалите только её
DELETE FROM b_module WHERE ID = 'vendor.module';

После того как админка заработала, откройте список модулей. Если модуль отображается как неустановленный, удалите оставшиеся файлы его папки и по возможности запустите его деинсталлятор. Если модуль в списке значится установленным — удалите его штатной кнопкой. Ручная правка базы без деинсталлятора оставляет в базе таблицы, агенты и события модуля, которые придётся вычищать отдельно.

Что почистить после удаления

Даже корректная деинсталляция не всегда убирает всё. Проверьте типичные места, где остаются следы модуля, и уберите их вручную при необходимости.

  • Папки модуля: /bitrix/modules/идентификатор и /local/modules/идентификатор — после удаления их быть не должно.
  • Таблицы в базе данных с префиксом модуля — сверьте список таблиц до и после деинсталляции.
  • Агенты: «Настройки → Инструменты → Агенты» — уберите записи, ссылающиеся на классы удалённого модуля.
  • Обработчики событий в файле /bitrix/php_interface/init.php или /local/php_interface/init.php — вызовы AddEventHandler для удалённого модуля дадут фатальную ошибку.
  • Компоненты и их вызовы на страницах сайта, шаблоны компонентов в /local/templates/.
  • Почтовые события и шаблоны писем, созданные модулем.
  • Загруженные файлы в /upload/, если модуль хранил там данные.

Особое внимание уделите init.php: это самая частая причина «белого экрана» после удаления модуля. Любой вызов класса или регистрация обработчика несуществующего модуля останавливает выполнение всего сайта. Закомментируйте или удалите такие строки и проверьте работу публичной части.

Типичные ошибки
01
Удаление папки модуля через FTP без деинсталляции — ядро продолжает обращаться к классам и таблицам, сайт падает с фатальной ошибкой
02
Пропуск резервного копирования — данные модуля удаляются безвозвратно вместе с таблицами
03
Удаление базового модуля, от которого зависят другие — перестают работать связанные решения и разделы
04
Оставленные вызовы модуля в init.php — белый экран на всех страницах после успешного удаления
05
Повторная установка поверх недоудалённого модуля — конфликт существующих таблиц и ошибки инсталлятора

Проверка результата

После удаления и чистки убедитесь, что сайт работает полностью, а не только на главной странице. Пройдитесь по разделам, где использовался модуль, откройте административный список агентов и событий, проверьте журнал ошибок.

Контрольные точки

Как проверить результат

Список модулей в админке
Норма

Модуль отсутствует или помечен как не установленный

Тревожный признак

Модуль числится установленным, но папки нет

Публичные страницы сайта
Норма

Страницы открываются без ошибок и предупреждений

Тревожный признак

Белый экран или ошибка Class not found

База данных
Норма

Таблиц модуля нет в списке таблиц

Тревожный признак

Таблицы с префиксом модуля остались

Журнал ошибок PHP
Норма

Нет новых записей, связанных с модулем

Тревожный признак

Повторяющиеся ошибки обращения к удалённым классам

Агенты и события
Норма

Нет записей, ссылающихся на модуль

Тревожный признак

Агенты пытаются вызвать несуществующие функции

Если на каком-то шаге обнаружена проблема, не пытайтесь «дожать» удаление повторными действиями. Надёжнее восстановить состояние из резервной копии и повторить процедуру по шагам, устранив причину сбоя.

Маршрут решения

Как выбрать действие

Модуль отображается в списке и админка работаетУдаляйте штатно через «Настройки → Модули» с опцией удаления данных
Админка недоступна из-за ошибок модуляПереименуйте папку модуля, восстановите доступ, затем удалите штатно
Модуль удалён, но сайт падаетПроверьте init.php, агенты и обработчики событий на вызовы удалённого модуля
Модуль нужно переустановить позжеПри деинсталляции сохраните данные, снимите опцию удаления таблиц
Модуль системный (main, iblock, sale)Не удаляйте — это компоненты ядра, их удаление разрушает продукт

Частые вопросы

Можно ли удалить модуль, просто стерев его папку с сервера?

Нет. Запись об установленном модуле останется в базе данных, и ядро продолжит подключать его классы, агенты и обработчики событий. Результат — фатальные ошибки на сайте. Сначала деинсталляция через админку, только потом (если папка осталась) ручное удаление файлов.

Как удалить модуль, если кнопка «Удалить» неактивна?

Обычно это означает, что от модуля зависят другие установленные модули или решения. Сначала удалите зависимые решения, затем сам модуль. Также проверьте, не является ли модуль системным — системные модули ядра удалить нельзя по design.

Удалятся ли данные модуля вместе с ним?

Зависит от опций деинсталлятора. Большинство модулей на шаге удаления спрашивают, убирать ли таблицы и данные. Если отметить удаление — данные пропадут безвозвратно. Если снять отметку — таблицы останутся в базе и будут доступны при повторной установке.

Что делать, если после удаления модуля появился белый экран?

Чаще всего причина — вызовы классов модуля в init.php, шаблонах или обработчиках событий. Включите отображение ошибок или посмотрите лог PHP: в сообщении будет указан файл и строка с обращением к несуществующему классу. Удалите или закомментируйте этот код.

Как полностью убрать следы модуля из базы данных?

После штатной деинсталляции проверьте список таблиц на наличие префикса модуля, очистите агенты и события в админке. Если деинсталлятор оставил таблицы, их можно удалить вручную через SQL, но только после резервной копии базы и с уверенностью, что таблицы принадлежат именно этому модулю.

Можно ли откатить удаление модуля?

Штатного механизма отката нет. Восстановление возможно только из резервной копии: верните файлы и базу данных в состояние до удаления. Именно поэтому бэкап перед деинсталляцией — обязательный шаг, а не рекомендация.

Итог

Что важно запомнить

Модуль удаляется только штатной деинсталляцией через «Настройки → Модули», а не удалением папки. Перед началом — полная резервная копия файлов и базы. После удаления проверьте init.php, агенты, события и таблицы: именно там чаще всего остаются следы, ломающие сайт.