Блог Горошко Андрея Bitrix24 Получить список офлайн-событий с «очисткой» event.offline.get

Получить список офлайн-событий с «очисткой» event.offline.get

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

Получить список офлайн-событий с «очисткой» event.offline.get

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

Метод event.offline.get возвращает приложению первые в очереди офлайн-события согласно установкам фильтра. Доступность офлайн-событий можно проверить через метод feature.get.

Метод работает только в контексте авторизации приложения.

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

Название
тип
Описание
filter
array
Фильтр записей. По умолчанию отдаются все записи, без фильтрации. Поддерживается фильтрация по полям: ID, TIMESTAMP_X, EVENT_NAME, MESSAGE_ID со стандартными операциями типа =, >, <, <= и так далее.

Важно: тип операции ставится перед именем поля фильтрации

order
array
Сортировка записей. Поддерживается сортировка по тем же полям, что и в фильтре, на вход принимается массив вида [поле=>ASC\|DESC]. По умолчанию — [TIMESTAMP_X:ASC]
limit
integer
Количество выбираемых записей. По умолчанию 50

Дополнительные параметры

Название
тип
Описание
clear
integer
Значения: 0\|1 — удалять ли выбранные записи. По умолчанию 1
process_id
string
Идентификатор процесса. Используется, если понадобится повторно выбрать еще необработанные текущим процессом записи
auth_connector
string
Ключ источника. Используется, если значение auth_connector было указано в методе event.bind
error
integer
Значения: 0\|1 — возвращать ли ошибочные записи. По умолчанию 0

Информация
Метод поддерживает многопоточный разбор. То есть допускается несколько параллельных запросов к /rest/event.offline.get (с соблюдением ограничений на количество запросов в единицу времени), и каждый из них получит разные наборы записей.

Примеры кода

  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"filter":{"=MESSAGE_ID":1,"=EVENT_NAME":"ONCRMLEADADD",">=ID":1},"auth_connector":"BxTest","auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/event.offline.get
  • JS
    try
    {
        const response = await $b24.callMethod(
            'event.offline.get',
            {
                filter: {
                    '=MESSAGE_ID': 1,
                    '=EVENT_NAME': 'ONCRMLEADADD',
                    '>=ID': 1
                },
                auth_connector: 'BxTest'
            }
        );
        
        const result = response.getData().result;
        console.log('Result:', result);
        processResult(result);
    }
    catch( error )
    {
        console.error('Error:', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'event.offline.get',
                [
                    'filter' => [
                        '=MESSAGE_ID' => 1,
                        '=EVENT_NAME' => 'ONCRMLEADADD',
                        '>=ID' => 1
                    ],
                    'auth_connector' => 'BxTest'
                ]
            );

        $result = $response
            ->getResponseData()
            ->getResult();

        echo 'Success: ' . print_r($result, true);
        processData($result);

    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "event.offline.get",
        {
            "filter": {
                "=MESSAGE_ID": 1,
                "=EVENT_NAME": "ONCRMLEADADD",
                ">=ID": 1
            }
            "auth_connector": "BxTest"
        },
        function(result)
        {
            if(result.error())
                console.error(result.error());
            else
                console.dir(result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'event.offline.get',
        [
            'filter' => [
                '=MESSAGE_ID' => 1,
                '=EVENT_NAME' => 'ONCRMLEADADD',
                '>=ID' => 1
            ],
            'auth_connector' => 'BxTest'
        ]
    );

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

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

HTTP-статус: 200

{
    "result": {
        "process_id": null,
        "events": [
            {
                "ID": "1",
                "TIMESTAMP_X": "2024-07-18T12:32:31+02:00",
                "EVENT_NAME": "ONCRMLEADADD",
                "EVENT_DATA": false,
                "EVENT_ADDITIONAL": false,
                "MESSAGE_ID": "1"
            }
        ]
    },
    "time": {
        "start": 1721299720.388504,
        "finish": 1721299720.509809,
        "duration": 0.12130498886108398,
        "processing": 0.008239030838012695,
        "date_start": "2024-07-18T12:48:40+02:00",
        "date_finish": "2024-07-18T12:48:40+02:00",
        "operating": 0
    }
}

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

Название
тип
Описание
result
object
Корневой элемент ответа
time
time
Информация о времени выполнения запроса

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

  • [](./events)
  • [](./event-bind)
  • [](./event-get)
  • [](./event-unbind)
  • [](./safe-event-handlers)
  • [](./offline-events)
  • [](./event-offline-list)
  • [](./event-offline-clear)
  • [](./event-offline-error)
  • [](./on-offline-event)

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

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к event.offline.get, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Получить список офлайн-событий с «очисткой» event.offline.get».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

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

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

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

Related Post

Получить список стадий канбана или «Моего плана» task.stages.getПолучить список стадий канбана или «Моего плана» task.stages.get

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

Завершить диалог imopenlines.bot.session.finishЗавершить диалог imopenlines.bot.session.finish

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Завершить диалог imopenlines.bot.session.finish». Вы узнаете экспертные методики работы с imopenlines.bot.session.finish и научитесь избегать

Получить перечень методов и их описаний task.checklistitem.getmanifestПолучить перечень методов и их описаний task.checklistitem.getmanifest

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