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

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

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

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1461
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    764
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    810
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1166

Уявіть: договір на погодження, але сума змінює маршрут, юрист у відпустці — завдання летить заступнику, а при відхиленні система сама повертає ініціатору з коментарем. Без кастомної логіки такі сценарії неможливі: штатний конструктор Бітрікс24 закриває лише лінійні маршрути з фіксованими учасниками. За нашою статистикою, 70% проєктів вимагають динамічних правил — багатоступеневі погодження, інтеграція з 1С, SLA з порогами. Наприклад, одна компанія значно скоротила час погодження договорів на 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/. Після реєстрації з'являється в дизайнері як стандартний елемент і підтримує налаштування параметрів через форму.

Як реалізувати динамічних учасників?

Список погоджувачів, що визначається даними документа — частий запит. Наприклад: в залежності від суми угоди — погоджує керівник відділу, або фінансовий директор, або генеральний директор. І це для кожного підрозділу своя матриця.

Реалізація: 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%. Рішення відлагоджене, і ви можете переконатися в цьому — запитайте демонстрацію.