Заметки
Ошибка PHP в бизнес-процессе может скрыть факт запуска
Сообщение «действие выполнено» в конце PHP-кода ничего не скажет, если выполнение оборвалось раньше. Поэтому отметку входа нужно писать перед операцией, а результат — после неё.
$this->WriteToTrackingService('Начало PHP-действия');
try {
$deal_id = (int) $this->GetRootActivity()->GetVariable('DealId');
if ($deal_id <= 0) {
throw new RuntimeException('Не заполнена переменная DealId.');
}
$this->SetVariable('CheckedDealId', $deal_id);
$this->WriteToTrackingService('Проверка завершена');
} catch (Throwable $exception) {
$this->WriteToTrackingService('Ошибка: ' . $exception->getMessage());
throw $exception;
} В шаблоне должны существовать переменные DealId и CheckedDealId. Это минимальный пример проверки значения, а не обновление CRM.
Повторный throw оставляет ошибку ошибкой. Если просто записать её в журнал и продолжить, следующие действия могут принять незаполненный результат за успешный.
Синтаксическая ошибка, мешающая начать выполнение этого блока, не обязана попасть в его catch. Для неё нужен PHP-журнал сервера.