On this page
edit
Обновление сделки
Пример PHP-кода для обновления существующей сделки в Битрикс24.
Обновление существующей сделки
Этот PHP-код позволяет обновить существующую сделку в Битрикс24 по ее ID.
use Bitrix\Crm\DealTable;
// ID сделки, которую нужно обновить
$dealId = $this->GetRootActivity()->GetVariable("DealID"); // Например, ID сделки
// Поля для обновления
$fields = [
'TITLE' => $this->GetRootActivity()->GetVariable("DealTitle"), // Новое название сделки
'STAGE_ID' => $this->GetRootActivity()->GetVariable("DealStageID"), // Новая стадия сделки
'OPPORTUNITY' => $this->GetRootActivity()->GetVariable("DealOpportunity"), // Новая сумма сделки
'ASSIGNED_BY_ID' => $this->GetRootActivity()->GetVariable("ResponsibleUserID"), // Новый ответственный
];
$updateStatus = false;
$errorMessage = '';
if (!$dealId) {
$errorMessage = "КРИТИЧНО: Не указан ID сделки для обновления.";
$this->WriteToTrackingService($errorMessage);
} else {
$result = DealTable::update($dealId, $fields);
if ($result->isSuccess()) {
$updateStatus = true;
} else {
$errorMessage = "ОШИБКА: Не удалось обновить сделку ID: " . $dealId . ". " . implode(', ', $result->getErrorMessages());
$this->WriteToTrackingService($errorMessage);
}
}
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("UpdateDealStatus", $updateStatus);
$rootActivity->SetVariable("UpdatedDealID", $dealId);
$rootActivity->SetVariable("UpdateDealErrorMessage", $errorMessage);
Параметры
DealID
(int): ID сделки, которую необходимо обновить.DealTitle
(string, optional): Новое название сделки.DealStageID
(string, optional): Новая стадия сделки.DealOpportunity
(float, optional): Новая сумма сделки.ResponsibleUserID
(int, optional): ID нового ответственного пользователя.
Возвращаемые значения
UpdateDealStatus
(bool): Статус операции обновления (true - успешно, false - ошибка).UpdatedDealID
(int): ID обновленной сделки.UpdateDealErrorMessage
(string): Сообщение об ошибке, если операция не удалась.
Рекомендации по использованию
- Используйте этот скрипт для изменения данных существующих сделок.
- Передавайте только те поля, которые необходимо обновить; остальные поля останутся без изменений.
- Всегда проверяйте
UpdateDealStatus
для определения успешности операции.