Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить список шаблонов реквизитов по фильтру crm.requisite.preset.list». Вы узнаете экспертные методики работы с crm.requisite.preset.list и научитесь избегать типичных ошибок начинающих разработчиков.
Получить список шаблонов реквизитов по фильтру crm.requisite.preset.list
> Scope: crm
>
> Кто может выполнять метод: любой пользователь
Метод возвращает список шаблонов реквизитов по фильтру.
Параметры метода
Названиетип | Описание |
|---|---|
selectarray | Массив со списком полей, которые необходимо выбрать (смотрите поля шаблона). Если массив не передан или же передан пустой массив, то будут выбраны все доступные поля шаблонов |
filterobject | Объект для фильтрации выбранных шаблонов в формате {"field_1": "value_1", ... "field_N": "value_N"}.Возможные значения для Ключу можно задать дополнительный префикс, уточняющий поведение фильтра. Возможные значения префикса: |
orderobject | Объект для сортировки выбранных шаблонов в формате {"field_1": "order_1", ... "field_N": "order_N"}.Возможные значения для Возможные значения для |
startinteger | Параметр используется для управления постраничной навигацией. Размер страницы результатов всегда статичный: 50 записей. Чтобы выбрать вторую страницу результатов, необходимо передавать значение Формула расчета значения параметра
|
Описание полей шаблона реквизитов {#fields}
Названиетип | Описание |
|---|---|
IDinteger | Идентификатор реквизита. Создается автоматически и уникален в рамках портала |
ENTITY_TYPE_IDinteger | Идентификатор типа родительского объекта. Идентификаторы типов объектов CRM отдает метод crm.enum.ownertype |
COUNTRY_IDinteger | Идентификатор страны, которой соответствует набор полей шаблона реквизита (для получения доступных значений смотрите метод crm.requisite.preset.countries) |
DATE_CREATEdatetime | Дата создания |
DATE_MODIFYdatetime | Дата изменения. Содержит пустую строку, если шаблон не менялся после создания |
CREATED_BY_IDuser | Идентификатор пользователя, создавшего реквизит |
MODIFY_BY_IDuser | Идентификатор пользователя, изменившего реквизит |
NAMEstring | Название реквизита |
XML_IDstring | Внешний ключ. Используется для операций обмена. Идентификатор объекта внешней информационной базы. Назначение поля может меняться конечным разработчиком. Каждое приложение обеспечивает уникальность значений в этом поле. Рекомендуется использовать уникальный префикс для избежания коллизий с другими приложениями. В CRM зарезервированы значения вида |
ACTIVEchar | Признак активности. Используются значения Y или N. Определяет доступность шаблона в списке выбора при добавлении реквизитов |
SORTinteger | Сортировка |
Примеры кода
Поиск шаблонов по привязке к стране:
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"order":{"ID":"ASC"},"filter":{"COUNTRY_ID":"1"},"select":["ID","NAME"]}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.requisite.preset.list- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"order":{"ID":"ASC"},"filter":{"COUNTRY_ID":"1"},"select":["ID","NAME"],"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.requisite.preset.list- JS
// callListMethod рекомендуется использовать, когда необходимо получить весь набор списочных данных и объём записей относительно невелик (до примерно 1000 элементов). Метод загружает все данные сразу, что может привести к высокой нагрузке на память при работе с большими объемами.
try {
const response = await $b24.callListMethod(
'crm.requisite.preset.list',
{
order: { "ID": "ASC" },
filter: { "COUNTRY_ID": "1"},
select: [ "ID", "NAME"]
},
(progress) => {
if(progress.error())
console.error(progress.error());
else
{
console.dir(progress.data());
if(progress.more())
progress.next();
}
}
)
} catch (error) {
console.error('Request failed', error)
}
// fetchListMethod предпочтителен при работе с крупными наборами данных. Метод реализует итеративную выборку с использованием генератора, что позволяет обрабатывать данные по частям и эффективно использовать память.
try {
const generator = $b24.fetchListMethod('crm.requisite.preset.list', { order: { "ID": "ASC" }, filter: { "COUNTRY_ID": "1"}, select: [ "ID", "NAME"] }, 'ID')
for await (const page of generator) {
for (const entity of page) {
console.dir(entity);
}
}
} catch (error) {
console.error('Request failed', error)
}
// callMethod предоставляет ручной контроль над процессом постраничного получения данных через параметр start. Подходит для сценариев, где требуется точное управление пакетами запросов. Однако при больших объемах данных может быть менее эффективным по сравнению с fetchListMethod.
try {
const response = await $b24.callMethod('crm.requisite.preset.list', { order: { "ID": "ASC" }, filter: { "COUNTRY_ID": "1"}, select: [ "ID", "NAME"] }, 0)
const result = response.getData().result || []
for (const entity of result) {
console.dir(entity);
}
} catch (error) {
console.error('Request failed', error)
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.requisite.preset.list',
[
'order' => ['ID' => 'ASC'],
'filter' => ['COUNTRY_ID' => '1'],
'select' => ['ID', 'NAME'],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
if ($result->more()) {
$result->next();
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error fetching requisite presets: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"crm.requisite.preset.list",
{
order: { "ID": "ASC" },
filter: { "COUNTRY_ID": "1"},
select: [ "ID", "NAME"]
},
function(result)
{
if(result.error())
console.error(result.error());
else
{
console.dir(result.data());
if(result.more())
result.next();
}
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'crm.requisite.preset.list',
[
'order' => ['ID' => 'ASC'],
'filter' => ['COUNTRY_ID' => '1'],
'select' => ['ID', 'NAME']
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
HTTP-статус: 200
{
"result": [
{
"ID": "1",
"NAME": "Организация"
},
{
"ID": "2",
"NAME": "ИП"
},
{
"ID": "3",
"NAME": "Физ. лицо"
},
{
"ID": "4",
"NAME": "Организация (доп.)"
}
],
"total": 4,
"time": {
"start": 1716564019.674636,
"finish": 1716564020.067474,
"duration": 0.3928380012512207,
"processing": 0.02863287925720215,
"date_start": "2024-05-24T17:20:19+02:00",
"date_finish": "2024-05-24T17:20:20+02:00",
"operating": 0
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultarray | Массив объектов с информацией о выбранных шаблонах. Каждый элемент содержит выбранные поля шаблона |
totalinteger | Общее количество найденных записей |
timetime | Информация о времени выполнения запроса |
Обработка ошибок
HTTP-статус: 40x, 50x
{
"error":0,
"error_description":"Access denied."
}Возможные коды ошибок
| Код | Описание |
|---|---|
Access denied | Недостаточно прав доступа для получения списка шаблонов |
- [](./crm-requisite-preset-add)
- [](./crm-requisite-preset-update)
- [](./crm-requisite-preset-countries)
- [](./crm-requisite-preset-get)
- [](./crm-requisite-preset-delete)
- [](./crm-requisite-preset-fields)
- [](../../../../tutorials/crm/how-to-add-crm-objects/how-to-add-company-with-requisite)
- [](../../../../tutorials/crm/how-to-add-crm-objects/how-to-add-contact-with-requisite)
💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к crm.requisite.preset.list, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Получить список шаблонов реквизитов по фильтру crm.requisite.preset.list».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru