• Создание модуля в 1С-Битрикс — пошаговая разработка с примерами
    Хотите заказать услугу прямо сейчас?

    Создание собственного модуля в 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 и событийной модели позволяют создавать масштабируемые и коммерчески успешные решения.

    📰 Последние статьи

    GitHub Copilot и “код из чужих проектов” — в чём скандал

    Читать

    Что сдавать на программиста после 9 класса в 2026 году

    Читать

    🚀 Можно ли написать сайт за 1 день: честный разбор с примерами

    Читать

    Почему одни разработчики зарабатывают $100, а другие $10 000

    Читать

    1С-Битрикс снова подорожал: рынок это воспринял гораздо болезненнее, чем кажется

    Читать

    Что будет, если отключат интернет: полный разбор последствий

    Читать

    Жаргон программистов: как они разговаривают и почему это звучит как заклинания

    Читать

    🤖 Заменит ли ИИ программистов: полный разбор будущего профессии

    Читать

    Киберпреступность в 2026: как устроена теневая цифровая экономика

    Читать

    «Не заставляйте меня думать» — Стив Круг: разбор книги, идеи и честная критика

    Читать

    Какие книги читать программисту с нуля — дружеский обзор без скучной теории

    Читать

    Как защищают приложения в 2026: угрозы, архитектура и реальная безопасность

    Читать

    🔐 Почему компании переходят на Zero Trust: новая модель безопасности в 2026 году

    Читать

    Почему даже senior-разработчики иногда боятся обновлять Bitrix

    Читать

    Почему становятся программистами 💻

    Читать

    ИИ для программистов 1С: как искусственный интеллект меняет разработку в 1С

    Читать

    Я вообще хороший программист или просто умею гуглить?

    Читать

    Разговор о взломе ВК и безопасности аккаунтов

    Читать

    ИИ для программистов: как искусственный интеллект меняет разработку в 2026 году

    Читать

    🚨 Почему ломается сайт: полный разбор с примерами кода

    Читать

    Чёрный список работодателей — почему программисты закрывают на него глаза в 2026 году

    Читать

    Дорама «Милашка-программист» — честный разбор от программиста

    Читать

    Комментарии (0)

    Оставить комментарий

    Кейсы компании

    Кейс: создание кастомной корзины на 1С‑Битрикс с лицензией «Стандарт»

    Посмотреть

    Кастомная система комментариев WordPress с микроразметкой и AJAX

    Посмотреть

    Как создать компонент в Битрикс 1С, который изменяет цену на китайские юани

    Посмотреть

    🎯 Кейс Павлов Студио: как мы внедрили Яндекс SmartCaptcha для защиты всех форм сайта (включая Bitrix)

    Посмотреть

    Разработка онлайн-калькулятора для товаров на сайте wp

    Посмотреть

    Обновление сайта с битрикс 1с с версии php 5.6 до 8.2

    Посмотреть

    Разработка сервиса для сбора информации из соц.сети «Вконтате»

    Посмотреть

    Разработка мега-меню для сайта на wordpress https://doma-penoblok.ru/

    Посмотреть

    Разработка и сопровождение сайта  https://aaa-sitrak.ru/ с последующей интеграцией на 1с-битрикс

    Посмотреть

    Разработка интернет-магазина https://sklad38.ru/ на битрикс 1с

    Посмотреть

    Доработка сайта https://tochka-kontakta.ru/ для организации «Точка Контакта»

    Добро пожаловать в WordPress. Это ваша первая запись. Отредактируйте или удалите ее, затем начинайте создавать!

    Посмотреть
    Max Messenger