Разработка кастомных действий бизнес-процессов Битрикс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С-Битрикс: как это ломает проект
Купили «Малый бизнес», запустили магазин, трафик вырос до 5000 уников в день — и сайт лёг. Композитный кэш только в «Бизнес», веб-кластер тоже. Апгрейд — доплата разницы плюс работа по настройке новых модулей. Правильный подбор и настройка редакции 1С-Битрикс сразу экономят до 40% бюджета на лицензию и исключают затраты на внеплановый апгрейд (в среднем 15–30 тыс. ₽ экономии при переходе с «Малого бизнеса» на «Бизнес» заранее вместо срочного). За 8 лет работы с Битриксом мы провели более 200 апгрейдов и видели все типовые ошибки: от покупки «Старта» под каталог на 50 000 товаров до использования «Бизнеса» для лендинга с 100 посещениями в день. Наш принцип — подобрать редакцию под реальные задачи и настроить её так, чтобы не переплачивать за ненужные модули, но и не упираться в потолок при первом скачке трафика.
Редакции 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 раз по сравнению с динамической генерацией. Для магазина с 3000+ посетителей в день без композита сервер начинает «потеть»: среднее время ответа растёт, база данных перегружается, страницы чекаута падают по таймауту. Композит решает проблему кардинально — HTML отдаётся nginx'ом без запуска PHP. Подробнее о технологии — в статье на Wikipedia. Важно правильно настроить 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+ уников/день — только «Бизнес» с композитом и кластером
По бюджету:
- Разница между редакциями — в 2–5 раз (например, Старт ~6 000 ₽, Бизнес ~60 000 ₽)
- Апгрейд в любой момент — доплата разницы в стоимости лицензий
- Наш принцип: берите минимально достаточную. Но если знаете, что через полгода понадобится композит — берите «Бизнес» сразу, потому что апгрейд — это ещё и работа по настройке
Почему апгрейд редакции выгоднее при правильном выборе?
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С-Битрикс прямо сейчас.