Смена стадии сделки (PHP-активити)

PHP-скрипт для Битрикс24 CRM, меняет стадию сделки.Основная логика:

  1. Проверяет подключение модуля CRM (crm).
  2. Получает ID сделки (Variable2) и новую стадию (STAGE_ID) из переменных.
  3. Если значения — массивы, берёт первый элемент.
  4. Преобразует ID сделки в целое число.
  5. При валидном ID (> 0) и непустой стадии обновляет стадию сделки через CCrmDeal::Update().

Особенности:

  • Обрабатывает массивы (берёт первый элемент).
  • Валидирует входные данные перед обновлением.
  • Отключает проверку пользовательских полей при обновлении (DISABLE_USER_FIELD_CHECK).

Скрипт предназначен для использования в бизнес-процессах или автоматизации Битрикс24 для изменения стадии сделки.

if (!\Bitrix\Main\Loader::includeModule('crm')) {
    return;
}

$dealId = $this->GetVariable('Variable2');
$newStageId = $this->GetVariable('STAGE_ID');

// Если массив - берём первый элемент
if (is_array($dealId)) {
    $dealId = reset($dealId);
}
if (is_array($newStageId)) {
    $newStageId = reset($newStageId);
}

$dealId = (int)$dealId;

if ($dealId > 0 && !empty($newStageId)) {
    $deal = new \CCrmDeal(false);
    $fields = ['STAGE_ID' => $newStageId];
    $deal->Update($dealId, $fields, true, true, ['DISABLE_USER_FIELD_CHECK' => true]);
}