Розробка кастомних дій бізнес-процесів Бітрікс24 під ключ
Стандартні дії Бізнес-процесів Бітрікс24 — відправити лист, змінити поле, створити задачу. Для інтеграційних завдань цього недостатньо. Наприклад, коли в процесі узгодження потрібно запросити дані з 1С, створити документ у SharePoint або відправити повідомлення в Telegram. Наші інженери з 10+ років досвіду розробляють кастомні дії бізнес-процесів під ключ. За 5 років роботи ми виконали понад 500 проєктів автоматизації. Кастомна дія — це PHP-клас, що успадковує \Bitrix\Bizproc\Activity\BaseActivity або CBPActivity. Вона реєструється як обробник події OnBizProcActivityList. На відміну від роботів CRM, кастомна дія доступна у всьому редакторі бізнес-процесів — для списків, диска, CRM. Ми розробляємо як прості синхронні дії, так і асинхронні з retry-логікою. Отримайте консультацію — ми оцінимо ваше завдання та запропонуємо оптимальне рішення.
Навіщо потрібні кастомні дії?
Кастомна дія — це PHP-клас, що успадковує \Bitrix\Bizproc\Activity\BaseActivity (сучасний API) або CBPActivity. Вона реєструється як обробник події OnBizProcActivityList. На відміну від роботів CRM, кастомна дія доступна у всьому редакторі бізнес-процесів — для списків, диска, CRM. Ми розробляємо як прості синхронні дії, так і асинхронні з retry-логікою.
Як обрати: REST API чи PHP-модуль?
| Критерій |
REST API |
PHP-модуль |
| Хмара |
Так |
Ні |
| Коробка |
Так |
Так |
| Час виконання |
Обмеження 5 с (синхр.) |
Не обмежено |
| Складність розгортання |
Низька (вебхук) |
Висока (зміна файлів) |
| Повернення значень |
Через callback |
Напряму |
| Управління версіями |
Автоматично |
Вручну |
Для швидкої інтеграції краще REST API, для складної логіки всередині коробки — PHP-модуль. Оцінимо ваш сценарій безкоштовно.
Як розробити кастомну дію через REST API?
Реєструється методом bizproc.activity.add згідно з офіційною документацією Бітрікс24. Приклад:
$client->call('bizproc.activity.add', [
'CODE' => 'GET_1C_PRICE',
'HANDLER' => 'https://my-server.com/bp-activity-handler',
'AUTH_USER_ID' => 1,
'NAME' => [
'ru' => 'Получить цену из 1С',
'en' => 'Get price from 1C',
],
'USE_SUBSCRIPTION' => 'Y',
'PROPERTIES' => [
'article' => [
'Name' => ['ru' => 'Артикул товара'],
'Type' => 'string',
'Required' => 'Y',
],
],
'RETURN_PROPERTIES' => [
'price' => [
'Name' => ['ru' => 'Цена из 1С'],
'Type' => 'double',
],
'available' => [
'Name' => ['ru' => 'В наличии'],
'Type' => 'bool',
],
],
]);
USE_SUBSCRIPTION: Y — обов'язково, якщо дія виконується довше 5 секунд. Бітрікс24 одразу повертає 200, а обробник асинхронно надсилає результат через bizproc.event.send. Без цього токена воркфлоу зависне.
Кроки розробки:
- Визначте код та параметри — задайте унікальний
CODE та опишіть PROPERTIES, RETURN_PROPERTIES.
- Викличте метод
bizproc.activity.add — передайте HANDLER URL, встановіть USE_SUBSCRIPTION в Y для асинхронних дій.
- Реалізуйте обробник — скрипт на вашому сервері приймає POST-запит від Бітрікс24, виконує бізнес-логіку та надсилає результат через
bizproc.event.send з правильним event_token.
- Протестуйте — запустіть процес з різними сценаріями, перевірте обробку помилок та таймаутів.
Розробка PHP-дії для коробкового Бітрікс24
Клас реєструється у файловій системі. Структура:
class My1CPriceActivity extends \Bitrix\Bizproc\Activity\BaseActivity
{
protected function execute(array &$arProperties)
{
$article = $this->getFieldValue('article');
$result = \My1CConnector::getPrice($article);
if ($result->isSuccess()) {
$this->setResultValue('price', $result->getPrice());
$this->setResultValue('available', $result->getAvailable());
} else {
$this->writeToTrackingService(
'Помилка запиту до 1С: ' . $result->getErrorMessage()
);
}
return \CBPActivityExecutionStatus::Closed;
}
public static function getPropertiesDialog($params)
{
// Рендер форми налаштування
}
}
Метод writeToTrackingService пише в журнал БП — важливо для налагодження.
Реальний кейс: автоматизація узгодження заявок з перевіркою кредитного ліміту
Завдання: дистриб'ютор, процес узгодження заявки на відвантаження з відстрочкою платежу. Потрібно отримати з CRM кредитний ліміт та заборгованість, потім автоматично схвалити або направити на ручне узгодження.
Рішення: розробили кастомну PHP-дію CheckCreditLimitActivity. Параметри: ID компанії в CRM, сума заявки. Вона запитує внутрішній API фінансової системи по HTTP, повертає змінні available_limit та approval_required. Потім в БП стоїть умова: якщо approval_required = true — завдання фінансовому директору, інакше — автоматичне схвалення.
Складність: фінансова система була недоступна в 3–5% випадків. Додали retry-логіку: дія повторює запит до 30 хвилин через агент, при недоступності — переводить заявку на ручне узгодження з повідомленням.
Результат: цикл узгодження скоротився з 4 годин до 20 хвилин для автоматичних заявок (68% випадків). Вартість розробки кейсу склала 45 000 рублів.
Які помилки допускають при розробці?
- Таймаут без USE_SUBSCRIPTION — синхронний обробник довше 5 секунд, процес зависає.
- Не передано event_token — результат не доходить до БП, воркфлоу чекає нескінченно.
- Необроблений виняток у PHP-дії — валить весь воркфлоу. Завжди try-catch.
Що входить в роботу?
- Аналіз — розбір бізнес-процесу та вимог до інтеграції.
- Проектування — вибір архітектури (REST/PHP), узгодження протоколу.
- Реалізація — написання коду, реєстрація дії, налаштування форми параметрів.
- Тестування — на тестовому процесі з граничними сценаріями.
- Документація — інструкція з встановлення та використання.
- Підтримка — 30 днів гарантійного супроводу.
Строки розробки
| Завдання |
Час |
| Проста синхронна дія |
2–3 дні |
| Асинхронна дія з retry |
4–6 днів |
| PHP-дія з UI-формою |
5–7 днів |
| Тестування, налагодження, документація |
2–3 дні |
Розробка кастомної дії під ключ займає 1–2 тижні в залежності від складності. Економія від впровадження — до 100 000 рублів на місяць. Оцінка проєкту — безкоштовно. Зв'яжіться з нами, щоб обговорити ваше завдання — отримайте консультацію та комерційну пропозицію.
Неправильний вибір редакції 1С-Бітрікс: як це ламає проект
Купили «Малий бізнес», запустили магазин, трафік виріс — і сайт впав. Композитний кеш тільки в «Бізнес», веб-кластер теж. Апгрейд — доплата різниці плюс робота по налаштуванню нових модулів. Правильний підбір та налаштування редакції 1С-Бітрікс одразу економлять значну частину бюджету на ліцензію та виключають витрати на позаплановий апгрейд. За роки роботи з Бітріксом ми провели багато апгрейдів і бачили всі типові помилки: від покупки «Старту» під великий каталог до використання «Бізнесу» для лендінгу з низькою відвідуваністю. Наш принцип — підібрати редакцію під реальні завдання та налаштувати її так, щоб не переплачувати за непотрібні модулі, але й не впиратися в стелю при першому стрибку трафіку.
Редакції 1С-Бітрікс: Управління сайтом
Чотири редакції, і різниця між ними — не в кількості функцій, а в доступних модулях ядра. Офіційна документація 1С-Бітрікс уточнює: композитний кеш доступний лише в редакції «Бізнес» і вище.
| Модуль / можливість |
Старт |
Стандарт |
Малий бізнес |
Бізнес |
| Інформаційні блоки |
+ |
+ |
+ |
+ |
| Веб-форми |
+ |
+ |
+ |
+ |
| Базове SEO |
+ |
+ |
+ |
+ |
| Блог, форум, соцмережа |
– |
+ |
+ |
+ |
Модуль sale (магазин) |
– |
– |
+ |
+ |
Обмін з 1С (catalog) |
– |
– |
+ |
+ |
Композитний кеш (main.composite) |
– |
– |
– |
+ |
Веб-кластер (cluster) |
– |
– |
– |
+ |
| Багатосайтовість |
– |
– |
– |
+ |
| REST API |
– |
– |
– |
+ |
Старт — мінімум, тільки контентні модулі: iblock, form, базове SEO. Для візиток і лендінгів. Модуля sale немає — магазин не побудувати.
Стандарт — контент плюс комунікації: блог, соціальна мережа, форум, розширена техпідтримка. Для корпоративних сайтів і порталів з UGC.
Малий бізнес — перша редакція з e-commerce: з'являється модуль sale. Комфортний стеля — до ~10 000 товарів без серйозної оптимізації. Для невеликих магазинів і каталогів з замовленням.
Бізнес — повний набір: композитний кеш (TTFB падає з 800 мс до 50–80 мс — в 10–15 разів швидше), веб-кластер, багатосайтовість, мультисклад, REST API. Для великих магазинів, маркетплейсів, проектів з 10 000+ відвідувачів на день.
Як не помилитися з вибором редакції 1С-Бітрікс?
Типові помилки
- Покупка «Старту» під інтернет-магазин — модуль sale відсутній, доведеться або апгрейдити одразу, або костилити через кастомні замовлення.
- Вибір «Малого бізнесу» для проекту, який через півроку виросте до 10 000 товарів — композитний кеш не включити, апгрейд до «Бізнесу» обійдеться в різницю ліцензій плюс робота по налаштуванню.
- Використання «Бізнесу» для лендінгу — переплата за функції, які ніколи не знадобляться.
Чому композитний кеш є must have для високонавантаженого проекту?
Композитний кеш (main.composite) прискорює завантаження сторінок в 10–15 разів порівняно з динамічною генерацією. Для магазину з великим трафіком без композиту сервер починає «потіти»: середній час відповіді зростає, база даних перевантажується, сторінки чекауту падають по таймауту. Композит вирішує проблему кардинально — HTML віддається nginx'ом без запуску PHP. Докладніше про технологію — в офіційній документації. Важливо правильно налаштувати exclude-маски для кошика, особистого кабінету та сторінок, де потрібна актуальність даних. Ми налаштовуємо це на кожному апгрейді до «Бізнес».
Вибір редакції для інтернет-магазину
| Тип магазину |
Рекомендована редакція |
Ключове обмеження |
| До 1000 товарів, трафік до 500 уніків/день |
Малий бізнес |
Нема композитного кешу (TTFB > 500 мс при піках) |
| 1000–10 000 товарів, 500–5000 уніків/день |
Малий бізнес з тюнінгом або Бізнес (одразу) |
Навантаження упирається в PHP-FPM |
| 10 000+ товарів, 5000+ уніків/день |
Бізнес |
Потрібен композит + кластер |
| Маркетплейс, 100 000+ товарів |
Бізнес + веб-кластер |
Горизонтальне масштабування обов'язкове |
Як вибрати редакцію: жорсткі критерії
По модулях:
- Обмін з 1С (
catalog) → мінімум «Малий бізнес»
- Композитний кеш (
main.composite) → тільки «Бізнес»
- Веб-кластер (
cluster) → тільки «Бізнес»
- Багатосайтовість → тільки «Бізнес»
- REST API → тільки «Бізнес»
По навантаженню:
- До 1000 уніків/день — будь-яка редакція впорається
- 1000–10 000 уніків/день — «Малий бізнес» з тюнінгом nginx/php-fpm упирається в стелю. «Бізнес» з композитним кешем — правильний вибір
- 10 000+ уніків/день — тільки «Бізнес» з композитом і кластером
По бюджету:
- Різниця між редакціями — варіюється (наприклад, Старт vs Бізнес — значно)
- Апгрейд у будь-який момент — доплата різниці у вартості ліцензій
- Наш принцип: беріть мінімально достатню. Але якщо знаєте, що через півроку знадобиться композит — беріть «Бізнес» одразу, тому що апгрейд — це ще й робота по налаштуванню
Чому апгрейд редакції вигідний при правильному виборі?
1С-Бітрікс дозволяє підвищувати редакцію без перевстановлення — дані зберігаються. Процес:
- Доплата різниці у вартості ліцензії
- Активація нового ключа: «Налаштування» → «Оновлення» → «Реєстрація»
- Встановлення доступних модулів через адмінку
- Налаштування нового функціоналу
- Тестування сумісності
Що ми робимо при апгрейді:
- Перевіряємо кастомний код на конфлікти з новими модулями — особливо якщо є власні обробники подій
OnBeforeOrderAdd, OnSaleBasketSaved
- Вмикаємо та налаштовуємо композитний кеш — коректні exclude-маски для динамічних сторінок (кошик, чекаут, особистий кабінет)
- Налаштовуємо мультисклад, якщо потрібно —
b_catalog_store, правила вибору складу
- Проганяємо весь функціонал на staging
- Документуємо зміни
Що ви отримуєте в результаті:
- Працюючий сайт на новій редакції без втрати даних
- Налаштований композитний кеш (якщо перейшли на «Бізнес»)
- Протокол тестування та рекомендації щодо подальшої оптимізації
- Доступи до staging та документація щодо змін
Ліцензія: продовження та ризики
Активна ліцензія дає оновлення — нові версії, патчі безпеки, багфікси, доступ до маркетплейсу та техпідтримку вендора. При закінченні сайт продовжує працювати, але залишається без оновлень. Для магазинів це небезпечно — патчі безпеки закривають вразливості в модулях sale, catalog, main. Витік даних з b_sale_order або b_user — питання часу. Продовження коштує значно менше покупки нової ліцензії. Регулярне продовження — страховка від незакритих CVE.
Связка «Управління сайтом» + Бітрікс24
Частий сценарій: сайт на 1С-Бітрікс + CRM в Бітрікс24. Замовлення з b_sale_order автоматично перетворюються на ліди або угоди, працює єдина авторизація, синхронізація клієнтської бази. Форми сайту (form або кастомні) ведуть у воронку CRM. Це дві окремі ліцензії та два окремі продукти — інтеграція між ними штатна і стабільно працює.
Рекомендації з практики
- Не економте на редакції, якщо точно знаєте, що функціонал знадобиться через півроку. Апгрейд редакції — та ж доплата плюс робота по налаштуванню та тестуванню.
- Бізнес для проектів з амбіціями зростання — композитний кеш окупає різницю в ціні при першому стрибку трафіку. Без композиту 3000+ уніків/день — сервер починає потіти.
- Бітрікс24 і «Управління сайтом» — різні продукти, різні ліцензії. Плутанина тут коштує грошей.
- Продовжуйте ліцензію щорічно — вартість продовження значно нижча за покупку нової, а без оновлень ви залишаєтеся з незакритими CVE.
Що ми пропонуємо: підбір та налаштування під ключ
Ми не просто консультуємо — беремо на себе повний цикл: аналіз поточного проекту, підбір редакції, закупівлю ліцензії (якщо потрібно), міграцію, налаштування всіх модулів та навчання команди. В рамках послуги ви отримуєте:
- Акт вибору редакції з обґрунтуванням
- План міграції (якщо апгрейд)
- Розгорнутий staging з новою редакцією
- Налаштування композитного кешу та кластеру (при необхідності)
- Документацію по новій конфігурації
- Гарантію працездатності після переходу
Зателефонуйте нам або залиште заявку — розповімо, яка редакція підійде конкретно під ваш проект, навантаження та плани зростання. Замовте консультацію — оцінимо ваш проект за один день і запропонуємо оптимальну конфігурацію. Отримайте персональний розрахунок вартості підбору та налаштування редакції 1С-Бітрікс прямо зараз.