Для разработчиковОбновлено: 23.10.2026 10:56:04

Где хранить доработки 1С-Битрикс: папка local и модули D7

Почему нельзя изменять ядро, когда использовать local/php_interface и как устроить собственный модуль в local/modules.

Время чтения: 10 мин.Уровень: Средний

Системные требования

Нужны доступ к файлам проекта, система контроля версий и тестовый контур. Перед переносом старого кода создайте резервную копию.

Смотреть системные требования

1. Отделите ядро от кода проекта

Каталог /bitrix относится к поставке продукта. Изменения внутри ядра трудно сопровождать и они могут исчезнуть после обновления.

Собственные классы, обработчики, компоненты и модули размещайте в /local. Добавьте этот каталог в репозиторий проекта, а ядро и пользовательские файлы храните по отдельным правилам.

Документация D7

Используйте актуальную онлайн-документацию классов и модулей Bitrix Framework.

Скачать

2. Используйте local/php_interface осознанно

Файл /local/php_interface/init.php подключается на каждом запросе. Оставляйте в нём только минимальную инициализацию: подключение автозагрузки и регистрацию обработчиков.

Не размещайте в init.php большие функции, запросы к базе и код, который выполняет работу при каждом открытии страницы. Синтаксическая ошибка в этом файле может остановить и публичную, и административную часть.

Совет

Не изменяйте bitrix/modules и системные компоненты bitrix/components/bitrix: система обновлений может перезаписать эти файлы.

3. Когда нужен собственный модуль

Создавайте модуль, если функциональность имеет настройки, таблицы, права, установку и удаление либо должна переноситься между проектами.

Пользовательские модули размещаются в /local/modules/vendor.module. API-классы D7 находятся в подпапке lib, имена файлов пишутся в нижнем регистре, а namespace соответствует идентификатору модуля.

4. Подключайте модуль через Loader

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

use Bitrix\Main\Loader;

if (!Loader::includeModule('iblock')) {
    throw new RuntimeException('Модуль iblock не установлен');
}

Не подключайте файлы ядра вручную через абсолютные пути — используйте публичный API платформы.

5. Подготовьте код к обновлениям

  • храните /local в Git;
  • фиксируйте поддерживаемые версии PHP и платформы;
  • не используйте недокументированные внутренние файлы без необходимости;
  • проверяйте модуль на копии проекта после обновления;
  • описывайте установку, миграции и откат.

Официальный урок «Модули в D7» и документация по init.php.

Была ли эта статья полезной?

Спасибо за ваш отзыв!