PHP-скрипт для Битрикс24 CRM, меняет стадию сделки.Основная логика:
- Проверяет подключение модуля CRM (crm).
- Получает ID сделки (Variable2) и новую стадию (STAGE_ID) из переменных.
- Если значения — массивы, берёт первый элемент.
- Преобразует ID сделки в целое число.
- При валидном 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]);
}