Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Обновить поля датасета biconnector.dataset.fields.update». Вы узнаете экспертные методики работы с biconnector.dataset.fields.update и научитесь избегать типичных ошибок начинающих разработчиков.
Обновить поля датасета biconnector.dataset.fields.update
> Scope: biconnector
>
> Кто может выполнять метод: пользователь с доступом к разделу «Рабочее место аналитика»
Метод biconnector.dataset.fields.update обновляет поля существующего датасета.
Параметры метода
Названиетип | Описание |
|---|---|
id*integer | Идентификатор датасета, можно получить методами biconnector.dataset.list или biconnector.dataset.add |
addobject | Объект, содержащий массив добавляемых полей со следующей структурой:— |
updateobject | Объект, содержащий массив обновляемых полей со следующей структурой:— |
deleteint[] | Объект, содержащий массив идентификаторов полей для их удаления. Идентификаторы полей можно получить методом biconnector.dataset.get |
Примеры кода
- cURL (Webhook)
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_webbhook_here**/biconnector.dataset.fields.update- cURL (OAuth)
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- JS
try
{
const response = await $b24.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
]
}
);
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(
'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.js
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());
}
);- PHP CRest
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>';Обработка ответа
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"
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultboolean | Корневой элемент ответа, содержит true в случае успеха |
timetime | Информация о времени выполнения запроса |
Обработка ошибок
HTTP-статус: 200
{
"error": "VALIDATION_ID_NOT_PROVIDED",
"error_description": "ID is missing."
}Возможные коды ошибок
| Код | Описание | Значение |
|---|---|---|
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 для удаления |
- [](./biconnector-dataset-add)
- [](./biconnector-dataset-update)
- [](./biconnector-dataset-fields)
- [](./biconnector-dataset-get)
- [](./biconnector-dataset-list)
- [](./biconnector-dataset-delete)
💡 Экспертное мнение и рекомендации
Ключевые выводы по теме «Обновить поля датасета biconnector.dataset.fields.update»:
Использование современных стандартов D7 при работе с biconnector.dataset.fields.update позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru