Блог Горошко Андрея Bitrix24 Добавить новый тип ресурса booking.v1.resourceType.add

Добавить новый тип ресурса booking.v1.resourceType.add

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

Добавить новый тип ресурса booking.v1.resourceType.add

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

Метод booking.v1.resourceType.add добавляет новый тип ресурса.

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

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

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

Название
тип
Описание
name
string
Название типа ресурса
code*
string
Уникальный код типа ресурса
isInfoNotificationOn
string
Сообщение клиенту о записи. Возможные значения:
— Y — включено
— N — выключено

По умолчанию Y

templateTypeInfo
string
Тип шаблона сообщения о записи. Возможные значения:
— inanimate — шаблон для бронирования оборудования и помещений
— animate — шаблон для записи к специалистам

По умолчанию inanimate

isConfirmationNotificationOn
string
Автоматическое подтверждение записи. Возможные значения:
— Y — включено
— N — выключено

По умолчанию Y

templateTypeConfirmation
string
Тип шаблона сообщения о подтверждении записи. Возможные значения:
— inanimate — шаблон для бронирования оборудования и помещений
— animate — шаблон для записи к специалистам

По умолчанию inanimate

isReminderNotificationOn
string
Напоминание о записи. Возможные значения:
— Y — включено
— N — выключено

По умолчанию Y

templateTypeReminder
string
Тип шаблона сообщения для напоминания. Возможные значения: base
isFeedbackNotificationOn
string
Запрос обратной связи. Возможные значения:
— Y — включено
— N — выключено

По умолчанию Y

templateTypeFeedback
string
Тип шаблона сообщения для запроса обратной связи. Возможные значения:
— inanimate — шаблон для бронирования оборудования и помещений
— animate — шаблон для записи к специалистам

По умолчанию inanimate

isDelayedNotificationOn
string
Напоминание, когда клиент опаздывает. Возможные значения:
— Y — включено
— N — выключено

По умолчанию Y

templateTypeDelayed
string
Тип шаблона сообщения об опоздании. Возможные значения:
— inanimate — шаблон для бронирования оборудования и помещений
— animate — шаблон для записи к специалистам

По умолчанию inanimate

infoDelay
integer
Задержка, после которой клиенту приходит сообщение о записи. Указывается в секундах.

По умолчанию 300

reminderDelay
integer
Время до записи, за которое клиенту приходит напоминание о записи. Указывается в секундах.

По умолчанию -1, утром в день записи

delayedDelay
integer
Время, через сколько отправить клиенту сообщение об опоздании. Указывается в секундах.

По умолчанию 300

delayedCounterDelay
integer
Время, через сколько включить счетчик в календаре. Указывается в секундах.

По умолчанию 7200

confirmationDelay
integer
Время до записи, когда клиенту приходит первое сообщение для подтверждения записи. Указывается в секундах.

По умолчанию 86400

confirmationRepetitions
integer
Количество сообщений, которые приходят клиенту для подтверждения записи, не учитывая первого.

По умолчанию 0

confirmationRepetitionsInterval
integer
Интервал между сообщениями о подтверждении записи. Указывается в секундах.

По умолчанию 0

confirmationCounterDelay
integer
Время до записи, после которого загорается счетчик не подтвержденной записи. Указывается в секундах.

По умолчанию 7200

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"name":"Название","code":"code","isInfoNotificationOn":"Y","templateTypeInfo":"inanimate","isConfirmationNotificationOn":"Y","templateTypeConfirmation":"animate","isReminderNotificationOn":"N","templateTypeReminder":"base","isFeedbackNotificationOn":"Y","templateTypeFeedback":"inanimate","isDelayedNotificationOn":"Y","templateTypeDelayed":"inanimate","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.resourceType.add
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"name":"Название","code":"code","isInfoNotificationOn":"Y","templateTypeInfo":"inanimate","isConfirmationNotificationOn":"Y","templateTypeConfirmation":"animate","isReminderNotificationOn":"N","templateTypeReminder":"base","isFeedbackNotificationOn":"Y","templateTypeFeedback":"inanimate","isDelayedNotificationOn":"Y","templateTypeDelayed":"inanimate","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.resourceType.add
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		"booking.v1.resourceType.add",
    		{
    			fields: {
    				name: "Название",
    				code: "code",
    				isInfoNotificationOn: "Y",
    				templateTypeInfo: "inanimate",
    				isConfirmationNotificationOn: "Y",
    				templateTypeConfirmation: "animate",
    				isReminderNotificationOn: "N",
    				templateTypeReminder: "base",
    				isFeedbackNotificationOn: "Y",
    				templateTypeFeedback: "inanimate",
    				isDelayedNotificationOn: "Y",
    				templateTypeDelayed: "inanimate",
    				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.resourceType.add',
                [
                    'fields' => [
                        'name'                          => 'Название',
                        'code'                          => 'code',
                        'isInfoNotificationOn'          => 'Y',
                        'templateTypeInfo'              => 'inanimate',
                        'isConfirmationNotificationOn'  => 'Y',
                        'templateTypeConfirmation'      => 'animate',
                        'isReminderNotificationOn'      => 'N',
                        'templateTypeReminder'          => 'base',
                        'isFeedbackNotificationOn'      => 'Y',
                        'templateTypeFeedback'          => 'inanimate',
                        'isDelayedNotificationOn'       => 'Y',
                        'templateTypeDelayed'           => 'inanimate',
                        '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 adding resource type: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "booking.v1.resourceType.add",
        {
            fields: {
                name: "Название",
                code: "code",
                isInfoNotificationOn: "Y",
                templateTypeInfo: "inanimate",
                isConfirmationNotificationOn: "Y",
                templateTypeConfirmation: "animate",
                isReminderNotificationOn: "N",
                templateTypeReminder: "base",
                isFeedbackNotificationOn: "Y",
                templateTypeFeedback: "inanimate",
                isDelayedNotificationOn: "Y",
                templateTypeDelayed: "inanimate",
                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.resourceType.add',
        [
            'fields' => [
                'name' => 'Название',
                'code' => 'code',
                'isInfoNotificationOn' => 'Y',
                'templateTypeInfo' => 'inanimate',
                'isConfirmationNotificationOn' => 'Y',
                'templateTypeConfirmation' => 'animate',
                'isReminderNotificationOn' => 'N',
                'templateTypeReminder' => 'base',
                'isFeedbackNotificationOn' => 'Y',
                'templateTypeFeedback' => 'inanimate',
                'isDelayedNotificationOn' => 'Y',
                'templateTypeDelayed' => 'inanimate',
                '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": {
        "id": 17
    },
    "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
object
Корневой элемент ответа, содержит идентификатор созданного типа ресурса
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400

{
    "error": 0,
    "error_description": "Required fields: code"
}

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

КодОписаниеЗначение
0Required fields: codeНе передан обязательный параметр внутри fields
100Could not find value for parameter Не передан обязательный параметр
422Invalid value of the fieldНеверное значение поля
1010Resource type with code already exists'Тип ресурса с таким code уже существует
  • [](../index)
  • [](./booking-v1-resourcetype-get)
  • [](./booking-v1-resourcetype-update)
  • [](./booking-v1-resourcetype-delete)
  • [](./booking-v1-resourcetype-list)

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

Ключевые выводы по теме «Добавить новый тип ресурса booking.v1.resourceType.add»:

Использование современных стандартов D7 при работе с booking.v1.resourceType.add позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

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

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

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

Related Post

Изменить контакт crm.contact.updateИзменить контакт crm.contact.update

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

Удалить бэклог tasks.api.scrum.backlog.deleteУдалить бэклог tasks.api.scrum.backlog.delete

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

Добавить новый ресурс calendar.resource.addДобавить новый ресурс calendar.resource.add

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