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

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

Структура модуля

/local/modules/mycompany.mymodule/
  install/
    index.php          ← класс установки/удаления
    version.php        ← версия и дата
  lib/
    myservice.php      ← бизнес-логика (PSR-4 через Bitrix autoload)
  include.php          ← точка входа модуля
  .settings.php        ← настройки (опционально)
  lang/
    ru/
      lib/myservice.php  ← языковые константы

install/version.php

 "1.0.0",
    "VERSION_DATE" => "2026-03-01 00:00:00",
];

install/index.php — установщик модуля

MODULE_VERSION      = $arModuleVersion["VERSION"];
        $this->MODULE_VERSION_DATE = $arModuleVersion["VERSION_DATE"];
    }

    public function DoInstall(): bool
    {
        ModuleManager::registerModule($this->MODULE_ID);
        $this->InstallDB();
        $this->InstallEvents();
        return true;
    }

    public function DoUninstall(): bool
    {
        $this->UnInstallEvents();
        $this->UnInstallDB();
        ModuleManager::unRegisterModule($this->MODULE_ID);
        return true;
    }

    public function InstallDB(): void
    {
        // создание таблиц при необходимости
    }

    public function InstallEvents(): void
    {
        // регистрация обработчиков событий
    }

    public function UnInstallDB(): void {}
    public function UnInstallEvents(): void {}
}

include.php — точка входа

 "lib/myservice.php",
]);

lib/myservice.php — бизнес-логика

addError(new Error("ID должен быть положительным"));
            return $result;
        }

        // логика...
        $result->setData(["id" => $id, "status" => "ok"]);
        return $result;
    }
}

Использование модуля в компонентах

isSuccess()) {
    $data = $result->getData();
} else {
    $errors = $result->getErrorMessages();
}

Установка модуля

После размещения файлов в /local/modules/mycompany.mymodule/ модуль появится в административной панели: Рабочий стол → Marketplace → Установленные решения. Нажмите «Установить».

Или через PHP:

DoInstall();

Итог

Собственный модуль — это правильная архитектура для переиспользуемого кода в Битрикс. Следуйте соглашению об именовании vendor.module, используйте Bitrix\Main\Result для возврата результатов и регистрируйте классы через Loader::registerAutoLoadClasses.