Создание собственного модуля в 1С-Битрикс: полное руководство для разработчиков
Создать модуль в 1С-Битрикс — это значит расширить функциональность сайта, добавить собственную бизнес-логику, API, обработчики событий и административные настройки. В этой большой инструкции разберем структуру модуля, файлы установки, регистрацию событий, использование D7, ORM и практический пример рабочего модуля.
Зачем создавать модуль в Битрикс?
- Вынос логики из шаблона сайта
- Повторное использование кода
- Создание коммерческих решений
- Интеграция с внешними сервисами
- Автоматизация бизнес-процессов
Где располагаются модули в 1С-Битрикс?
Все кастомные модули размещаются в директории:
/local/modules/
Рекомендуется использовать именно /local/modules, а не /bitrix/modules, чтобы обновления системы не затерли ваш код.
Структура модуля Битрикс
/local/modules/vendor.mymodule/
├── install/
│ ├── index.php
│ ├── version.php
├── lib/
│ ├── EventHandler.php
│ ├── Model/
│ │ └── ExampleTable.php
├── admin/
├── options.php
├── include.php
Файл version.php
<?php
$arModuleVersion = [
"VERSION" => "1.0.0",
"VERSION_DATE" => "2026-03-01 00:00:00"
];
Этот файл определяет текущую версию модуля.
Файл install/index.php
<?php
use Bitrix\Main\ModuleManager;
class vendor_mymodule extends CModule
{
public $MODULE_ID = "vendor.mymodule";
public $MODULE_NAME = "Мой модуль";
public $MODULE_DESCRIPTION = "Описание модуля";
public $MODULE_VERSION;
public $MODULE_VERSION_DATE;
function __construct()
{
include(__DIR__."/version.php");
$this->MODULE_VERSION = $arModuleVersion["VERSION"];
$this->MODULE_VERSION_DATE = $arModuleVersion["VERSION_DATE"];
}
function DoInstall()
{
ModuleManager::registerModule($this->MODULE_ID);
}
function DoUninstall()
{
ModuleManager::unRegisterModule($this->MODULE_ID);
}
}
Регистрация событий
Создадим обработчик события добавления элемента инфоблока:
<?php
namespace Vendor\MyModule;
class EventHandler
{
public static function onAfterIBlockElementAdd(&$arFields)
{
file_put_contents(
$_SERVER["DOCUMENT_ROOT"]."/log.txt",
print_r($arFields, true),
FILE_APPEND
);
}
}
Регистрация в install/index.php:
RegisterModuleDependences(
"iblock",
"OnAfterIBlockElementAdd",
"vendor.mymodule",
"Vendor\\MyModule\\EventHandler",
"onAfterIBlockElementAdd"
);
Использование D7 и ORM
Создадим ORM таблицу:
<?php
namespace Vendor\MyModule\Model;
use Bitrix\Main\Entity;
class ExampleTable extends Entity\DataManager
{
public static function getTableName()
{
return 'vendor_example';
}
public static function getMap()
{
return [
new Entity\IntegerField('ID', [
'primary' => true,
'autocomplete' => true
]),
new Entity\StringField('NAME')
];
}
}
Добавление настроек в админке
Файл options.php:
<?php
use Bitrix\Main\Config\Option;
$module_id = "vendor.mymodule";
if($_SERVER["REQUEST_METHOD"] == "POST")
{
Option::set($module_id, "API_KEY", $_POST["API_KEY"]);
}
?>
Автозагрузка классов
\Bitrix\Main\Loader::registerAutoLoadClasses(
"vendor.mymodule",
[
"Vendor\\MyModule\\EventHandler" => "lib/EventHandler.php",
"Vendor\\MyModule\\Model\\ExampleTable" => "lib/Model/ExampleTable.php",
]
);
Практический пример: модуль логирования заказов
Можно создать модуль, который:
- Перехватывает создание заказа
- Сохраняет данные в свою таблицу
- Отправляет данные во внешний API
- Добавляет страницу статистики в админке
Лучшие практики разработки модуля
- Использовать D7
- Не писать код в init.php
- Разделять бизнес-логику
- Использовать namespace
- Работать через /local/modules
Частые ошибки
- Неправильный MODULE_ID
- Отсутствие version.php
- Нарушение структуры каталогов
- Неочищенный кеш после установки
Заключение
Создание модуля в 1С-Битрикс — это профессиональный способ расширения функциональности проекта. Правильная структура, использование D7, ORM и событийной модели позволяют создавать масштабируемые и коммерчески успешные решения.
Кейсы компании
🎯 Кейс Павлов Студио: как мы внедрили Яндекс SmartCaptcha для защиты всех форм сайта (включая Bitrix)
Посмотреть
Разработка и сопровождение сайта https://aaa-sitrak.ru/ с последующей интеграцией на 1с-битрикс
Посмотреть
Доработка сайта https://tochka-kontakta.ru/ для организации «Точка Контакта»
Добро пожаловать в WordPress. Это ваша первая запись. Отредактируйте или удалите ее, затем начинайте создавать!
Посмотреть
Комментарии (0)
Оставить комментарий