Блог Горошко Андрея Bitrix24 Получить список типов ресурсов booking.v1.resourceType.list

Получить список типов ресурсов booking.v1.resourceType.list

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

Получить список типов ресурсов booking.v1.resourceType.list

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

Метод booking.v1.resourceType.list возвращает список типов ресурсов по фильтру. Является реализацией списочного метода для типов ресурсов.

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

FILTER
object
Объект для фильтрации списка типов ресурсов в формате {"field_1": "value_1", ... "field_N": "value_N"}, где
— field_N — поле типа ресурса для фильтра
— value_N — значение поля
ORDER
object
Объект для сортировки списка типа ресурсов в формате {"field_1": "value_1", ... "field_N": "value_N"}, где
— field_N — поле типа ресурса для сортировки
— value_N — направление сортировки

Направление сортировки может принимать значения:
— asc — по возрастанию
— desc — по убыванию

Значение по умолчанию — {ID: 'ASC'}

Параметры filter {#filter}

Название
тип
Описание
searchQuery
string
Поисковой запрос. Ищет по подстроке в названии типа ресурса
moduleId
string
Модуль типа ресурса
name
string
Название типа ресурса
code
string
Код типа ресурса

Используйте или searchQuery для поиска по подстроке или name для поиска по полному совпадению.

Параметры order {#order}

Название
тип
Описание
id
string
Сортировка по идентификатору
name
string
Сортировка по названию
code
string
Сортировка по коду

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"filter":{"searchQuery":"рес","moduleId":"booking"},"order":{"id":"ASC","name":"DESC","code":"DESC"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/booking.v1.resourceType.list
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"filter":{"searchQuery":"рес","moduleId":"booking"},"order":{"id":"ASC","name":"DESC","code":"DESC"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/booking.v1.resourceType.list
  • JS
    // callListMethod рекомендуется использовать, когда необходимо получить весь набор списочных данных и объём записей относительно невелик (до примерно 1000 элементов). Метод загружает все данные сразу, что может привести к высокой нагрузке на память при работе с большими объемами.
    
    try {
      const response = await $b24.callListMethod(
        'booking.v1.resourceType.list',
        {
          filter: {
            "searchQuery": "рес",
            "moduleId": "booking"
          },
          order: {
            id: "ASC",
            name: "DESC",
            code: "DESC"
          }
        },
        (progress) => { console.log('Progress:', progress) }
      );
      const items = response.getData() || [];
      for (const entity of items) { console.log('Entity:', entity); }
    } catch (error) {
      console.error('Request failed', error);
    }
    
    // fetchListMethod предпочтителен при работе с крупными наборами данных. Метод реализует итеративную выборку с использованием генератора, что позволяет обрабатывать данные по частям и эффективно использовать память.
    
    try {
      const generator = $b24.fetchListMethod('booking.v1.resourceType.list', {
        filter: {
          "searchQuery": "рес",
          "moduleId": "booking"
        },
        order: {
          id: "ASC",
          name: "DESC",
          code: "DESC"
        }
      }, 'ID');
      for await (const page of generator) {
        for (const entity of page) { console.log('Entity:', entity); }
      }
    } catch (error) {
      console.error('Request failed', error);
    }
    
    // callMethod предоставляет ручной контроль над процессом постраничного получения данных через параметр start. Подходит для сценариев, где требуется точное управление пакетами запросов. Однако при больших объемах данных может быть менее эффективным по сравнению с fetchListMethod.
    
    try {
      const response = await $b24.callMethod('booking.v1.resourceType.list', {
        filter: {
          "searchQuery": "рес",
          "moduleId": "booking"
        },
        order: {
          id: "ASC",
          name: "DESC",
          code: "DESC"
        }
      }, 0);
      const result = response.getData().result || [];
      for (const entity of result) { console.log('Entity:', entity); }
    } catch (error) {
      console.error('Request failed', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'booking.v1.resourceType.list',
                [
                    'filter' => [
                        'searchQuery' => 'рес',
                        'moduleId'    => 'booking',
                    ],
                    'order'  => [
                        'id'   => 'ASC',
                        'name' => 'DESC',
                        'code' => 'DESC',
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        if ($result->error()) {
            error_log($result->error());
            echo 'Error: ' . $result->error();
        } else {
            echo 'Success: ' . print_r($result->data(), true);
        }
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error listing resource types: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "booking.v1.resourceType.list",
        {
            filter: {
                    "searchQuery": "рес",
                    "moduleId": "booking"
        },
        order: {
                id: "ASC",
                name: "DESC",
                code: "DESC"
            }
        },
        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.list',
        [
            'filter' => [
                'searchQuery' => 'рес',
                'moduleId' => 'booking'
            ],
            'order' => [
                'id' => 'ASC',
                'name' => 'DESC',
                'code' => 'DESC'
            ]
        ]
    );

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

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

HTTP-статус: 200

{
    "result": {
        "resource": [
            {
                "code": "equipment",
                "confirmationCounterDelay": 10800,
                "confirmationNotificationDelay": 86400,
                "confirmationNotificationRepetitions": null,
                "confirmationNotificationRepetitionsInterval": 10800,
                "delayedCounterDelay": 300,
                "delayedNotificationDelay": 300,
                "id": 3,
                "infoNotificationDelay": null,
                "isConfirmationNotificationOn": "Y",
                "isDelayedNotificationOn": "Y",
                "isFeedbackNotificationOn": "N",
                "isReminderNotificationOn": "Y",
                "name": "ресурс",
                "reminderNotificationDelay": -1,
                "templateTypeConfirmation": "inanimate",
                "templateTypeDelayed": "inanimate",
                "templateTypeFeedback": "inanimate",
                "templateTypeReminder": "base"
            },
            {
                "code": "expert",
                "confirmationCounterDelay": 10800,
                "confirmationNotificationDelay": 86400,
                "confirmationNotificationRepetitions": null,
                "confirmationNotificationRepetitionsInterval": 10800,
                "delayedCounterDelay": 300,
                "delayedNotificationDelay": 300,
                "id": 5,
                "infoNotificationDelay": null,
                "isConfirmationNotificationOn": "Y",
                "isDelayedNotificationOn": "Y",
                "isFeedbackNotificationOn": "N",
                "isReminderNotificationOn": "Y",
                "name": "ресурс 2",
                "reminderNotificationDelay": -1,
                "templateTypeConfirmation": "animate",
                "templateTypeDelayed": "animate",
                "templateTypeFeedback": "animate",
                "templateTypeReminder": "base"
            },
        ]
    },
    "time": {
        "start": 1746540063.20403,
        "finish": 1746540063.261006,
        "duration": 0.0569760799407959,
        "processing": 0.020888090133666992,
        "date_start": "2025-05-06T17:01:03+03:00",
        "date_finish": "2025-05-06T17:01:03+03:00",
        "operating_reset_at": 1746540663,
        "operating": 0
    }
}

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

Название
тип
Описание
result
object
Корневой элемент ответа.

Cодержит массив объектов с информацией о типах ресурсов. Структура описана ниже

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

Тип {#resource}

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

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

HTTP-статус: 400

{
    "error": "",
    "error_description": "Invalid value {ASC} to match with parameter {order}. Should be value of type array."
}

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

КодОписаниеЗначение
100Invalid value to match with parameter {order}. Should be value of type arrayВ параметр order передан не объект
100Invalid value to match with parameter {filter}. Should be value of type arrayВ параметр filter передан не объект
  • [](../index)
  • [](./booking-v1-resourcetype-add)
  • [](./booking-v1-resourcetype-update)
  • [](./booking-v1-resourcetype-delete)
  • [](./booking-v1-resourcetype-get)

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

Ключевые выводы по теме «Получить список типов ресурсов booking.v1.resourceType.list»:

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

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

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

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

Related Post

При установке значений списка пользовательского поля onCrmLeadUserFieldSetEnu…При установке значений списка пользовательского поля onCrmLeadUserFieldSetEnu…

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

Получить информацию о деле по идентификатору crm.activity.getПолучить информацию о деле по идентификатору crm.activity.get

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

Получить список переводов названия типов цен по фильтру catalog.priceTypeLang…Получить список переводов названия типов цен по фильтру catalog.priceTypeLang…

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