Получить элемент по Id crm.item.get
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
crmКто может выполнять метод: любой пользователь с правом «чтения» элементов объекта CRM
Метод возвращает информацию об элементе по идентификатору элемента и идентификатору типа объекта CRM
Параметры метода
Обязательные параметры отмечены *
|
Название |
Описание |
|
entityTypeId* |
Идентификатор системного или пользовательского типа, чей элемент мы хотим получить. Числовые значения для системных типов (Лид — 1, Сделка — 2, Контакт — 3, Компания — 4, Счёт — 31 и др.) приведены в справочнике типов объектов CRM. Идентификатор смарт-процесса можно узнать методом crm.type.list |
|
id* |
Идентификатор элемента, чью информацию мы хотим получить. Можно получить методом |
|
useOriginalUfNames |
Параметр используется для управления форматом имен пользовательских полей в ответе.
По умолчанию — |
Примеры кода
Как использовать примеры в документации
Получить информацию о лиде с id = 250
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"entityTypeId":1,"id":250,"useOriginalUfNames":"N"}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.get
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"entityTypeId":1,"id":250,"useOriginalUfNames":"N","auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.item.get
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type CrmItemGetResult = {
item: {
id: number
createdTime: ISODate
updatedTime: ISODate
createdBy: number
updatedBy: number
assignedById: number
opened: string
stageId: string
stageSemanticId: string
opportunity: number
currencyId: string
sourceId: string
title: string
name: string
lastName: string
movedBy: number
movedTime: ISODate
lastActivityBy: number
lastActivityTime: ISODate
email: string
phone: string
fm: Array<{
id: number
valueType: string
value: string
typeId: string
}>
observers: number[]
contactIds: number[]
entityTypeId: number
}
}
try {
const response = await $b24.actions.v2.call.make<CrmItemGetResult>({
method: 'crm.item.get',
params: {
entityTypeId: 1,
id: 250,
useOriginalUfNames: 'N',
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Item:', result.item.id, result.item.title, result.item.entityTypeId)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function fetchCrmItem() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.item.get',
params: {
entityTypeId: 1,
id: 250,
useOriginalUfNames: 'N',
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Item:', result.item.id, result.item.title, result.item.entityTypeId)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', fetchCrmItem)
</script>
try {
$entityTypeId = 1; // Example entity type ID
$id = 123; // Example item ID
$itemResult = $serviceBuilder
->getCRMScope()
->item()
->get($entityTypeId, $id);
$item = $itemResult->item();
print("ID: " . $item->id . PHP_EOL);
print("XML ID: " . $item->xmlId . PHP_EOL);
print("Title: " . $item->title . PHP_EOL);
print("Created By: " . $item->createdBy . PHP_EOL);
print("Updated By: " . $item->updatedBy . PHP_EOL);
print("Moved By: " . $item->movedBy . PHP_EOL);
print("Created Time: " . $item->createdTime->format(DATE_ATOM) . PHP_EOL);
print("Updated Time: " . $item->updatedTime->format(DATE_ATOM) . PHP_EOL);
print("Moved Time: " . $item->movedTime->format(DATE_ATOM) . PHP_EOL);
print("Category ID: " . $item->categoryId . PHP_EOL);
print("Opened: " . ($item->opened ? 'true' : 'false') . PHP_EOL);
print("Previous Stage ID: " . $item->previousStageId . PHP_EOL);
print("Begin Date: " . $item->begindate->format(DATE_ATOM) . PHP_EOL);
print("Close Date: " . $item->closedate->format(DATE_ATOM) . PHP_EOL);
print("Company ID: " . $item->companyId . PHP_EOL);
print("Contact ID: " . $item->contactId . PHP_EOL);
print("Opportunity: " . $item->opportunity . PHP_EOL);
print("Is Manual Opportunity: " . ($item->isManualOpportunity ? 'true' : 'false') . PHP_EOL);
print("Tax Value: " . $item->taxValue . PHP_EOL);
print("Currency ID: " . $item->currencyId . PHP_EOL);
print("Opportunity Account: " . $item->opportunityAccount . PHP_EOL);
print("Tax Value Account: " . $item->taxValueAccount . PHP_EOL);
print("Account Currency ID: " . $item->accountCurrencyId . PHP_EOL);
print("My Company ID: " . $item->mycompanyId . PHP_EOL);
print("Source ID: " . $item->sourceId . PHP_EOL);
print("Source Description: " . $item->sourceDescription . PHP_EOL);
print("Webform ID: " . $item->webformId . PHP_EOL);
print("Assigned By ID: " . $item->assignedById . PHP_EOL);
print("Last Activity By: " . $item->lastActivityBy . PHP_EOL);
print("Last Activity Time: " . $item->lastActivityTime->format(DATE_ATOM) . PHP_EOL);
print("UTM Source: " . $item->utmSource . PHP_EOL);
print("UTM Medium: " . $item->utmMedium . PHP_EOL);
print("UTM Campaign: " . $item->utmCampaign . PHP_EOL);
print("UTM Content: " . $item->utmContent . PHP_EOL);
print("UTM Term: " . $item->utmTerm . PHP_EOL);
print("Observers: " . json_encode($item->observers) . PHP_EOL);
print("Contact IDs: " . json_encode($item->contactIds) . PHP_EOL);
print("Entity Type ID: " . $item->entityTypeId . PHP_EOL);
} catch (Throwable $e) {
print("Error: " . $e->getMessage() . PHP_EOL);
}
Пример
from b24pysdk.client import BaseClient
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
client: BaseClient
try:
bitrix_response = client.crm.item.get(
entity_type_id=1,
bitrix_id=250,
use_original_uf_names=False,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
BX24.callMethod(
'crm.item.get',
{
entityTypeId: 1,
id: 250,
useOriginalUfNames: 'N',
},
(result) => {
if (result.error())
{
console.error(result.error());
return;
}
console.info(result.data());
},
);
require_once('crest.php');
$result = CRest::call(
'crm.item.get',
[
'entityTypeId' => 1,
'id' => 250,
'useOriginalUfNames' => 'N',
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Обработка ответа
HTTP-статус: 200
{
"result": {
"item": {
"id": 250,
"createdTime": "2024-07-22T18:00:08+02:00",
"dateCreateShort": null,
"updatedTime": "2024-07-22T18:00:08+02:00",
"dateModifyShort": null,
"createdBy": 1,
"updatedBy": 1,
"assignedById": 1,
"opened": "Y",
"companyId": 0,
"contactId": 0,
"stageId": "IN_PROCESS",
"isConvert": null,
"statusDescription": null,
"stageSemanticId": "P",
"productId": null,
"opportunity": 999.9,
"currencyId": "RUB",
"sourceId": "TRADE_SHOW",
"sourceDescription": "Выставка об админах",
"title": "Лид #250",
"name": "Админ",
"lastName": "Админов",
"secondName": "Админович",
"shortName": null,
"companyTitle": "Административная компания",
"post": "Админ",
"address": null,
"comments": "[B]Комментарий об админе[/B]",
"webformId": 0,
"originatorId": null,
"originId": null,
"dateClosed": null,
"birthdate": "2000-01-01T02:00:00+02:00",
"honorific": "UC_N1LWUS",
"hasPhone": "Y",
"hasEmail": "Y",
"hasImol": "N",
"login": null,
"isReturnCustomer": "N",
"searchContent": "250 Лид #250 Админов Админ Админович Административная компания 999.90 Российский рубль 6111111111 111111111 11111111 1111111 111111 11111 1111 111 nqzva rknzcyr pbz В работе Выставка Выставка об админах г Админ [O]Комментарий об админе[/O] 321",
"isManualOpportunity": "Y",
"movedBy": 1,
"movedTime": "2024-07-22T17:00:08+02:00",
"lastActivityBy": 1,
"lastActivityTime": "2024-07-22T17:00:08+02:00",
"phoneMobile": "",
"phoneWork": "+6111111111",
"phoneMailing": "",
"emailHome": "",
"emailWork": "admin@example.com",
"emailMailing": "",
"skype": null,
"icq": null,
"imol": "",
"email": "admin@example.com",
"phone": "+6111111111",
"fm": [
{
"id": 101,
"valueType": "WORK",
"value": "+6111111111",
"typeId": "PHONE"
},
{
"id": 102,
"valueType": "WORK",
"value": "admin@example.com",
"typeId": "EMAIL"
}
],
"ufCrm_1720019876534": "321",
"parentId1222": null,
"parentId1226": null,
"parentId1228": null,
"parentId1236": null,
"parentId1238": null,
"parentId1240": null,
"parentId1244": null,
"parentId1246": null,
"parentId1254": null,
"parentId1256": null,
"utmSource": null,
"utmMedium": null,
"utmCampaign": null,
"utmContent": null,
"utmTerm": null,
"observers": [],
"contactIds": [],
"entityTypeId": 1
}
},
"time": {
"start": 1721660468.931424,
"finish": 1721660469.416092,
"duration": 0.4846680164337158,
"processing": 0.16368508338928223,
"date_start": "2024-07-22T17:01:08+02:00",
"date_finish": "2024-07-22T17:01:09+02:00",
"operating": 0
}
}
Возвращаемые данные
|
Название |
Описание |
|
result |
Корневой элемент ответа. Содержит единственный ключ |
|
item |
Информация об элементе, описание полей |
|
time |
Объект, содержащий в себе информацию о времени выполнения запроса |
Ответ содержит поле fm — массив всех системных множественных полей (телефон, e-mail и другие) в структурированном виде. Каждый элемент массива содержит:
id— идентификатор записи (нужен для обновления или удаления черезcrm.item.update)typeId— тип поля:PHONE,EMAIL,WEB,IMvalueType— подтип значения:WORK,MOBILE,HOME,MAILING,OTHERvalue— значение
Поля phoneWork, phoneMobile, emailWork и аналогичные — плоские псевдонимы для удобного доступа к первому значению соответствующего типа из fm. Они не заменяют fm и не позволяют управлять несколькими значениями одного типа.
По умолчанию имена пользовательских полей возвращаются в camelCase, например ufCrm2_1639669411830.
При передаче параметра useOriginalUfNames со значением Y пользовательские поля будут возвращаться с оригинальными именами, например UF_CRM_2_1639669411830.
Обработка ошибок
HTTP-статус: 400, 403
{
"error": "NOT_FOUND",
"error_description": "Элемент не найден"
}
|
Название |
Описание |
|
error |
Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания |
|
error_description |
Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде |
Возможные коды ошибок
|
Статус |
Код |
Описание |
Значение |
|
|
|
Действие разрешено только интранет-пользователям |
Пользователь не является интранет-пользователем |
|
|
|
Смарт-процесс не найден |
Возникает, при передаче невалидного |
|
|
|
Элемент не найден |
Элемент с переданным |
|
|
|
У Вас нет прав на просмотр этого элемента |
У пользователя нет прав на чтение элементов типа |
Статусы и коды системных ошибок
HTTP-статус: 20x, 40x, 50x
Описанные ниже ошибки могут возникнуть при вызове любого метода
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически через 10 минут |
|
|
|
Текущий метод не разрешен для вызова с помощью batch |
|
|
|
Превышена максимальная длина параметров, переданных в метод batch |
|
|
|
Неверный access-токен или код вебхука |
|
|
|
Для вызовов методов требуется использовать протокол HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих планах |
|
|
|
У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав |
|
|
|
Манифест недоступен |
|
|
|
Запрос требует более высоких привилегий, чем предоставляет токен вебхука |
|
|
|
Предоставленный access-токен доступа истек |
|
|
|
Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |