Користувацькі модулі 1С-Бітрікс: архітектура, ORM, події, Marketplace

Користувацькі модулі 1С-Бітрікс: архітектура, ORM, події, Marketplace Допустили помилку — змінили ядро? Після оновлення все зламалося, а через рік ніхто не пам'ятає, що і навіщо правили. Знайома ситуація? Користувацький модуль вирішує цю проблему раз і назавжди. Ми розробляємо модулі, які не чіпа
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Користувацькі модулі 1С-Бітрікс: архітектура, ORM, події, Marketplace
Середній
~1-2 тижні

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    996
  • 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
    735
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    773
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1134

Користувацькі модулі 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С-Бітрікс.