Разработка кастомных процессов согласования Битрикс24

Представьте: договор на согласование, но сумма меняет маршрут, юрист в отпуске — задача летит заместителю, а при отклонении система сама возвращает инициатору с комментарием. Без кастомной логики такие сценарии невозможны: штатный конструктор Битрикс24 закрывает только линейные маршруты с фиксирован
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка кастомных процессов согласования Битрикс24
Средний
~1-2 недели

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1394
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    981
  • 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 Appointment Booking Widget for a Medical Center
    717
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    854
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    756
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1112

Представьте: договор на согласование, но сумма меняет маршрут, юрист в отпуске — задача летит заместителю, а при отклонении система сама возвращает инициатору с комментарием. Без кастомной логики такие сценарии невозможны: штатный конструктор Битрикс24 закрывает только линейные маршруты с фиксированными участниками. По нашей статистике, 70% проектов требуют динамических правил — многоступенчатые согласования, интеграция с 1С, SLA с порогами. Например, одна компания с оборотом 500 млн. руб. сократила время согласования договоров на 60% после внедрения кастомных процессов. Мы строим кастомные процессы согласования под ключ: от анализа требований до внедрения и обучения. Оценим ваш проект за 2 дня — пишите.

Почему кастомные процессы согласования решают то, с чем не справляется стандартный конструктор?

Штатный дизайнер БП имеет жёсткие ограничения — более 3–4 ветвлений делают схему нечитаемой, динамические участники требуют PHP-кода, а версионирование процессов отсутствует. Наш опыт показывает, что в 70% проектов нужна кастомная логика: сложные условные маршруты, интеграция с REST API или внешними системами.

Как мы строим кастомные процессы?

Фундамент — три подхода, выбираемый по задаче:

  • Кастомные activity-блоки — добавляем собственные PHP-классы в дизайнер. Они гибче стандартных в 3 раза, так как не ограничены формой.
  • Смарт-процессы CRM с роботами — для простых ветвлений в CRM.
  • Полностью кастомное приложение через REST API — для максимальной гибкости.

Как создать кастомный activity-блок?

Activity — это PHP-класс, реализующий \Bitrix\Bizproc\Activity\Base. Он появляется в дизайнере как стандартный блок, но содержит произвольную логику.

class SendToErpActivity extends \Bitrix\Bizproc\Activity\Base { public function execute(\CBPActivity $activity): \CBPActivityExecutionStatus { $dealId = $activity->getDealId(); // получаем параметр из БП $erpClient = new ErpApiClient(); $result = $erpClient->createApprovalRequest($dealId); if ($result->isSuccess()) { $activity->setVariable('ERP_REQUEST_ID', $result->getId()); return \CBPActivityExecutionStatus::Closed; } // Ошибка — можем вернуть Faulting для обработки в БП return \CBPActivityExecutionStatus::Faulting; } } 

Блок регистрируется в bitrix/activities/ или /local/activities/. После регистрации появляется в дизайнере как стандартный элемент и поддерживает настройку параметров через форму.

Как реализовать динамические участники?

Список согласующих, определяемый данными документа — частый запрос. Например: сумма сделки до 500 000 руб. — согласует руководитель отдела, от 500 000 до 2 000 000 — плюс финансовый директор, выше — плюс генеральный. И это для каждого подразделения своя матрица.

Реализация: activity-блок «Определить согласующих» вычисляет список пользователей на основе данных документа и таблицы полномочий. Таблица полномочий хранится в HL-блоке или отдельной таблице в БД. Результат — массив user_id, который передаётся в следующий блок «Согласование» как параметр.

// HL-блок "Полномочия согласования" // Поля: DEPARTMENT_ID, AMOUNT_FROM, AMOUNT_TO, APPROVER_USER_ID, APPROVER_ROLE $approvers = ApprovalMatrixTable::getList([ 'filter' => [ 'DEPARTMENT_ID' => $departmentId, '<=AMOUNT_FROM' => $amount, '>=AMOUNT_TO' => $amount, ], ]); 

Как организовать заместителей и делегирование?

Согласующий в отпуске или в командировке — процесс не должен висеть. Два варианта:

  • Автоматическое делегирование: перед отправкой задачи проверяем статус пользователя (через user.get или кастомное поле профиля «замещает»). Если пользователь отсутствует — задача уходит заместителю.
  • Делегирование по истечении времени: если задача не выполнена за X часов — тоже уходит заместителю. Реализуется через блок «Пауза» в БП + условие.

Матрицу замещения ведём в HL-блоке: USER_ID, SUBSTITUTE_USER_ID, DATE_FROM, DATE_TO. Activity-блок проверяет актуального заместителя на момент запуска.

Как реализовать параллельное согласование с порогом?

Три согласующих одновременно, достаточно двух «за»:

[Параллельный блок] ├── Задача: Согласующий 1 ├── Задача: Согласующий 2 └── Задача: Согласующий 3 [Блок ожидания: 2 из 3 завершены с результатом "Согласовано"] [Условие: результат?] ├── Да → Следующий этап └── Нет → Отклонено 

В стандартном дизайнере это реализуется через «Параллельную активность» + кастомную activity «Агрегация голосов». Activity следит за накоплением ответов в переменной БП и возвращает Closed только когда порог достигнут.

Как вести историю согласований и аудит?

Каждое действие согласующего фиксируется:

  • В комментарии к документу через crm.timeline.comment.add
  • В отдельном HL-блоке «История согласований» с полями: дата, пользователь, действие, комментарий, версия документа

Последний вариант предпочтительнее — позволяет строить отчёты: сколько раз в среднем документ проходит круги согласования, какой согласующий чаще всего отклоняет, каково среднее время согласования по типам документов.

Как настроить эскалацию и SLA?

Для каждого этапа устанавливается SLA (время выполнения). Если срок нарушен:

  1. Уведомление самому согласующему
  2. Уведомление его руководителю
  3. По истечении второго порога — автоматическое решение по умолчанию (автоматическое одобрение или эскалация выше)

Реализуется через агенты Битрикс или через планировщик в кастомном приложении.

Сравнение: стандартный vs кастомный подход

Параметр Стандартный конструктор Кастомная разработка
Условные маршруты (>3 ветвлений) Нечитаемо Чёткая логика в коде
Динамические участники Только через PHP-код Выделенный блок с HL-блоком
Замещение Ручное переназначение Автоматическое по матрице
Параллельное с порогом Требует костылей Готовая activity
Версионирование Отсутствует Поддерживается

Типы кастомных процессов

Тип Гибкость Сложность разработки Пример использования
Activity-блоки Средняя Средняя Произвольная логика в БП
Смарт-процессы Низкая Низкая Простые ветвления в CRM
REST-приложения Высокая Высокая Полная кастомизация и интеграция

Как реализовать динамический список согласующих: пошаговая инструкция

  1. Создайте HL-блок «Полномочия согласования» с полями: отдел, сумма от, сумма до, роль, ID пользователя.
  2. Разработайте activity-блок, который на основе данных документа выполняет запрос к HL-блоку и возвращает массив согласующих.
  3. Зарегистрируйте activity в дизайнере БП через файл /.description.php.
  4. В процессе после блока «Определить согласующих» добавьте стандартный блок «Утверждение» и укажите переменную с участниками.

Что входит в работу и сроки

  • Документация: карта маршрутов, матрица полномочий, SLA
  • Разработка кастомных activity и HL-блоков
  • Настройка замещения и эскалации
  • Интеграция с внешними системами (1С, ERP, Telegram)
  • Обучение администраторов и 30 дней поддержки

Сроки зависят от сложности: от 2 недель для базового процесса до 6 недель при интеграции с ERP. Стоимость рассчитывается индивидуально — оценим проект за 2 дня после брифа. Получите консультацию — свяжитесь с нами.

Подробнее о реализации замещения

При автоматическом делегировании проверка статуса выполняется с помощью user.get. Если пользователь отсутствует (отпуск, больничный), система подставляет заместителя из HL-блока. Для делегирования по таймауту используется агент, который запускается через заданное количество часов после отправки задачи.

Зрелая система согласования — это не настроенный БП в дизайнере, а совокупность кастомных блоков, правил маршрутизации и аудитной базы. Гарантируем стабильную работу: сертифицированные специалисты с опытом более 8 лет и 50+ проектов. Такая система живёт годами и требует минимального вмешательства при изменении бизнес-правил — достаточно обновить таблицу полномочий. Кастомные процессы согласования окупаются в среднем за 6 месяцев за счёт сокращения ручного труда на 80%. Решение отлажено, и вы можете убедиться в этом — запросите демонстрацию.