Обновить поля датасета biconnector.dataset.fields.update

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: biconnector

Кто может выполнять метод: пользователь с доступом к разделу «Рабочее место аналитика»

Метод biconnector.dataset.fields.update обновляет поля существующего датасета.

Параметры метода

Обязательные параметры отмечены *

Название
тип

Описание

id*
integer

Идентификатор датасета, можно получить методами biconnector.dataset.list или biconnector.dataset.add

add
object

Объект, содержащий массив добавляемых полей со следующей структурой:

{
            "type" : "int",
            "name": "NAME",
            "externalCode":"NAME"
        },
        
  • type — тип поля
  • name — название поля
  • externalCode — внешний код поля

update
object

Объект, содержащий массив обновляемых полей со следующей структурой:

{
            "id": 12,
            "visible": false
        },
        
  • id — Идентификатор поля, можно получить методом biconnector.dataset.get
  • visible — видимость поля

delete
int[]

Объект, содержащий массив идентификаторов полей для их удаления. Идентификаторы полей можно получить методом biconnector.dataset.get

Примеры кода

Как использовать примеры в документации

curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{
            "id": 10,
            "add": [
                {
                    "type": "int",
                    "name": "NAME",
                    "externalCode": "NAME"
                },
                {
                    "type": "int",
                    "name": "ID",
                    "externalCode": "ID"
                }
            ],
            "update": [
                {
                    "id": 12,
                    "visible": false
                },
                {
                    "id": 13,
                    "visible": true
                }
            ],
            "delete": [
                14,
                15
            ]
        }' \
        https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/biconnector.dataset.fields.update
        
curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{
            "id": 10,
            "add": [
                {
                    "type": "int",
                    "name": "NAME",
                    "externalCode": "NAME"
                },
                {
                    "type": "int",
                    "name": "ID",
                    "externalCode": "ID"
                }
            ],
            "update": [
                {
                    "id": 12,
                    "visible": false
                },
                {
                    "id": 13,
                    "visible": true
                }
            ],
            "delete": [
                14,
                15
            ],
            "auth": "**put_access_token_here**"
        }' \
        https://**put_your_bitrix24_address**/rest/biconnector.dataset.fields.update
        
// 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
        
        try {
          const response = await $b24.actions.v2.call.make<boolean>({
            method: 'biconnector.dataset.fields.update',
            params: {
              id: 10,
              add: [
                {
                  type: 'int',
                  name: 'NAME',
                  externalCode: 'NAME',
                },
                {
                  type: 'int',
                  name: 'ID',
                  externalCode: 'ID',
                },
              ],
              update: [
                {
                  id: 12,
                  visible: false,
                },
                {
                  id: 13,
                  visible: true,
                },
              ],
              delete: [14, 15],
            },
            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('Dataset fields updated:', result)
          }
        } 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 updateDatasetFields() {
            try {
              // Initialize the SDK inside a Bitrix24 frame
              const $b24 = await B24Js.initializeB24Frame()
        
              const response = await $b24.actions.v2.call.make({
                method: 'biconnector.dataset.fields.update',
                params: {
                  id: 10,
                  add: [
                    {
                      type: 'int',
                      name: 'NAME',
                      externalCode: 'NAME',
                    },
                    {
                      type: 'int',
                      name: 'ID',
                      externalCode: 'ID',
                    },
                  ],
                  update: [
                    {
                      id: 12,
                      visible: false,
                    },
                    {
                      id: 13,
                      visible: true,
                    },
                  ],
                  delete: [14, 15],
                },
                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('Dataset fields updated:', result)
            } catch (error) {
              // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
              console.error(error)
            }
          }
        
          document.addEventListener('DOMContentLoaded', updateDatasetFields)
        </script>
        
try {
            $response = $b24Service
                ->core
                ->call(
                    'biconnector.dataset.fields.update',
                    [
                        'id'     => 10,
                        'add'    => [
                            [
                                'type'         => "int",
                                'name'         => "NAME",
                                'externalCode' => "NAME"
                            ],
                            [
                                'type'         => "int",
                                'name'         => "ID",
                                'externalCode' => "ID"
                            ]
                        ],
                        'update' => [
                            [
                                'id'      => 12,
                                'visible' => false
                            ],
                            [
                                'id'      => 13,
                                'visible' => true
                            ]
                        ],
                        'delete' => [14, 15]
                    ]
                );
        
            $result = $response
                ->getResponseData()
                ->getResult();
        
            if ($result->error()) {
                echo 'Error: ' . $result->error();
            } else {
                echo 'Data: ' . print_r($result->data(), true);
            }
        
        } catch (Throwable $e) {
            error_log($e->getMessage());
            echo 'Error updating dataset fields: ' . $e->getMessage();
        }
        
BX24.callMethod(
            'biconnector.dataset.fields.update',
            {
                id: 10,
                add: [
                    {
                        type: "int",
                        name: "NAME",
                        externalCode: "NAME"
                    },
                    {
                        type: "int",
                        name: "ID",
                        externalCode: "ID"
                    }
                ],
                update: [
                    {
                        "id": 12,
                        "visible": false
                    },
                    {
                        "id": 13,
                        "visible": true
                    }
                ],
                delete: [
                    14,
                    15
                ]
            },
            (result) => {
                result.error()
                    ? console.error(result.error())
                    : console.info(result.data());
            }
        );
        
require_once('crest.php');
        
        $result = CRest::call(
            'biconnector.dataset.fields.update',
            [
                'id' => 10,
                'add' => [
                    [
                        'type' => 'int',
                        'name' => 'NAME',
                        'externalCode' => 'NAME'
                    ],
                    [
                        'type' => 'int',
                        'name' => 'ID',
                        'externalCode' => 'ID'
                    ]
                ],
                'update' => [
                    [
                        'id' => 12,
                        'visible' => false
                    ],
                    [
                        'id' => 13,
                        'visible' => true
                    ]
                ],
                'delete' => [14, 15]
            ]
        );
        
        echo '<PRE>';
        print_r($result);
        echo '</PRE>';
        
// client и ctx уже созданы — см. раздел «SDK для Go»
        res, err := client.Core().Call(ctx, "biconnector.dataset.fields.update", b24.Params{
        	"id": 10,
        	"add": []b24.Params{
        		{
        			"type":         "int",
        			"name":         "NAME",
        			"externalCode": "NAME",
        		},
        		{
        			"type":         "int",
        			"name":         "ID",
        			"externalCode": "ID",
        		},
        	},
        	"update": []b24.Params{
        		{
        			"id":      12,
        			"visible": false,
        		},
        		{
        			"id":      13,
        			"visible": true,
        		},
        	},
        	"delete": []int{14, 15},
        })
        if err != nil {
        	return fmt.Errorf("biconnector.dataset.fields.update: %w", err)
        }
        
        var ok bool
        if err := json.Unmarshal(res.Result, &ok); err != nil {
        	return fmt.Errorf("разбор ответа: %w", err)
        }
        fmt.Println("выполнено:", ok)
        

Обработка ответа

HTTP-статус: 200

{
            "result": true,
            "time": {
                "start": 1725365418.056843,
                "finish": 1725365419.671506,
                "duration": 1.6146628856658936,
                "processing": 1.3475170135498047,
                "date_start": "2024-09-03T14:10:18+02:00",
                "date_finish": "2024-09-03T14:10:19+02:00"
            }
        }
        

Возвращаемые данные

Название
тип

Описание

result
boolean

Корневой элемент ответа, содержит true в случае успеха

time
time

Информация о времени выполнения запроса

Обработка ошибок

HTTP-статус: 200

{
            "error": "VALIDATION_ID_NOT_PROVIDED",
            "error_description": "ID is missing."
        }
        

Название
тип

Описание

error
string

Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания

error_description
error_description

Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде

Возможные коды ошибок

Код

Описание

Значение

VALIDATION_ID_NOT_PROVIDED

ID is missing.

Идентификатор не указан

VALIDATION_INVALID_ID_FORMAT

ID has to be a positive integer.

Неверный формат ID

DATASET_NOT_FOUND

Dataset was not found.

Датасет не найден

DATASET_UPDATE_ERROR

Error updating dataset.

Ошибка обновления датасета

VALIDATION_DUPLICATE_FIELD_CODE

Duplicate values found in the "code" parameter: #LIST_CODES#

Обнаружены дубликаты в параметре externalCode полей датасета

VALIDATION_DUPLICATE_FIELD_NAME

Duplicate values found in the "name" parameter: #LIST_NAMES#

Обнаружены дубликаты в параметре name полей датасета

VALIDATION_FIELD_NAME_INVALID_FORMAT

Field "name" has to start with an uppercase Latin character. Possible entry includes uppercase Latin characters (A-Z), numbers (0-9) and underscores.

Неправильный формат названия поля. Название должно начинаться с буквы, можно использовать только заглавные латинские буквы (A-Z), цифры и знак _

VALIDATION_FIELD_NAME_TOO_LONG

Field "name" must not exceed 32 characters.

Название поля не должно превышать 32 символов

VALIDATION_FIELD_INVALID_TYPE

Invalid field type.

Некорректный тип поля

VALIDATION_DUPLICATE_EXIST_CODE

The following "externalCode" values already exist in the current fields: #LIST_CODES#

Поля с таким параметром externalCode уже существуют

VALIDATION_DUPLICATE_EXIST_NAME

The following "name" values already exist in the current fields: #LIST_NAMES#

Поля с таким параметром name уже существуют

VALIDATION_FIELD_ADD_MISSING_REQUIRED_FIELDS

Field to be added must include the required parameters: "name", "externalCode" and "type".

Поле для добавления должно включать параметры name, externalCode и type

VALIDATION_FIELD_UPDATE_MISSING_REQUIRED_FIELDS

Field to be updated must include the required parameters: "id" and "visible".

Поле для обновления должно включать параметры id и visible

VALIDATION_FIELD_DELETE_INVALID_ID

ID to be deleted must be a positive integer.

Неверный формат id для удаления

Статусы и коды системных ошибок

HTTP-статус: 20x, 40x, 50x

Описанные ниже ошибки могут возникнуть при вызове любого метода

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически через 10 минут

405

ERROR_BATCH_METHOD_NOT_ALLOWED
Method is not allowed for batch usage

Текущий метод не разрешен для вызова с помощью batch

400

ERROR_BATCH_LENGTH_EXCEEDED
Max batch length exceeded

Превышена максимальная длина параметров, переданных в метод batch

401

NO_AUTH_FOUND
Wrong authorization data

Неверный access-токен или код вебхука

400

INVALID_REQUEST
Https required

Для вызовов методов требуется использовать протокол HTTPS

503

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24

403

ACCESS_DENIED
REST API is available only on commercial plans

REST API доступен только на коммерческих планах

403

INVALID_CREDENTIALS
Invalid request credentials

У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав

404

ERROR_MANIFEST_IS_NOT_AVAILABLE
Manifest is not available

Манифест недоступен

403

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более высоких привилегий, чем предоставляет токен вебхука

401

expired_token
The access token provided has expired

Предоставленный access-токен доступа истек

403

user_access_error
The user does not have access to the application

Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям

500

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение