Кастомізація ядра Б24: наскільки це шкідливо і навіщо це потрібно

17 Травня 2018

наступна стаття
Василь Смолінський

Back End Developer

Василь Смолінський
Кастомізація ядра Б24: наскільки це шкідливо і навіщо це потрібно

У наш час CRM-системи займають важливу роль в бізнесі. Потрібно вести облік клієнтів, угод, замовлень і продажів. Бітрікс24 є провідним рішенням в комерційному середовищі. Він має величезну нішу функціоналу сприяє розвитку бізнесу і збільшення доходу.

Б24 може використовуватися як хмарний сервіс (cloud) або ж у вигляді коробкової версії (self-hosted), яка встановлюється на комп'ютер. Вони відрізняються між собою процесом налаштування. В хмарі доступний такий же набір функціоналу, як і в коробці, але кастомізувати його можна тільки в межах REST API. Користувач не має доступу до сервера, тому змінювати функціонал під свої потреби неможливо. Але це позбавляє від проблеми налаштування хостингу, адже цим займається Бітрікс. У коробковій версії передбачений доступ до всіх файлів і програм, відповідно їх можна змінювати і кастомізовувати під себе. Але настройка хостингу і сервера займає величезну кількість часу. Зате, за допомогою коробки можна додавати або змінювати весь доступний функціонал під потреби компанії.

Коробкова версія Бітрікс24 складається з «ядра» (модулі) і компонентів. Для зміни штатного функціонала підійде тільки кастомізація компонентів. Але не завжди виходить вчинити саме так. Доводиться змінювати модулі системи, і тут з'являється проблема. Після оновлення системи, модулі «перезатирають» себе новим кодом і втрачається написаний функціонал.

a614892f80dc9fc9b812e5a825314771.png

Приклад з мого робочого проекту. Клієнт захотів щоб, при натисканні на кнопки «Так» / «Ні» в системних повідомленнях з'являлося додаткове вікно, яке буде перепитувати користувача, чи впевнений він у своїй відповіді. Оброблювач даних кнопок перебувати в «ядрі» Бітрікс. Для вирішення цього завдання є тільки 2 варіанти:

  1. Писати свій модуль повідомлень зі своїми опрацьовувачем  кнопок (затратно по часу);

  2. Дописати системний обробник кнопок новим умовою в «ядрі».

У підсумку, другий варіант був реалізований протягом години, а на перший пішло б більше ніж 50 годин.

9215f3b0fa8151724534c35ca3b83bf7.png

606c7188e08f2ad815c356bb3ebd588b.png

Другий приклад з одного з моїх проектів пов'язаний з виставленням рахунку для клієнта. Бітрікс дозволяє кастомізувати PDF файл рахунку в спеціальному конструкторі:

381fc4940ad37898c0a836862e0df9b2.png

Але, на жаль, в ньому не можна повністю кастомізувати шаблон. Замовник хотів вивести платіжну інформацію про своїх клієнтів в рахунку. При цьому зберегти повну працездатність конструктора. Вийшла ситуація, де треба писати свій конструктор рахунків, або змінювати наявний. У підсумку, зміну вдалось зробити за 2 години роботи, в той час як розробка власного конструктора займала б більше як 80 годин.

І, як зазвичай це буває, в однієї проблеми є два варіанти рішень. З одного боку, редагування «ядра» Бітрікс є неправильним, при будь-якому оновленні весь кастомний код затирається. З іншого боку ми економимо час, який і так чималої варто. Вибір є завжди, але що робити — вибір за вами.


Схожі статті
Записатись на консультацію

Ми зв'яжемось з Вами протягом 10 хвилин