Блог Горошко Андрея Bitrix24 Отправить пакет запросов BX24.callBatch

Отправить пакет запросов BX24.callBatch

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

Отправить пакет запросов BX24.callBatch

В некоторых случаях возникает необходимость отправить несколько запросов подряд. Например, при создании необходимых сущностей в процессе инсталляции приложения. Для оптимизации процесса можно использовать пакетное выполнение запросов.

void BX24.callBatch(
    Object|Array calls,
    [Function callback[,
    Boolean bHaltOnError = false]]
);

Функция BX24.callBatch отправляет пакет запросов к REST-сервису. В случае вызова до BX24.init выполнение запроса будет отложено.

Входящие параметры и конфигурация метода

Название
тип
Описание
calls*
object\
arrayОбычный или ассоциативный массив (объект) с запросами. Каждый запрос представляет собой либо массив [имя_метода, параметры_метода], либо объект {method: имя_метода, params: параметры_метода}.

В параметрах методов можно использовать макросы, позволяющие получить доступ к результатам предыдущих запросов текущего пакета. Макрос можно составить примерно так: $result[идентификатор_запроса][поле_ответа], где идентификатором запроса служит его ключ в массиве пакета запросов

callback
function
Функция-обработчик результата пакетного запроса. На вход получит массив или ассоциативный массив (объект) объектов ajaxResult с ключами, соответствующими ключам из пакета запросов
bHaltOnError
boolean
Флаг «прерывать исполнение пакета в при возникновении ошибки». По умолчанию — false (не прерывать)

Практический пример и готовый код на PHP

BX24.init(() => {
    const prepareMessage = (name, lastName, departmentNumber) => {
        return `The current user ${name} ${lastName} is assigned to the departmen${departmentNumber > 1 ? 'ts ' : 't '}`;
    };
    BX24.callBatch({
        get_user: ['user.current', {}],
        get_department: {
            method: 'department.get',
            params: {
                ID: '$result[get_user][UF_DEPARTMENT]',
            },
        },
    }, (result) => {
        if (result.get_user.error() || result.get_department.error())
        {
            if (result.get_user.error())
            {
                console.error(result.get_user.error());
            }

            if (result.get_department.error())
            {
                console.error(result.get_department.error());
            }
        }
        else
        {
            const departmentNumber = result.get_department.data().length;
            let message = prepareMessage(result.get_user.data().NAME, result.get_user.data().LAST_NAME, departmentNumber);

            for (let i = 0; i < departmentNumber; i++)
            {
                message += i === 0 ? '' : ', ';
                message += result.get_department.data()[i].NAME;
            }

            alert(message);
        }
    }, true);
});
  • [](./bx24-call-bind)
  • [](./bx24-call-unbind)
  • [](./bx24-call-method)

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

Практические рекомендации:

  • При написании кастомных компонентов для «Отправить пакет запросов BX24.callBatch» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

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

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

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

Related Post

При инициализации звонка OnVoximplantCallInitПри инициализации звонка OnVoximplantCallInit

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

Добавить позицию доставки в оплату crm.item.payment.delivery.addДобавить позицию доставки в оплату crm.item.payment.delivery.add

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

Абонентское сопровождение и техническая поддержка Битрикс24Абонентское сопровождение и техническая поддержка Битрикс24

Профессиональная настройка и внедрение Битрикс24 CRM позволяет систематизировать работу отдела продаж, исключить потерю лидов и автоматизировать ключевые бизнес-процессы компании. Услуга «Абонентское сопровождение и техническая поддержка Битрикс24» обеспечивает ежемесячные доработки воронок,