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

Обновить ресурс booking.v1.resource.update

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Обновить ресурс booking.v1.resource.update», проанализируем лучшие практики и покажем, как правильно использовать booking.v1.resource.update в реальных задачах.

Обновить ресурс booking.v1.resource.update

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

Метод booking.v1.resource.update обновляет существующий ресурс.

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

Название
тип
Описание
id
integer
Идентификатор ресурса.
Можно получить в методах booking.v1.resource.add и booking.v1.resource.list
fields
object
Объект, содержащий значения полей для обновления ресурса (подробное описание)

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

Название
тип
Описание
name
string
Название ресурса
description
string
Описание ресурса
typeId
integer
Идентификатор типа ресурса.

Список доступных типов можно узнать с помощью метода booking.v1.resourceType.list

isMain
string
Как показывать ресурс. Возможные значения:
— Y — в колонках расписания
— N — при пересечении ресурсов
isInfoNotificationOn
string
Сообщение клиенту о записи. Возможные значения:
— Y — включено
— N — выключено
templateTypeInfo
string
Тип шаблона сообщения о записи. Возможные значения:
— inanimate — шаблон для бронирования оборудования и помещений
— animate — шаблон для записи к специалистам
isConfirmationNotificationOn
string
Автоматическое подтверждение записи. Возможные значения:
— Y — включено
— N — выключено
templateTypeConfirmation
string
Тип шаблона сообщения о подтверждении записи. Возможные значения:
— inanimate — шаблон для бронирования оборудования и помещений
— animate — шаблон для записи к специалистам
isReminderNotificationOn
string
Напоминание о записи. Возможные значения:
— Y — включено
— N — выключено
templateTypeReminder
string
Тип шаблона сообщения для напоминания. Возможные значения: base
isFeedbackNotificationOn
string
Запрос обратной связи. Возможные значения:
— Y — включено
— N — выключено
templateTypeFeedback
string
Тип шаблона сообщения для запроса обратной связи. Возможные значения:
— inanimate — шаблон для бронирования оборудования и помещений
— animate — шаблон для записи к специалистам
isDelayedNotificationOn
string
Напоминание, когда клиент опаздывает. Возможные значения:
— Y — включено
— N — выключено
templateTypeDelayed
string
Тип шаблона сообщения об опоздании. Возможные значения:
— inanimate — шаблон для бронирования оборудования и помещений
— animate — шаблон для записи к специалистам
infoDelay
integer
Задержка, после которой клиенту приходит сообщение о записи. Указывается в секундах
reminderDelay
integer
Время до записи, за которое клиенту приходит напоминание о записи. Указывается в секундах
delayedDelay
integer
Время, через сколько отправить клиенту сообщение об опоздании. Указывается в секундах
delayedCounterDelay
integer
Время, через сколько включить счетчик в календаре. Указывается в секундах
confirmationDelay
integer
Время до записи, когда клиенту приходит первое сообщение для подтверждения записи. Указывается в секундах
confirmationRepetitions
integer
Количество сообщений, которые приходят клиенту для подтверждения записи, не учитывая первого
confirmationRepetitionsInterval
integer
Интервал между сообщениями о подтверждении записи. Указывается в секундах
confirmationCounterDelay
integer
Время до записи, после которого загорается счетчик не подтвержденной записи. Указывается в секундах

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":10,"fields":{"name":"Новое название","description":"Новое описание","typeId":1,"isMain":"N","isInfoNotificationOn":"Y","templateTypeInfo":"inanimate","isConfirmationNotificationOn":"Y","templateTypeConfirmation":"animate","isReminderNotificationOn":"Y","templateTypeReminder":"base","isFeedbackNotificationOn":"N","templateTypeFeedback":"animate","isDelayedNotificationOn":"N","templateTypeDelayed":"animate","infoDelay":300,"reminderDelay":-1,"delayedDelay":300,"delayedCounterDelay":7200,"confirmationDelay":86400,"confirmationRepetitions":0,"confirmationRepetitionsInterval":0,"confirmationCounterDelay":7200}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/booking.v1.resource.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":10,"fields":{"name":"Новое название","description":"Новое описание","typeId":1,"isMain":"N","isInfoNotificationOn":"Y","templateTypeInfo":"inanimate","isConfirmationNotificationOn":"Y","templateTypeConfirmation":"animate","isReminderNotificationOn":"Y","templateTypeReminder":"base","isFeedbackNotificationOn":"N","templateTypeFeedback":"animate","isDelayedNotificationOn":"N","templateTypeDelayed":"animate","infoDelay":300,"reminderDelay":-1,"delayedDelay":300,"delayedCounterDelay":7200,"confirmationDelay":86400,"confirmationRepetitions":0,"confirmationRepetitionsInterval":0,"confirmationCounterDelay":7200},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/booking.v1.resource.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		"booking.v1.resource.update",
    		{
    			id: 10,
    			fields: {
    				name: "Новое название",
    				description: "Новое описание",
    				typeId: 1,
    				isMain: "N",
    				isInfoNotificationOn: "Y",
    				templateTypeInfo: "inanimate",
    				isConfirmationNotificationOn: "Y",
    				templateTypeConfirmation: "animate",
    				isReminderNotificationOn: "Y",
    				templateTypeReminder: "base",
    				isFeedbackNotificationOn: "N",
    				templateTypeFeedback: "animate",
    				isDelayedNotificationOn: "N",
    				templateTypeDelayed: "animate",
    				infoDelay: 300,
    				reminderDelay: -1,
    				delayedDelay: 300,
    				delayedCounterDelay: 7200,
    				confirmationDelay: 86400,
    				confirmationRepetitions: 0,
    				confirmationRepetitionsInterval: 0,
    				confirmationCounterDelay: 7200
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.dir(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'booking.v1.resource.update',
                [
                    'id' => 10,
                    'fields' => [
                        'name' => 'Новое название',
                        'description' => 'Новое описание',
                        'typeId' => 1,
                        'isMain' => 'N',
                        'isInfoNotificationOn' => 'Y',
                        'templateTypeInfo' => 'inanimate',
                        'isConfirmationNotificationOn' => 'Y',
                        'templateTypeConfirmation' => 'animate',
                        'isReminderNotificationOn' => 'Y',
                        'templateTypeReminder' => 'base',
                        'isFeedbackNotificationOn' => 'N',
                        'templateTypeFeedback' => 'animate',
                        'isDelayedNotificationOn' => 'N',
                        'templateTypeDelayed' => 'animate',
                        'infoDelay' => 300,
                        'reminderDelay' => -1,
                        'delayedDelay' => 300,
                        'delayedCounterDelay' => 7200,
                        'confirmationDelay' => 86400,
                        'confirmationRepetitions' => 0,
                        'confirmationRepetitionsInterval' => 0,
                        'confirmationCounterDelay' => 7200,
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating resource: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "booking.v1.resource.update",
        {
            id: 10,
            fields: {
                name: "Новое название",
                description: "Новое описание",
                typeId: 1,
                isMain: "N",
                isInfoNotificationOn: "Y",
                templateTypeInfo: "inanimate",
                isConfirmationNotificationOn: "Y",
                templateTypeConfirmation: "animate",
                isReminderNotificationOn: "Y",
                templateTypeReminder: "base",
                isFeedbackNotificationOn: "N",
                templateTypeFeedback: "animate",
                isDelayedNotificationOn: "N",
                templateTypeDelayed: "animate",
                infoDelay: 300,
                reminderDelay: -1,
                delayedDelay: 300,
                delayedCounterDelay: 7200,
                confirmationDelay: 86400,
                confirmationRepetitions: 0,
                confirmationRepetitionsInterval: 0,
                confirmationCounterDelay: 7200
            }
        },
        result => {
            if (result.error())
                console.error(result.error());
            else
                console.dir(result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'booking.v1.resource.update',
        [
            'id' => 10,
            'fields' => [
                'name' => 'Новое название',
                'description' => 'Новое описание',
                'typeId' => 1,
                'isMain' => 'N',
                'isInfoNotificationOn' => 'Y',
                'templateTypeInfo' => 'inanimate',
                'isConfirmationNotificationOn' => 'Y',
                'templateTypeConfirmation' => 'animate',
                'isReminderNotificationOn' => 'Y',
                'templateTypeReminder' => 'base',
                'isFeedbackNotificationOn' => 'N',
                'templateTypeFeedback' => 'animate',
                'isDelayedNotificationOn' => 'N',
                'templateTypeDelayed' => 'animate',
                'infoDelay' => 300,
                'reminderDelay' => -1,
                'delayedDelay' => 300,
                'delayedCounterDelay' => 7200,
                'confirmationDelay' => 86400,
                'confirmationRepetitions' => 0,
                'confirmationRepetitionsInterval' => 0,
                'confirmationCounterDelay' => 7200
            ]
        ]
    );

    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": 1007,
    "error_description": "Resource not found"
}

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

КодОписаниеЗначение
100Could not find value for parameterНе передан обязательный параметр
1007Resource not foundУказан несуществующий id ресурса
1013Resource type with id does not existУказан несуществующий typeId
422Invalid value of the fieldНеверное значение поля
  • [](./resource-type/index)
  • [](./booking-v1-resource-add)
  • [](./booking-v1-resource-get)
  • [](./booking-v1-resource-delete)
  • [](./booking-v1-resource-list)

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

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к booking.v1.resource.update, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Обновить ресурс booking.v1.resource.update».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

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

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

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

Related Post

Как сделать свою карточку редактирования компанииКак сделать свою карточку редактирования компании

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

Добавить сделку и компанию с реквизитамиДобавить сделку и компанию с реквизитами

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

Закрепить чат вверху списка im.recent.pinЗакрепить чат вверху списка im.recent.pin

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Закрепить чат вверху списка im.recent.pin». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.