Блог Горошко Андрея Bitrix24 Обновить бронирование booking.v1.booking.update

Обновить бронирование booking.v1.booking.update

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Обновить бронирование booking.v1.booking.update», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.

Обновить бронирование booking.v1.booking.update

> Scope: booking
>
> Кто может выполнять метод: любой пользователь

Метод booking.v1.booking.update обновляет информацию о бронировании.

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

Название
тип
Описание
id
integer
Идентификатор бронирования
fields
object
Объект, содержащий значения полей для обновления брони (подробное описание)

Параметр fields {#fields}

Название
тип
Описание
resourceIds
array
Массив идентификаторов ресурсов.
ID ресурсов можно получить методом booking.v1.resource.list
name
string
Название бронирования
description
string
Описание бронирования
datePeriod
object
Объект, содержащий время брони (подробное описание)

Параметр datePeriod {#datePeriod}

Название
тип
Описание
from
object
Время начала брони в формате {"timestamp": "1723446900", "timezone": "Europe/Moscow"}
to
object
Время окончания брони в формате {"timestamp": "1723447800", "timezone": "Europe/Moscow"}

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":10,"fields":{"name":"Название","description":"Описание","resourceIds":[1,2,3],"datePeriod":{"from":{"timestamp":1723446900,"timezone":"Europe/Moscow"},"to":{"timestamp":1723447800,"timezone":"Europe/Moscow"}}}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/booking.v1.booking.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":10,"fields":{"name":"Название","description":"Описание","resourceIds":[1,2,3],"datePeriod":{"from":{"timestamp":1723446900,"timezone":"Europe/Moscow"},"to":{"timestamp":1723447800,"timezone":"Europe/Moscow"}}},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/booking.v1.booking.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'booking.v1.booking.update',
    		{
    			id: 10,
    			fields: {
    				name: 'Название',
    				description: 'Описание',
    				resourceIds: [1, 2, 3],
    				datePeriod: {
    					from: {
    						timestamp: 1723446900,
    						timezone: 'Europe/Moscow'
    					},
    					to: {
    						timestamp: 1723447800,
    						timezone: 'Europe/Moscow'
    					}
    				}
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	if (result.error())
    	{
    		console.error(result.error());
    	}
    	else
    	{
    		console.dir(result);
    	}
    }
    catch( error )
    {
    	console.error('Error:', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'booking.v1.booking.update',
                [
                    'id' => 10,
                    'fields' => [
                        'name' => 'Название',
                        'description' => 'Описание',
                        'resourceIds' => [1, 2, 3],
                        'datePeriod' => [
                            'from' => [
                                'timestamp' => 1723446900,
                                'timezone' => 'Europe/Moscow'
                            ],
                            'to' => [
                                'timestamp' => 1723447800,
                                'timezone' => 'Europe/Moscow'
                            ]
                        ]
                    ]
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        if ($result->error()) {
            error_log($result->error());
            echo 'Error: ' . $result->error();
        } else {
            echo 'Success: ' . print_r($result->data(), true);
            // Нужная вам логика обработки данных
            processData($result->data());
        }
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating booking: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "booking.v1.booking.update",
        {
            id: 10,
            fields: {
                name: "Название",
                description: "Описание",
                resourceIds: [1, 2, 3],
                datePeriod: {
                    from: {
                        timestamp: 1723446900,
                        timezone: "Europe/Moscow"
                    },
                    to: {
                        timestamp: 1723447800,
                        timezone: "Europe/Moscow"
                    }
                }
            }
        },
        result => {
            if (result.error())
                console.error(result.error());
            else
                console.dir(result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'booking.v1.booking.update',
        [
            'id' => 10,
            'fields' => [
                'name' => 'Название',
                'description' => 'Описание',
                'resourceIds' => [1, 2, 3],
                'datePeriod' => [
                    'from' => [
                        'timestamp' => 1723446900,
                        'timezone' => 'Europe/Moscow'
                    ],
                    'to' => [
                        'timestamp' => 1723447800,
                        'timezone' => 'Europe/Moscow'
                    ]
                ]
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

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

HTTP-статус: 200

{
    "result": true,
    "time": {
     "start": 1724068028.331234,
        "finish": 1724068028.726591,
        "duration": 0.3953571319580078,
        "processing": 0.13033390045166016,
        "date_start": "2025-01-21T13:47:08+02:00",
        "date_finish": "2025-01-21T13:47:08+02:00",
        "operating": 0
    }
}

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

Название
тип
Описание
result
boolean
Корневой элемент ответа, содержит true в случае успеха
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400

{
    "error": 422,
    "error_description": "Invalid date period"
}

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

КодОписаниеЗначение
1019Booking not foundЗапись с таким id не найдена
1018Empty resource collectionРесурсы недоступны для указанного временного промежутка, пустой массив ресурсов или таких ресурсов не существует
0Required fields:Не передан обязательный параметр внутри fields
100Could not find value for parameter Не передан обязательный параметр
422Invalid date periodНекорретный период времени
  • [](./booking-v1-booking-createfromwaitlist)
  • [](./booking-v1-booking-delete)
  • [](./booking-v1-booking-add)
  • [](./booking-v1-booking-list)
  • [](./booking-v1-booking-get)

💡 Экспертное мнение и рекомендации

Практические рекомендации:

  • При написании кастомных компонентов для «Обновить бронирование booking.v1.booking.update» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Как использовать метод SDK crm.currency.localizations.delete в Битрикс24Как использовать метод SDK crm.currency.localizations.delete в Битрикс24

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать метод SDK crm.currency.localizations.delete в Битрикс24», проанализируем

Добавить настройку для регулярного счета crm.invoice.recurring.addДобавить настройку для регулярного счета crm.invoice.recurring.add

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Добавить настройку для регулярного счета crm.invoice.recurring.add», разберем архитектурные

Активировать коннектор imconnector.activateАктивировать коннектор imconnector.activate

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Активировать коннектор imconnector.activate». Вы узнаете экспертные методики работы с активировать коннектор и научитесь