При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Получить список типов ресурсов booking.v1.resourceType.list», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.
Получить список типов ресурсов booking.v1.resourceType.list
> Scope: booking
>
> Кто может выполнять метод: любой пользователь
Метод booking.v1.resourceType.list возвращает список типов ресурсов по фильтру. Является реализацией списочного метода для типов ресурсов.
Параметры метода
FILTERobject | Объект для фильтрации списка типов ресурсов в формате {"field_1": "value_1", ... "field_N": "value_N"}, где— field_N — поле типа ресурса для фильтра— value_N — значение поля |
|---|---|
ORDERobject | Объект для сортировки списка типа ресурсов в формате {"field_1": "value_1", ... "field_N": "value_N"}, где— field_N — поле типа ресурса для сортировки— value_N — направление сортировкиНаправление сортировки может принимать значения: Значение по умолчанию — |
Параметры filter {#filter}
Названиетип | Описание |
|---|---|
searchQuerystring | Поисковой запрос. Ищет по подстроке в названии типа ресурса |
moduleIdstring | Модуль типа ресурса |
namestring | Название типа ресурса |
codestring | Код типа ресурса |
Используйте или searchQuery для поиска по подстроке или name для поиска по полному совпадению.
Параметры order {#order}
Названиетип | Описание |
|---|---|
idstring | Сортировка по идентификатору |
namestring | Сортировка по названию |
codestring | Сортировка по коду |
Примеры кода
- 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
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultobject | Корневой элемент ответа. Cодержит массив объектов с информацией о типах ресурсов. Структура описана ниже |
timetime | Информация о времени выполнения запроса |
Тип {#resource}
codestring | Код типа ресурса |
|---|---|
confirmationCounterDelayinteger | Время до записи в секундах, после которого загорается счетчик не подтвержденной записи |
confirmationDelayinteger | Время до записи в секундах, когда клиенту приходит первое сообщение для подтверждения записи |
confirmationRepetitionsinteger | Количество сообщений, которые приходят клиенту для подтверждения записи, не учитывая первого |
confirmationRepetitionsIntervalinteger | Интервал между сообщениями о подтверждении записи, в секундах |
delayedCounterDelayinteger | Время в секундах, через сколько включить счетчик в календаре |
delayedDelayinteger | Время в секундах, через сколько отправить клиенту сообщение об опоздании |
idinteger | Идентификатор типа ресурса |
infoDelayinteger | Задержка в секундах, после которой клиенту приходит сообщение о записи |
isConfirmationNotificationOnstring | Автоматическое подтверждение записи. Возможные значения: — Y — включено— N — выключено |
isDelayedNotificationOnstring | Напоминание, когда клиент опаздывает. Возможные значения: — Y — включено— N — выключено |
isFeedbackNotificationOnstring | Запрос обратной связи. Возможные значения: — Y — включено— N — выключено |
isReminderNotificationOnstring | Напоминание о записи. Возможные значения: — Y — включено— N — выключено |
namestring | Название ресурса |
reminderDelayinteger | Время до записи в секундах, за которое клиенту приходит напоминание о записи. Значение -1 — утром в день записи |
templateTypeConfirmationstring | Тип шаблона сообщения о подтверждении записи. Возможные значения: — inanimate — шаблон для бронирования оборудования и помещений— animate — шаблон для записи к специалистам |
templateTypeDelayedstring | Тип шаблона сообщения об опоздании. Возможные значения: — inanimate — шаблон для бронирования оборудования и помещений— animate — шаблон для записи к специалистам |
templateTypeFeedbackstring | Тип шаблона сообщения для запроса обратной связи. Возможные значения: — inanimate — шаблон для бронирования оборудования и помещений— animate — шаблон для записи к специалистам |
templateTypeReminderstring | Тип шаблона сообщения для напоминания. Возможные значения: base |
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Invalid value {ASC} to match with parameter {order}. Should be value of type array."
}Возможные коды ошибок
| Код | Описание | Значение |
|---|---|---|
100 | Invalid value to match with parameter {order}. Should be value of type array | В параметр order передан не объект |
100 | Invalid 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 и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru