Скрипт для Bitrix24, который меняет ответственного за сделку.Основные действия:
- Проверяет подключение модуля CRM.
- Получает ID сделки и ID нового ответственного из переменных процесса (Variable2 и manager_r).
- Обрабатывает данные:
- Если значение — массив, берёт первый элемент.
- Если ID ответственного в формате user_123, извлекает числовой ID.
4. Обновляет сделку: устанавливает нового ответственного через CCrmDeal::Update().
Используется в бизнес-процессах Bitrix24 для автоматической смены ответственного за сделку.
if (!\Bitrix\Main\Loader::includeModule('crm')) {
return;
}
$dealId = $this->GetVariable('Variable2');
$newResponsibleId = $this->GetVariable('manager_r');
// Если массив - берём первый элемент
if (is_array($dealId)) {
$dealId = reset($dealId);
}
if (is_array($newResponsibleId)) {
$newResponsibleId = reset($newResponsibleId);
}
// Обработка формата user_123
if (preg_match('/user_(\d+)/i', $newResponsibleId, $m)) {
$newResponsibleId = $m[1];
}
$dealId = (int)$dealId;
$newResponsibleId = (int)$newResponsibleId;
if ($dealId > 0 && $newResponsibleId > 0) {
$deal = new \CCrmDeal(false);
$fields = ['ASSIGNED_BY_ID' => $newResponsibleId];
$deal->Update($dealId, $fields, true, true, ['DISABLE_USER_FIELD_CHECK' => true]);
}