Кастомізація ядра Б24: наскільки це шкідливо і навіщо це потрібно
17 Травня 2018
наступна статтяУ наш час CRM-системи займають важливу роль в бізнесі. Потрібно вести облік клієнтів, угод, замовлень і продажів. Бітрікс24 є провідним рішенням в комерційному середовищі. Він має величезну нішу функціоналу сприяє розвитку бізнесу і збільшення доходу.
Б24 може використовуватися як хмарний сервіс (cloud) або ж у вигляді коробкової версії (self-hosted), яка встановлюється на комп'ютер. Вони відрізняються між собою процесом налаштування. В хмарі доступний такий же набір функціоналу, як і в коробці, але кастомізувати його можна тільки в межах REST API. Користувач не має доступу до сервера, тому змінювати функціонал під свої потреби неможливо. Але це позбавляє від проблеми налаштування хостингу, адже цим займається Бітрікс. У коробковій версії передбачений доступ до всіх файлів і програм, відповідно їх можна змінювати і кастомізовувати під себе. Але настройка хостингу і сервера займає величезну кількість часу. Зате, за допомогою коробки можна додавати або змінювати весь доступний функціонал під потреби компанії.
Коробкова версія Бітрікс24 складається з «ядра» (модулі) і компонентів. Для зміни штатного функціонала підійде тільки кастомізація компонентів. Але не завжди виходить вчинити саме так. Доводиться змінювати модулі системи, і тут з'являється проблема. Після оновлення системи, модулі «перезатирають» себе новим кодом і втрачається написаний функціонал.
Приклад з мого робочого проекту. Клієнт захотів щоб, при натисканні на кнопки «Так» / «Ні» в системних повідомленнях з'являлося додаткове вікно, яке буде перепитувати користувача, чи впевнений він у своїй відповіді. Оброблювач даних кнопок перебувати в «ядрі» Бітрікс. Для вирішення цього завдання є тільки 2 варіанти:
-
Писати свій модуль повідомлень зі своїми опрацьовувачем кнопок (затратно по часу);
-
Дописати системний обробник кнопок новим умовою в «ядрі».
У підсумку, другий варіант був реалізований протягом години, а на перший пішло б більше ніж 50 годин.
Другий приклад з одного з моїх проектів пов'язаний з виставленням рахунку для клієнта. Бітрікс дозволяє кастомізувати PDF файл рахунку в спеціальному конструкторі:
Але, на жаль, в ньому не можна повністю кастомізувати шаблон. Замовник хотів вивести платіжну інформацію про своїх клієнтів в рахунку. При цьому зберегти повну працездатність конструктора. Вийшла ситуація, де треба писати свій конструктор рахунків, або змінювати наявний. У підсумку, зміну вдалось зробити за 2 години роботи, в той час як розробка власного конструктора займала б більше як 80 годин.
І, як зазвичай це буває, в однієї проблеми є два варіанти рішень. З одного боку, редагування «ядра» Бітрікс є неправильним, при будь-якому оновленні весь кастомний код затирається. З іншого боку ми економимо час, який і так чималої варто. Вибір є завжди, але що робити — вибір за вами.
Ми зв'яжемось з Вами протягом 10 хвилин