При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Получить сделку по Id crm.deal.get», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.
Получить сделку по Id crm.deal.get
> Scope: crm
>
> Кто может выполнять метод: любой пользователь с правом «чтения» сделок
Метод crm.deal.get возвращает сделку по идентификатору.
Параметры метода
Названиетип | Описание |
|---|---|
id*integer | Идентификатор сделки. Идентификатор можно получить с помощью методов crm.deal.list или crm.deal.add |
[](./recurring-deals/crm-deal-recurring-get)
Примеры кода
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":410}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.deal.get- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":410,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.deal.get- JS
try
{
const response = await $b24.callMethod(
'crm.deal.get',
{
id: 410,
}
);
const result = response.getData().result;
result.error()
? console.error(result.error())
: console.info(result)
;
}
catch( error )
{
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.deal.get',
[
'id' => 410,
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
echo 'Error: ' . $result->error();
} else {
echo 'Deal data: ' . print_r($result->data(), true);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error getting deal: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
'crm.deal.get',
{
id: 410,
},
(result) => {
result.error()
? console.error(result.error())
: console.info(result.data())
;
},
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'crm.deal.get',
[
'ID' => 410
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
HTTP-статус: 200
{
"result": {
"ID": "410",
"TITLE": "Новая сделка #1",
"TYPE_ID": "COMPLEX",
"STAGE_ID": "PREPARATION",
"PROBABILITY": "99",
"CURRENCY_ID": "EUR",
"OPPORTUNITY": "1000000.00",
"IS_MANUAL_OPPORTUNITY": "Y",
"TAX_VALUE": "0.00",
"LEAD_ID": null,
"COMPANY_ID": "9",
"CONTACT_ID": "84",
"QUOTE_ID": null,
"BEGINDATE": "2024-08-30T02:00:00+02:00",
"CLOSEDATE": "2024-09-09T02:00:00+02:00",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-30T14:29:00+02:00",
"DATE_MODIFY": "2024-08-30T14:29:00+02:00",
"OPENED": "Y",
"CLOSED": "N",
"COMMENTS": "[B]Пример комментария[\/B]",
"ADDITIONAL_INFO": "Дополнительная информация",
"LOCATION_ID": null,
"CATEGORY_ID": "0",
"STAGE_SEMANTIC_ID": "P",
"IS_NEW": "N",
"IS_RECURRING": "N",
"IS_RETURN_CUSTOMER": "N",
"IS_REPEATED_APPROACH": "N",
"SOURCE_ID": "CALLBACK",
"SOURCE_DESCRIPTION": "Дополнительно об источнике",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-30T14:29:00+02:00",
"LAST_ACTIVITY_TIME": "2024-08-30T14:29:00+02:00",
"UTM_SOURCE": "google",
"UTM_MEDIUM": "CPC",
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"PARENT_ID_1220": "22",
"LAST_ACTIVITY_BY": "1",
"UF_CRM_1721244482250": "Привет мир!"
},
"time": {
"start": 1725020945.541275,
"finish": 1725020946.179076,
"duration": 0.637800931930542,
"processing": 0.21427488327026367,
"date_start": "2024-08-30T14:29:05+02:00",
"date_finish": "2024-08-30T14:29:06+02:00",
"operating": 0
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultdeal | Корневой элемент ответа. Содержит информацию о полях сделки. Структура описана ниже |
timetime | Информация о времени выполнения запроса |
Тип deal {#deal}
Названиетип | Описание |
|---|---|
IDinteger | Идентификатор сделки |
TITLEstring | Название |
TYPE_IDcrm_status | Строковый идентификатор типа сделки. Узнать подробнее о полученном типе сделки можно с помощью метода crm.status.list, передав в фильтр: |
CATEGORY_IDcrm_category | Воронка. Узнать подробнее об этой воронке можно с помощью метода crm.category.get, передав entityTypeId = 2 и id = CATEGORY_ID |
STAGE_IDcrm_status | Строковый идентификатор стадии сделки. Узнать подробнее о полученной стадии можно с помощью метода crm.status.list, передав в фильтр: где: |
STAGE_SEMANTIC_IDstring | Группа стадии. Возможные значения: — P — в работе— S — успешная— F — неуспешная |
IS_NEWchar | Является ли сделка новой. Возможные значения: — Y — да— N — нет |
IS_RECURRINGchar | Является ли сделка регулярной. Возможные значения: — Y — да— N — нет |
IS_RETURN_CUSTOMERchar | Является ли сделка повторной. Возможные значения: — Y — да— N — нет |
IS_REPEATED_APPROACHchar | Является ли обращение повторным. Возможные значения: — Y — да— N — нет |
PROBABILITYinteger | Вероятность, % |
CURRENCY_IDcrm_currency | Валюта |
OPPORTUNITYdouble | Сумма |
IS_MANUAL_OPPORTUNITYchar | Включен ли ручной режим подсчета суммы. Возможные значения: — Y — да— N — нет |
TAX_VALUEdouble | Ставка налога |
COMPANY_IDcrm_company | Идентификатор компании. Узнать подробнее о компании можно с помощью метода crm.item.get, передав |
CONTACT_IDcrm_contact | Идентификатор контакта. Устаревшее. Чтобы получить список всех контактов сделки, используйте метод crm.deal.contact.items.get или универсальный метод crm.item.get |
QUOTE_IDcrm_quote | Идентификатор коммерческого предложения, на основе которого была создана сделка. Узнать подробнее о коммерческом предложении можно с помощью метода crm.item.get, передав |
BEGINDATEdate | Дата начала |
CLOSEDATEdate | Дата завершения |
OPENEDchar | Доступна ли сделка для всех. Возможные значения: — Y — да— N — нет |
CLOSEDchar | Закрыта ли сделка. Возможные значения: — Y — да— N — нет |
COMMENTSstring | Комментарий |
ASSIGNED_BY_IDuser | Ответственный |
CREATED_BY_IDuser | Кем создана |
MODIFY_BY_IDuser | Кем изменена |
MOVED_BY_IDuser | Идентификатор пользователя, который последним поменял стадию |
DATE_CREATEdatetime | Дата создания |
DATE_MODIFYdatetime | Дата изменения |
MOVED_TIMEdatetime | Дата последнего изменения стадии |
SOURCE_IDcrm_status | Источник. Узнать подробнее о полученном источнике можно с помощью метода crm.status.list, передав в фильтр: |
SOURCE_DESCRIPTIONstring | Дополнительно об источнике |
LEAD_IDcrm_lead | Идентификатор лида, на основании которого создана сделка. Узнать подробнее о лиде можно с помощью метода crm.item.get, передав |
ADDITIONAL_INFOstring | Дополнительная информация |
LOCATION_IDlocation | Местоположение. Служебное поле |
ORIGINATOR_IDstring | Внешний источник |
ORIGIN_IDstring | Идентификатор элемента во внешнем источнике |
UTM_SOURCEstring | Рекламная система |
UTM_MEDIUMstring | Тип трафика |
UTM_CAMPAIGNstring | Обозначение рекламной кампании |
UTM_CONTENTstring | Содержание кампании |
UTM_TERMstring | Условие поиска кампании |
LAST_ACTIVITY_TIMEdatetime | Дата последней активности в таймлайне |
LAST_ACTIVITY_BYuser | Автор последней активности в таймлайне |
UF_CRM_…any | Пользовательские поля. Например, UF_CRM_25534736.В зависимости от настроек портала у сделок может быть набор пользовательских полей определенных типов. Подробнее читайте в разделе о пользовательских полях |
PARENT_ID_…crm_entity | Поля связей. Если на портале есть смарт-процессы, связанные со сделками, для каждого такого смарт-процесса существует поле, хранящее связь между этим смарт-процессом и сделкой. Само поле хранит идентификатор элемента такого смарт-процесса. Например, поле |
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Parameter 'fields' must be array."
}Возможные коды ошибок
| Код | Описание | Значение |
|---|---|---|
- | ID is not defined or invalid | В параметр id либо не передано значение, либо оно является не целым числом больше нуля |
- | Access denied | У пользователя нет прав на «чтение» данной сделки |
- | Not found | Сделки с переданным id не существует |
- [](./crm-deal-add)
- [](./crm-deal-update)
- [](./crm-deal-list)
- [](./crm-deal-delete)
- [](./crm-deal-fields)
💡 Экспертное мнение и рекомендации
Практические рекомендации:
- При написании кастомных компонентов для «Получить сделку по Id crm.deal.get» всегда разделяйте бизнес-логику и представление (шаблон).
- Используйте отладку SQL-запросов через конструкцию
$wpdb->last_queryили стандартный трекер Битрикса, чтобы контролировать нагрузку.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru