Кастомные модули 1С-Битрикс: архитектура, ORM, события, Marketplace

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Кастомные модули 1С-Битрикс: архитектура, ORM, события, Marketplace
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Кастомные модули 1С-Битрикс: архитектура, ORM, события, Marketplace

Допустили ошибку — изменили ядро? После обновления всё сломалось, а через год никто не помнит, что и зачем правили. Знакомая ситуация? Кастомный модуль решает эту проблему раз и навсегда. Мы разрабатываем модули, которые не трогают ядро, легко обновляются и документируются. Наш опыт — более 10 лет в разработке на 1С-Битрикс, десятки успешных проектов для разных отраслей.

Экономия на поддержке достигает 40%, а инвестиции в модуль окупаются за 3–6 месяцев. Гарантируем качество и соблюдение сроков. Свяжитесь с нами для оценки вашего проекта — мы подготовим коммерческое предложение.

Почему стоит отказаться от правки ядра?

Кастомный модуль — это не просто набор файлов. Это архитектурное решение, которое должно быть устойчивым к обновлениям, удобным в поддержке и безопасным. Прямые SQL-запросы в коде — устаревший подход. ORM D7 Битрикс лучше в плане безопасности и гибкости: он предотвращает SQL-инъекции и позволяет легко менять структуру данных. Мы используем современные паттерны: Repository, Service, Event-driven. Сертифицированные специалисты с опытом написания модулей для Marketplace гарантируют, что ваш модуль пройдёт модерацию и будет работать стабильно.

Как устроена архитектура модуля?

Модуль 1С-Битрикс — это директория в /bitrix/modules/<vendor>.<modulename>/ со строго определённой структурой. Битрикс использует соглашение об именовании: <vendor>.<name>, где vendor — краткое имя разработчика.

vendor.modulename/
├── install/
│   ├── index.php          # Класс установщика (extends CModule)
│   ├── db/
│   │   └── mysql/
│   │       ├── install.sql   # SQL для создания таблиц
│   │       └── uninstall.sql # SQL для удаления таблиц
│   └── files/             # Файлы, копируемые при установке
│       └── bitrix/
│           └── components/
├── lib/                   # Классы в пространстве имён Vendor\Modulename\
│   ├── Repository.php
│   ├── Service.php
│   └── Orm/
│       └── EntityTable.php  # ORM-сущность (D7)
├── lang/
│   ├── ru/
│   │   └── install/
│   │       └── index.php    # Языковые метки
│   └── en/
├── options.php            # Страница настроек модуля
└── include.php            # Подключается при \Bitrix\Main\Loader::includeModule()

Как работает ORM D7 в модуле?

Современные модули используют ORM Битрикс D7 вместо прямых SQL-запросов. Класс таблицы объявляется через наследование \Bitrix\Main\ORM\Data\DataManager:

namespace Vendor\Modulename\Orm;

use Bitrix\Main\ORM\Data\DataManager;
use Bitrix\Main\ORM\Fields\{IntegerField, StringField, DatetimeField, BooleanField};

class RequestTable extends DataManager
{
    public static function getTableName(): string
    {
        return 'vendor_modulename_requests';
    }

    public static function getMap(): array
    {
        return [
            new IntegerField('ID', ['primary' => true, 'autocomplete' => true]),
            new StringField('NAME', ['required' => true, 'size' => 255]),
            new StringField('EMAIL', ['size' => 255]),
            new BooleanField('ACTIVE', ['default_value' => true]),
            new DatetimeField('CREATED_AT'),
        ];
    }
}

Использование:

// Получить записи
$result = RequestTable::getList([
    'filter' => ['ACTIVE' => true],
    'select' => ['ID', 'NAME', 'EMAIL'],
    'order'  => ['CREATED_AT' => 'DESC'],
]);

// Добавить запись
RequestTable::add(['NAME' => 'Test', 'EMAIL' => '[email protected]']);

ORM D7 автоматически экранирует значения, предотвращая SQL-инъекции, и поддерживает тегированное кэширование. Это важно для высоконагруженных каталогов.

События и их регистрация

Модуль может подписываться на события платформы и генерировать собственные. Регистрация обработчика события:

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'sale',                    // модуль
    'OnSaleOrderBeforeSaved',  // событие
    ['\Vendor\Modulename\EventHandlers', 'onOrderBeforeSaved']
);

Генерация собственного события для расширяемости:

$event = new \Bitrix\Main\Event('vendor.modulename', 'OnRequestAdded', ['REQUEST' => $request]);
$event->send();

События позволяют интегрировать модуль с другими системами без изменения кода ядра. Например, вы можете подписаться на событие добавления заказа и отправить данные в 1С через CommerceML.

Как происходит установка модуля?

Процесс установки включает несколько шагов:

  1. Копирование модуля в /bitrix/modules/<vendor>.<name>/.
  2. Переход в админку → «Marketplace» → «Установленные решения».
  3. Нажатие «Установить». Система выполняет скрипт установщика (создание таблиц, копирование файлов).
  4. Настройка прав доступа и параметров модуля через options.php.

Административный интерфейс

Раздел в административной панели регистрируется через пункт меню (/bitrix/menu.php или автоматически через файл menu.php в папке модуля). Страницы административного раздела располагаются в /bitrix/admin/vendor_modulename_*.php. Для современных проектов административный интерфейс реализуется как Inertia/React SPA или как классические битриксовые административные страницы с использованием CAdminList, CAdminForm.

Версионирование и Marketplace

Модуль может распространяться через Marketplace 1С-Битрикс. Для публикации требуется: код без ошибок, языковые файлы для ru/en, документация, совместимость с актуальными версиями PHP и платформы.

Процесс разработки

Этап Детали
Аналитика Сбор требований, прототипирование, оценка сроков
Архитектура Проектирование структуры модуля, схемы БД, API
Разработка Написание кода, интеграция с внешними сервисами (ЮKassa, СДЭК, 1С), настройка кэширования
Тестирование Юнит-тесты, интеграционное тестирование, нагрузочное тестирование
Документация API-документация (PHPDoc), пользовательская инструкция
Передача Исходный код, доступы, обучение администраторов, гарантийная поддержка

Ориентировочные сроки

Сложность модуля Описание Срок
Простой 1–2 сущности, без сложной логики 1–2 недели
Средний 3–5 сущностей, события, кастомный UI 3–6 недель
Сложный Интеграции, многосайтовость, API 2–4 месяца

Что входит в разработку?

В рамках проекта мы предоставляем:

  • Архитектурную документацию (ER-диаграммы, описание API).
  • Исходный код с комментариями и PHPDoc.
  • Языковые файлы для ru/en.
  • Доступы к репозиторию и системе управления задачами.
  • Обучение администраторов работе с модулем.
  • Гарантийную поддержку (исправление ошибок) на 1 месяц.

Типичные ошибки при разработке и установке

  • Неправильные права на папку модуля (должна быть 755).
  • Отсутствие обязательных зависимостей (например, модуль sale).
  • Ошибки в SQL-скриптах — дублирование индексов.
  • Забыли добавить agent для фоновых задач.

Агенты — ещё один мощный механизм: вы можете запланировать выполнение кода по расписанию. Это полезно для синхронизации с внешними сервисами или очистки устаревших данных.

Получите консультацию — мы расскажем, как решить вашу задачу оптимально и сэкономить бюджет. Подробнее о платформе можно узнать на официальном сайте 1С-Битрикс.