Активити бизнес-процесса
Оригинальное название: business process activity
Коротко
Один шаг в схеме бизнес-процесса 1С-Битрикс: согласование, письмо, изменение поля, условие, пауза или собственное действие, написанное на PHP.
Что такое «Активити бизнес-процесса»
В визуальном дизайнере бизнес-процесс выглядит как блок-схема, и каждый её прямоугольник — это активити. Их перетаскивают из панели слева, соединяют и настраивают: кому отправить задание, какое поле документа изменить, сколько ждать. Сам бизнес-процесс — это последовательность таких шагов, а активити — его словарь.
Технически активити — PHP-класс, наследник CBPActivity. Стандартные лежат в /bitrix/activities/bitrix/, собственные разработчик кладёт в отдельную папку, чтобы их не затронули обновления. У каждого есть описание для дизайнера и диалог настроек.
Какие бывают
- Действия: «Утверждение документа», «Почтовое сообщение», «Изменение документа», «Запрос дополнительной информации», «Запись в отчёт».
- Управление ходом: условие с ветками «да/нет», параллельное выполнение, цикл, пауза до даты или на время.
- Служебные: установка переменных, «PHP-код» для небольших вставок без отдельного класса.
Набор зависит от продукта: в коробочном Битрикс24 есть активити для CRM и задач, которых нет на обычном сайте.
Пример своего активити
class CBPPriceLogActivity extends CBPActivity
{
public function __construct($name)
{
parent::__construct($name);
$this->arProperties = ['Title' => '', 'Text' => ''];
}
public function Execute()
{
$this->WriteToTrackingService('Цена: ' . $this->Text);
return CBPActivityExecutionStatus::Closed;
}
}
Метод Execute() выполняет работу и сообщает движку, что шаг завершён. Свойство Text администратор заполняет в дизайнере, в том числе значениями полей документа.
Когда стоит писать своё
Если одно и то же действие повторяется в нескольких процессах — отправить данные во внешнюю систему, пересчитать скидку, создать запись в другом инфоблоке, — его выгоднее оформить как активити, чем копировать кусок кода в «PHP-код» по разным схемам. Так логика живёт в одном месте и проверяется один раз.

