Автозапуск bizproc после действий публичного компонента и нюансы Wiki-публикаций
Разрыв между административными ожиданиями и поведением публичной формы
Галочка «запуск при изменении» в конструкторе процесса действует там, где сценарий предполагает полный контур сохранения. Упрощённый элементный компонент в публичной части может обойти тот триггер, из-за чего исполнитель не стартует.
Внешние точки входа через события инфоблока
Вставляют обработчик после сохранения сущности. В методе включают модуль процессов, подготовив пустые контейнеры ошибок для диагностируемости. Основному вызывающему коду сообщают идентификатор блока свойств данных и ключ события Create либо Edit в понятном для модуля формате.
final class GrainBizprocHook
{
public static function afterAdd(array & $fields): void
{
if (!CModule::IncludeModule('bizproc')) {
return;
}
$errors = [];
CBPDocument::AutoStartWorkflows(
['iblock', 'CIBlockDocument', 'iblock_' . $fields['IBLOCK_ID']],
CBPDocumentEventType::Create,
['iblock', 'CIBlockDocument', $fields['ID']],
[],
$errors
);
}
}
AddEventHandler('iblock', 'OnAfterIBlockElementAdd', ['GrainBizprocHook', 'afterAdd']);Wiki-дорожка
Статьи переиздаются дважды техническими обновлениями — разумно сохранять прошлый активный флаг перед первым обращением и пропускать лишнее срабатывание статическим запретом второго входа после того же клика. В параметрах запусков передают адрес страницы для сообщений наблюдателей.
Важнее избежать блокирующего init.php ради маленьких проектов: подписки подключают либо в модуле, либо в окружающих конкретный сценарий файле публичного раздела, чтобы не платить временем сборки там, где инфоблок вовсе отсутствует.
Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии