Структура модулей в 1C-Битрикс: разбор с примерами
Модули в Битрикс — это надстройки над ядром, которые позволяют расширять функционал системы. Если компонент решает локальную задачу (например, вывод списка новостей), то модуль может добавлять целые подсистемы: API, сервисы, интеграции с внешними системами, админские страницы и т.п.
По сути, модуль — это «пакет» с кодом, который можно установить, обновить или удалить через административную часть Битрикс. Разберём его структуру.
Где лежат модули
/bitrix/modules/— системные и сторонние модули из маркетплейса./local/modules/— кастомные модули.
👉 Всегда размещайте собственные разработки в /local/modules/ — это обезопасит от затирания кода при обновлениях.
Общая структура модуля
Пример дерева папки:
/local/modules/
└── vendor.module/
├── admin/
├── classes/
│ └── general/
├── install/
│ ├── components/
│ ├── db/
│ ├── events/
│ ├── files/
│ ├── step.php
│ ├── uninstall.php
│ └── version.php
├── lang/
│ └── ru/
├── lib/
├── options.php
├── include.php
└── default_option.php
Основные папки и файлы
1. include.php
- Назначение: точка входа модуля. Здесь подключаются классы, функции и т.д.
- Обязательность: обязателен для любого модуля.
2. install/
- Назначение: содержит файлы для установки и удаления модуля.
- Что внутри:
install.php— сценарий установки (создание таблиц, регистрация событий).uninstall.php— сценарий удаления.version.php— версия модуля.step.php— пошаговый установщик (если нужен мастер установки).db/— SQL-скрипты для создания/удаления таблиц.components/иfiles/— если вместе с модулем ставятся компоненты или файлы.
3. classes/ и lib/
- Назначение: хранят бизнес-логику.
-
Разница:
classes/general/— старый подход.lib/— современный D7-подход с автозагрузкой через неймспейсы.
👉 Рекомендуется использовать lib/.
4. admin/
- Назначение: скрипты для административного интерфейса (страницы в админке).
- Пример: собственный список элементов, отдельные формы управления.
5. options.php
- Назначение: страница настроек модуля в административной панели.
- Пример: поля для API-ключей, галочки включения/выключения функций.
6. default_option.php
- Назначение: значения параметров по умолчанию. Загружаются при установке модуля.
7. lang/
- Назначение: языковые файлы для локализации (сообщения, подписи, тексты ошибок).
- Структура: аналогична компонентам — подпапки ru/, en/ и т.д.
Жизненный цикл модуля
- — через админку запускается
install.php. Создаются таблицы, регистрируются обработчики событий, копируются файлы. - Работа — подключается
include.php, модули становятся доступны в коде черезLoader::includeModule('vendor.module'). - Удаление — выполняется
uninstall.php, очищаются таблицы, снимаются события.
Рекомендации по разработке
- Используйте D7-подход и папку
lib/вместо устаревшихclasses/. - Всегда прописывайте версию в
version.php— это нужно для обновлений. - Настраивайте
options.php, чтобы админы могли менять параметры модуля без правки кода. - Не смешивайте бизнес-логику и шаблоны — выносите всё в отдельные классы.
- Храните свои модули в
/local/modules/, а не в/bitrix/modules/. - Локализуйте текстовые строки — пригодится при разработке многоязычных проектов.
🔥 В итоге модуль — это не просто набор файлов, а полноценное расширение платформы. Если компоненты нужны «для вывода», то модули — для «архитектуры и логики».