Импортировать группу записей crm.item.batchImport
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
crmКто может выполнять метод: пользователь с правом на импорт элементов CRM
Метод crm.item.batchImport импортирует до 20 элементов одного типа CRM.
Поля каждого элемента передавайте по тем же правилам, что и в методе crm.item.import. Особенности импорта описаны в обзоре методов.
Параметры метода
Обязательные параметры отмечены *
|
Название |
Описание |
|
entityTypeId* |
Идентификатор системного или пользовательского типа CRM, в который нужно импортировать элементы. Числовые значения системных типов, например лид — |
|
data* |
Массив объектов с полями импортируемых элементов (подробное описание) |
|
useOriginalUfNames |
Параметр для управления форматом имен пользовательских полей в запросе.
По умолчанию — |
Параметр data
Каждый элемент массива data — объект с полями одного элемента CRM:
[
{
field_1: value_1,
field_2: value_2
},
{
field_1: value_1,
field_2: value_2
}
]
Названия, типы и форматы полей описаны в параметре fields метода crm.item.import.
Примеры кода
Как использовать примеры в документации
-
Как импортировать сделки
cURL (Webhook)cURL (OAuth)JS (TS)JS (UMD)PythonPHPBX24.jsPHP CRestGocurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"entityTypeId":2,"data":[{"title":"Первая импортируемая сделка","isRecurring":"N","opportunity":999.99,"currencyId":"RUB"},{"title":"Вторая импортируемая сделка","isRecurring":"N","opportunity":1499.99,"currencyId":"RUB"}]}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.batchImportcurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"entityTypeId":2,"data":[{"title":"Первая импортируемая сделка","isRecurring":"N","opportunity":999.99,"currencyId":"RUB"},{"title":"Вторая импортируемая сделка","isRecurring":"N","opportunity":1499.99,"currencyId":"RUB"}],"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/crm.item.batchImportimport { Text } from '@bitrix24/b24jssdk' import type { B24Frame } from '@bitrix24/b24jssdk' declare const $b24: B24Frame const response = await $b24.actions.v2.call.make({ method: 'crm.item.batchImport', params: { entityTypeId: 2, data: [ { title: 'Первая импортируемая сделка', isRecurring: 'N', opportunity: 999.99, currencyId: 'RUB' }, { title: 'Вторая импортируемая сделка', isRecurring: 'N', opportunity: 1499.99, currencyId: 'RUB' }, ], }, requestId: Text.getUuidRfc4122() }) console.info(response.getData()?.result)<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script> <script> async function batchImportDeals() { const $b24 = await B24Js.initializeB24Frame() const response = await $b24.actions.v2.call.make({ method: 'crm.item.batchImport', params: { entityTypeId: 2, data: [ { title: 'Первая импортируемая сделка', isRecurring: 'N', opportunity: 999.99, currencyId: 'RUB' }, { title: 'Вторая импортируемая сделка', isRecurring: 'N', opportunity: 1499.99, currencyId: 'RUB' }, ], }, requestId: B24Js.Text.getUuidRfc4122() }) console.info(response.getData()?.result) } document.addEventListener('DOMContentLoaded', batchImportDeals) </script>from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.crm.item.batch_import( entity_type_id=2, data=[ { "title": "Первая импортируемая сделка", "isRecurring": "N", "opportunity": 999.99, "currencyId": "RUB", }, { "title": "Вторая импортируемая сделка", "isRecurring": "N", "opportunity": 1499.99, "currencyId": "RUB", }, ], ).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}")try { $response = $b24Service->core->call( 'crm.item.batchImport', [ 'entityTypeId' => 2, 'data' => [ ['title' => 'Первая импортируемая сделка', 'isRecurring' => 'N', 'opportunity' => 999.99, 'currencyId' => 'RUB'], ['title' => 'Вторая импортируемая сделка', 'isRecurring' => 'N', 'opportunity' => 1499.99, 'currencyId' => 'RUB'], ], ] ); echo 'Success: ' . print_r($response->getResponseData()->getResult()->data(), true); } catch (Throwable $e) { echo 'Error: ' . $e->getMessage(); }BX24.callMethod( 'crm.item.batchImport', { entityTypeId: 2, data: [ { title: 'Первая импортируемая сделка', isRecurring: 'N', opportunity: 999.99, currencyId: 'RUB', }, { title: 'Вторая импортируемая сделка', isRecurring: 'N', opportunity: 1499.99, currencyId: 'RUB', }, ], }, result => result.error() ? console.error(result.error()) : console.info(result.data()) );require_once('crest.php'); $result = CRest::call( 'crm.item.batchImport', [ 'entityTypeId' => 2, 'data' => [ [ 'title' => 'Первая импортируемая сделка', 'isRecurring' => 'N', 'opportunity' => 999.99, 'currencyId' => 'RUB', ], [ 'title' => 'Вторая импортируемая сделка', 'isRecurring' => 'N', 'opportunity' => 1499.99, 'currencyId' => 'RUB', ], ], ] ); print_r($result);res, err := client.Core().Call(ctx, "crm.item.batchImport", b24.Params{ "entityTypeId": 2, "data": []b24.Params{ { "title": "Первая импортируемая сделка", "isRecurring": "N", "opportunity": 999.99, "currencyId": "RUB", }, { "title": "Вторая импортируемая сделка", "isRecurring": "N", "opportunity": 1499.99, "currencyId": "RUB", }, }, }) if err != nil { return fmt.Errorf("crm.item.batchImport: %w", err) } fmt.Printf("%v\n", res.Result) -
Как создать элемент смарт-процесса с набором пользовательских полей
Пользовательские поля, участвующие в примере
{ "ufCrm44_1721812760630": { "type": "string", "isRequired": false, "isReadOnly": false, "isImmutable": false, "isMultiple": false, "isDynamic": true, "title": "Пользовательское поле (строка)", "listLabel": "Пользовательское поле (строка)", "formLabel": "Пользовательское поле (строка)", "filterLabel": "Пользовательское поле (строка)", "settings": { "SIZE": 20, "ROWS": 1, "REGEXP": "", "MIN_LENGTH": 0, "MAX_LENGTH": 0, "DEFAULT_VALUE": "" }, "upperName": "UF_CRM_44_1721812760630" }, "ufCrm44_1721812814433": { "type": "enumeration", "isRequired": false, "isReadOnly": false, "isImmutable": false, "isMultiple": false, "isDynamic": true, "items": [ { "ID": "79", "VALUE": "Элемент списка #1" }, { "ID": "80", "VALUE": "Элемент списка #2" }, { "ID": "81", "VALUE": "Элемент списка #3" }, { "ID": "82", "VALUE": "Элемент списка #4" } ], "title": "Пользовательское поле (список)", "listLabel": "Пользовательское поле (список)", "formLabel": "Пользовательское поле (список)", "filterLabel": "Пользовательское поле (список)", "settings": { "DISPLAY": "LIST", "LIST_HEIGHT": 1, "CAPTION_NO_VALUE": "", "SHOW_NO_VALUE": "Y" }, "upperName": "UF_CRM_44_1721812814433" }, "ufCrm44_1721812853419": { "type": "date", "isRequired": false, "isReadOnly": false, "isImmutable": false, "isMultiple": false, "isDynamic": true, "title": "Пользовательское поле (дата)", "listLabel": "Пользовательское поле (дата)", "formLabel": "Пользовательское поле (дата)", "filterLabel": "Пользовательское поле (дата)", "settings": { "DEFAULT_VALUE": { "TYPE": "NONE", "VALUE": "" } }, "upperName": "UF_CRM_44_1721812853419" }, "ufCrm44_1721812885588": { "type": "url", "isRequired": false, "isReadOnly": false, "isImmutable": false, "isMultiple": true, "isDynamic": true, "title": "Множественное пользовательское поле (ссылка)", "listLabel": "Множественное пользовательское поле (ссылка)", "formLabel": "Множественное пользовательское поле (ссылка)", "filterLabel": "Множественное пользовательское поле (ссылка)", "settings": { "POPUP": "Y", "SIZE": 20, "MIN_LENGTH": 0, "MAX_LENGTH": 0, "DEFAULT_VALUE": "", "ROWS": 1 }, "upperName": "UF_CRM_44_1721812885588" }, "ufCrm44_1721812898903": { "type": "file", "isRequired": false, "isReadOnly": false, "isImmutable": false, "isMultiple": false, "isDynamic": true, "title": "Пользовательское поле (файл)", "listLabel": "Пользовательское поле (файл)", "formLabel": "Пользовательское поле (файл)", "filterLabel": "Пользовательское поле (файл)", "settings": { "SIZE": 20, "LIST_WIDTH": 0, "LIST_HEIGHT": 0, "MAX_SHOW_SIZE": 0, "MAX_ALLOWED_SIZE": 0, "EXTENSIONS": [], "TARGET_BLANK": "Y" }, "upperName": "UF_CRM_44_1721812898903" }, "ufCrm44_1721812915476": { "type": "money", "isRequired": false, "isReadOnly": false, "isImmutable": false, "isMultiple": false, "isDynamic": true, "title": "Пользовательское поле (деньги)", "listLabel": "Пользовательское поле (деньги)", "formLabel": "Пользовательское поле (деньги)", "filterLabel": "Пользовательское поле (деньги)", "settings": { "DEFAULT_VALUE": "" }, "upperName": "UF_CRM_44_1721812915476" }, "ufCrm44_1721812935209": { "type": "boolean", "isRequired": false, "isReadOnly": false, "isImmutable": false, "isMultiple": false, "isDynamic": true, "title": "Пользовательское поле (Да/Нет)", "listLabel": "Пользовательское поле (Да/Нет)", "formLabel": "Пользовательское поле (Да/Нет)", "filterLabel": "Пользовательское поле (Да/Нет)", "settings": { "DEFAULT_VALUE": 0, "DISPLAY": "CHECKBOX", "LABEL": [ "", "" ], "LABEL_CHECKBOX": { "en": "Пользовательское поле (Да/Нет)", "ru": "Пользовательское поле (Да/Нет)", "th": "Пользовательское поле (Да/Нет)", "la": "Пользовательское поле (Да/Нет)", "tc": "Пользовательское поле (Да/Нет)", "sc": "Пользовательское поле (Да/Нет)", "br": "Пользовательское поле (Да/Нет)", "ar": "Пользовательское поле (Да/Нет)", "fr": "Пользовательское поле (Да/Нет)", "vn": "Пользовательское поле (Да/Нет)", "pl": "Пользовательское поле (Да/Нет)", "tr": "Пользовательское поле (Да/Нет)", "ja": "Пользовательское поле (Да/Нет)", "it": "Пользовательское поле (Да/Нет)", "ms": "Пользовательское поле (Да/Нет)", "id": "Пользовательское поле (Да/Нет)" } }, "upperName": "UF_CRM_44_1721812935209" }, "ufCrm44_1721812948498": { "type": "double", "isRequired": false, "isReadOnly": false, "isImmutable": false, "isMultiple": false, "isDynamic": true, "title": "Пользовательское поле (число)", "listLabel": "Пользовательское поле (число)", "formLabel": "Пользовательское поле (число)", "filterLabel": "Пользовательское поле (число)", "settings": { "PRECISION": 2, "SIZE": 20, "MIN_VALUE": 0, "MAX_VALUE": 0, "DEFAULT_VALUE": null }, "upperName": "UF_CRM_44_1721812948498" } }cURL (Webhook)cURL (OAuth)JS (TS)JS (UMD)PythonPHPBX24.jsPHP CRestGocurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "entityTypeId": 1302, "data": [{ "ufCrm44_1721812760630": "Строка для пользовательского поля типа Строка", "ufCrm44_1721812814433": 81, "ufCrm44_1721812853419": "2024-08-21", "ufCrm44_1721812885588": [ "example.com", "second-example.com" ], "ufCrm44_1721812898903": [ "green_pixel.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==" ], "ufCrm44_1721812915476": "300|RUB", "ufCrm44_1721812935209": "Y", "ufCrm44_1721812948498": 9999.9 },{ "ufCrm44_1721812760630": "Строка для пользовательского поля типа Строка", "ufCrm44_1721812814433": 45, "ufCrm44_1721812853419": "2024-08-21", "ufCrm44_1721812885588": [ "example.com", "second-example.com" ], "ufCrm44_1721812898903": [ "green_pixel2.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==" ], "ufCrm44_1721812915476": "600|RUB", "ufCrm44_1721812935209": "N", "ufCrm44_1721812948498": 9999.9 }] }' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.batchImportcurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "entityTypeId": 1302, "data": [{ "ufCrm44_1721812760630": "Строка для пользовательского поля типа Строка", "ufCrm44_1721812814433": 81, "ufCrm44_1721812853419": "2024-08-21", "ufCrm44_1721812885588": [ "example.com", "second-example.com" ], "ufCrm44_1721812898903": [ "green_pixel.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==" ], "ufCrm44_1721812915476": "300|RUB", "ufCrm44_1721812935209": "Y", "ufCrm44_1721812948498": 9999.9 },{ "ufCrm44_1721812760630": "Строка для пользовательского поля типа Строка", "ufCrm44_1721812814433": 45, "ufCrm44_1721812853419": "2024-08-21", "ufCrm44_1721812885588": [ "example.com", "second-example.com" ], "ufCrm44_1721812898903": [ "green_pixel2.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==" ], "ufCrm44_1721812915476": "600|RUB", "ufCrm44_1721812935209": "N", "ufCrm44_1721812948498": 9999.9 }], "auth": "**put_access_token_here**" }' \ https://**put_your_bitrix24_address**/rest/crm.item.batchImport// 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 } from '@bitrix24/b24jssdk' declare const $b24: B24Frame // Shape of the payload returned in result (match the "response handling" section of the page) type BatchImportResult = { items: Array< | { item: { id: number } } | { error: string; error_description: string } > } const greenPixelInBase64 = "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==" try { const response = await $b24.actions.v2.call.make<BatchImportResult>({ method: 'crm.item.batchImport', params: { entityTypeId: 1302, data: [ { ufCrm44_1721812760630: "Строка для пользовательского поля типа Строка", ufCrm44_1721812814433: 81, ufCrm44_1721812853419: "2024-08-21", ufCrm44_1721812885588: [ "example.com", "second-example.com", ], ufCrm44_1721812898903: [ "green_pixel.png", greenPixelInBase64, ], ufCrm44_1721812915476: "300|RUB", ufCrm44_1721812935209: "Y", ufCrm44_1721812948498: 9999.9, }, { ufCrm44_1721812760630: "Строка для пользовательского поля типа Строка", ufCrm44_1721812814433: 45, ufCrm44_1721812853419: "2024-08-21", ufCrm44_1721812885588: [ "example.com", "second-example.com", ], ufCrm44_1721812898903: [ "green_pixel2.png", greenPixelInBase64, ], ufCrm44_1721812915476: "600|RUB", ufCrm44_1721812935209: "N", ufCrm44_1721812948498: 9999.9, }, ], }, 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('Imported items:', result.items) } } 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 batchImportItems() { try { // Initialize the SDK inside a Bitrix24 frame const $b24 = await B24Js.initializeB24Frame() const greenPixelInBase64 = "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==" const response = await $b24.actions.v2.call.make({ method: 'crm.item.batchImport', params: { entityTypeId: 1302, data: [ { ufCrm44_1721812760630: "Строка для пользовательского поля типа Строка", ufCrm44_1721812814433: 81, ufCrm44_1721812853419: "2024-08-21", ufCrm44_1721812885588: [ "example.com", "second-example.com", ], ufCrm44_1721812898903: [ "green_pixel.png", greenPixelInBase64, ], ufCrm44_1721812915476: "300|RUB", ufCrm44_1721812935209: "Y", ufCrm44_1721812948498: 9999.9, }, { ufCrm44_1721812760630: "Строка для пользовательского поля типа Строка", ufCrm44_1721812814433: 45, ufCrm44_1721812853419: "2024-08-21", ufCrm44_1721812885588: [ "example.com", "second-example.com", ], ufCrm44_1721812898903: [ "green_pixel2.png", greenPixelInBase64, ], ufCrm44_1721812915476: "600|RUB", ufCrm44_1721812935209: "N", ufCrm44_1721812948498: 9999.9, }, ], }, 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('Imported items:', result.items) } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) } } document.addEventListener('DOMContentLoaded', batchImportItems) </script>from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.crm.item.batch_import( entity_type_id=1302, data=[ { "ufCrm44_1721812760630": "Строка для пользовательского поля типа Строка", "ufCrm44_1721812814433": 81, "ufCrm44_1721812853419": "2024-08-21", "ufCrm44_1721812885588": [ "example.com", "second-example.com", ], "ufCrm44_1721812898903": [ "green_pixel.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==", ], "ufCrm44_1721812915476": "300|RUB", "ufCrm44_1721812935209": "Y", "ufCrm44_1721812948498": 9999.9, }, { "ufCrm44_1721812760630": "Строка для пользовательского поля типа Строка", "ufCrm44_1721812814433": 45, "ufCrm44_1721812853419": "2024-08-21", "ufCrm44_1721812885588": [ "example.com", "second-example.com", ], "ufCrm44_1721812898903": [ "green_pixel2.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==", ], "ufCrm44_1721812915476": "600|RUB", "ufCrm44_1721812935209": "N", "ufCrm44_1721812948498": 9999.9, }, ], ).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}")require_once('crest.php'); $result = CRest::call( 'crm.item.batchImport', [ 'entityTypeId' => 1302, 'data' => [ [ 'ufCrm44_1721812760630' => "Строка для пользовательского поля типа Строка", 'ufCrm44_1721812814433' => 81, 'ufCrm44_1721812853419' => '2024-08-21', 'ufCrm44_1721812885588' => [ "example.com", "second-example.com", ], 'ufCrm44_1721812898903' => [ "green_pixel.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==", ], 'ufCrm44_1721812915476' => "300|RUB", 'ufCrm44_1721812935209' => "Y", 'ufCrm44_1721812948498' => 9999.9, ], [ 'ufCrm44_1721812760630' => "Строка для пользовательского поля типа Строка", 'ufCrm44_1721812814433' => 45, 'ufCrm44_1721812853419' => '2024-08-21', 'ufCrm44_1721812885588' => [ "example.com", "second-example.com", ], 'ufCrm44_1721812898903' => [ "green_pixel2.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg==", ], 'ufCrm44_1721812915476' => "600|RUB", 'ufCrm44_1721812935209' => "N", 'ufCrm44_1721812948498' => 9999.9, ], ], ] ); echo '<PRE>'; print_r($result); echo '</PRE>';BX24.callMethod( 'crm.item.batchImport', { entityTypeId: 1302, data: [ { ufCrm44_1721812760630: 'Строка для пользовательского поля типа Строка', ufCrm44_1721812814433: 81, ufCrm44_1721812853419: '2024-08-21', ufCrm44_1721812885588: ['example.com', 'second-example.com'], ufCrm44_1721812898903: ['green_pixel.png', 'iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg=='], ufCrm44_1721812915476: '300|RUB', ufCrm44_1721812935209: 'Y', ufCrm44_1721812948498: 9999.9, }, { ufCrm44_1721812760630: 'Строка для пользовательского поля типа Строка', ufCrm44_1721812814433: 45, ufCrm44_1721812853419: '2024-08-21', ufCrm44_1721812885588: ['example.com', 'second-example.com'], ufCrm44_1721812898903: ['green_pixel2.png', 'iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg=='], ufCrm44_1721812915476: '600|RUB', ufCrm44_1721812935209: 'N', ufCrm44_1721812948498: 9999.9, }, ], }, result => result.error() ? console.error(result.error()) : console.info(result.data()) );require_once('crest.php'); $result = CRest::call( 'crm.item.batchImport', [ 'entityTypeId' => 1302, 'data' => [ [ 'ufCrm44_1721812760630' => 'Строка для пользовательского поля типа Строка', 'ufCrm44_1721812814433' => 81, 'ufCrm44_1721812853419' => '2024-08-21', 'ufCrm44_1721812885588' => ['example.com', 'second-example.com'], 'ufCrm44_1721812898903' => ['green_pixel.png', 'iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg=='], 'ufCrm44_1721812915476' => '300|RUB', 'ufCrm44_1721812935209' => 'Y', 'ufCrm44_1721812948498' => 9999.9, ], [ 'ufCrm44_1721812760630' => 'Строка для пользовательского поля типа Строка', 'ufCrm44_1721812814433' => 45, 'ufCrm44_1721812853419' => '2024-08-21', 'ufCrm44_1721812885588' => ['example.com', 'second-example.com'], 'ufCrm44_1721812898903' => ['green_pixel2.png', 'iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg=='], 'ufCrm44_1721812915476' => '600|RUB', 'ufCrm44_1721812935209' => 'N', 'ufCrm44_1721812948498' => 9999.9, ], ], ] ); print_r($result);// client и ctx уже созданы — см. раздел «SDK для Go» res, err := client.Core().Call(ctx, "crm.item.batchImport", b24.Params{ "entityTypeId": 1302, "data": []b24.Params{ { "ufCrm44_1721812760630": "Строка для пользовательского поля типа Строка", "ufCrm44_1721812814433": 81, "ufCrm44_1721812853419": "2024-08-21", "ufCrm44_1721812885588": []string{"example.com", "second-example.com"}, "ufCrm44_1721812898903": []string{"green_pixel.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg=="}, "ufCrm44_1721812915476": "300|RUB", "ufCrm44_1721812935209": "Y", "ufCrm44_1721812948498": 9999.9, }, { "ufCrm44_1721812760630": "Строка для пользовательского поля типа Строка", "ufCrm44_1721812814433": 45, "ufCrm44_1721812853419": "2024-08-21", "ufCrm44_1721812885588": []string{"example.com", "second-example.com"}, "ufCrm44_1721812898903": []string{"green_pixel2.png", "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAMCAYAAACqTLVoAAAALklEQVR42u3SAQEAAAQDsEsuOj3YMqwy6fBWCSCAAAIgAAIgAAIgAAIgAAJw3QLOrRH1U/gU4gAAAABJRU5ErkJggg=="}, "ufCrm44_1721812915476": "600|RUB", "ufCrm44_1721812935209": "N", "ufCrm44_1721812948498": 9999.9, }, }, }) if err != nil { return fmt.Errorf("crm.item.batchImport: %w", err) } // Метод заворачивает ответ в объект с ключом "items". raw, ok := b24.Unwrap(res.Result, "items") if !ok { return fmt.Errorf("в ответе нет ключа items") } fmt.Printf("%s\n", raw)
Обработка ответа
Метод возвращает массив items. Каждый элемент массива содержит объект item с идентификатором созданного элемента или поля error и error_description с данными об ошибке импорта.
HTTP-статус: 200
{
"result": {
"items": [
{
"item": {
"id": 15
}
},
{
"error": "CRM_FIELD_ERROR_REQUIRED",
"error_description": "Поле \"Название\" обязательно для заполнения"
}
]
},
"time": {
"start": 1723414961.913589,
"finish": 1723414964.652124,
"duration": 2.738534927368164,
"processing": 2.376383066177368,
"date_start": "2024-08-11T22:22:41+00:00",
"date_finish": "2024-08-11T22:22:44+00:00",
"operating": 2.3762991428375244
}
}
Возвращаемые данные
|
Название |
Описание |
|
result |
Корневой элемент ответа. Содержит результаты импорта (подробное описание) |
|
time |
Информация о времени выполнения запроса |
Объект result
|
Название |
Описание |
|
items |
Результаты импорта элементов (подробное описание) |
Элемент массива items
Каждый элемент массива содержит либо объект item при успешном импорте, либо пару полей error и error_description, если импорт завершился ошибкой.
|
Название |
Описание |
|
item |
Результат успешного импорта (подробное описание) |
|
error |
Код ошибки импорта элемента |
|
error_description |
Описание ошибки импорта элемента |
Объект item
|
Название |
Описание |
|
id |
Идентификатор созданного элемента |
Обработка ошибок
HTTP-статус: 400, 401, 403
{
"error": "NOT_FOUND",
"error_description": "Смарт-процесс не найден"
}
|
Название |
Описание |
|
error |
Строковый код ошибки. Состоит из цифр, латинских букв и знака подчеркивания. Может прийти пустым — тогда причину показывает только |
|
error_description |
Текст ошибки для разработчика. Не показывайте его конечному пользователю без обработки |
Возможные коды ошибок
|
Статус |
Код |
Описание |
Значение |
|
|
|
Смарт-процесс не найден |
Передан неизвестный |
|
|
|
Доступ запрещен |
У пользователя нет права на импорт элементов типа |
|
|
|
Неверное значение поля |
Передано недопустимое значение поля Для системных полей, например |
|
|
|
Expected iterable value for multiple field, but got |
В одно из множественных полей передано значение типа |
|
|
|
Вы не можете создать новый элемент из-за ограничений вашего тарифа |
Ограничения тарифа не позволяют создавать элементы смарт-процессов |
|
|
|
Вы не можете импортировать больше 20 элементов |
В массиве |
|
|
|
Неверные данные авторизации для запроса |
Неверный идентификатор пользователя или код вебхука в URL запроса |
|
|
|
Действие разрешено только интранет-пользователям |
Пользователь не является интранет-пользователем |
Статусы и коды системных ошибок
HTTP-статус: 4xx, 5xx
Описанные ниже ошибки возвращает сам REST API, а не логика конкретного метода. Они могут прийти в ответ на любой метод.
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Сервер вернул неожиданный ответ. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически, когда накопленное время выполнения метода перестает превышать лимит |
|
|
|
В запросе нет авторизационных данных: не передан ни access-токен, ни код вебхука |
|
|
|
Методы вызываются только по протоколу HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка. Чтобы ее снять, обратитесь в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих тарифах. У вебхука текст ошибки другой — |
|
|
|
Не найден активный вебхук с указанным идентификатором пользователя и секретным кодом |
|
|
|
Метод с таким именем не найден. Имя написано с ошибкой, метода нет в REST API или он недоступен без нужного скоупа |
|
|
|
Запрос требует более широких прав, чем есть у токена: у вебхука это выданные ему права, у приложения — скоуп. У приложения текст ошибки заканчивается на |
|
|
|
Срок действия access-токена истек |
|
|
|
Приложение установлено, но администратор Битрикс24 открыл доступ к нему только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть ее на коробочной установке, отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |