Получить список запущенных бизнес-процессов bizproc.workflow.instances

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: bizproc

Кто может выполнять метод: администратор

Метод получает список запущенных бизнес-процессов.

bizproc.workflow.instance.list

Существует старый метод bizproc.workflow.instance.list — алиас метода bizproc.workflow.instances. Он принимает те же параметры и возвращает такие же результаты.

Поддержка bizproc.workflow.instance.list не гарантирована в будущем, поэтому рекомендуем использовать bizproc.workflow.instances.

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

Название
тип

Описание

SELECT
array

Массив содержит список полей, которые необходимо выбрать.

Можно указать только те поля, которые необходимы.

Доступные поля:

  • ID — идентификатор бизнес-процесса
  • MODIFIED — дата последнего изменения
  • OWNED_UNTIL — время блокировки бизнес-процесса. Процесс считается зависшим, если разница времени блокировки с текущим временем более 5 минут
  • MODULE_ID — идентификатор модуля по документу
  • ENTITY — идентификатор сущности по документу
  • DOCUMENT_ID — идентификатор документа
  • STARTED — дата запуска бизнес-процесса
  • STARTED_BY — кем запущен бизнес-процесс
  • TEMPLATE_ID — идентификатор шаблона бизнес-процесса

Значение по умолчанию: ['ID', 'MODIFIED', 'OWNED_UNTIL']

FILTER
object

Объект для фильтрации списка запущенных бизнес-процессов в формате {"field_1": "value_1", ... "field_N": "value_N"}.

Список фильтруемых полей такой же, как для параметра SELECT.

Перед названием фильтруемого поля можно указать тип фильтрации:

  • = — равно
  • ! или != — не равно
  • < — меньше
  • <= — меньше либо равно
  • > — больше
  • >= — больше либо равно

Без префикса фильтр сравнивает значение на равенство. Название поля можно передавать в любом регистре

ORDER
object

Объект для сортировки списка запущенных бизнес-процессов в формате {"field_1": "value_1", ... "field_N": "value_N"}.

Список полей для сортировки такой же, как для параметра SELECT.

Направление сортировки может принимать значения:

  • asc — по возрастанию
  • desc — по убыванию

Значение по умолчанию: {'MODIFIED': 'desc'}

start
integer

Параметр используется для управления постраничной навигацией.

Размер страницы результатов всегда статичный — 50 записей.

Чтобы выбрать вторую страницу результатов, необходимо передавать значение 50. Чтобы выбрать третью страницу результатов — значение 100 и так далее.

Формула расчета значения параметра start:

start = (N - 1) * 50, где N — номер нужной страницы

Примеры кода

Как использовать примеры в документации

curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"select":["ID","MODIFIED","OWNED_UNTIL","MODULE_ID","ENTITY","DOCUMENT_ID","STARTED","STARTED_BY","TEMPLATE_ID"],"order":{"STARTED":"DESC"},"filter":{">STARTED_BY":0}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/bizproc.workflow.instances
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"select":["ID","MODIFIED","OWNED_UNTIL","MODULE_ID","ENTITY","DOCUMENT_ID","STARTED","STARTED_BY","TEMPLATE_ID"],"order":{"STARTED":"DESC"},"filter":{">STARTED_BY":0},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/bizproc.workflow.instances
try
{
	const response = await $b24.callMethod(
		'bizproc.workflow.instances',
		{
			select: [
				'ID',
				'MODIFIED',
				'OWNED_UNTIL',
				'MODULE_ID',
				'ENTITY',
				'DOCUMENT_ID',
				'STARTED',
				'STARTED_BY',
				'TEMPLATE_ID'
			],
			order: {
				STARTED: 'DESC'
			},
			filter: {
				'>STARTED_BY': 0
			}
		}
	);
	
	const result = response.getData().result;
	console.log(result);
}
catch( error )
{
	alert("Error: " + error);
}
from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.bizproc.workflow.instances(
        select=[
            "ID",
            "MODIFIED",
            "OWNED_UNTIL",
            "MODULE_ID",
            "ENTITY",
            "DOCUMENT_ID",
            "STARTED",
            "STARTED_BY",
            "TEMPLATE_ID",
        ],
        order={
            "STARTED": "DESC",
        },
        filter={
            ">STARTED_BY": 0,
        },
    ).response
    result = bitrix_response.result
    print(result)
except BitrixAPIError as error:
    print(
        "Ошибка Bitrix API",
        f"error: {error.error}",
        f"error_description: {error.error_description}",
        sep="\n",
    )
except BitrixSDKException as error:
    print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
    print(f"Непредвиденная ошибка: {error}")
try {
    $response = $b24Service
        ->core
        ->call(
            'bizproc.workflow.instances',
            [
                'select' => [
                    'ID',
                    'MODIFIED',
                    'OWNED_UNTIL',
                    'MODULE_ID',
                    'ENTITY',
                    'DOCUMENT_ID',
                    'STARTED',
                    'STARTED_BY',
                    'TEMPLATE_ID'
                ],
                'order' => [
                    'STARTED' => 'DESC'
                ],
                'filter' => [
                    '>STARTED_BY' => 0
                ]
            ]
        );

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

    if ($result->error()) {
        echo 'Error: ' . $result->error();
    } else {
        echo 'Success: ' . print_r($result->data(), true);
    }

} catch (Throwable $e) {
    error_log($e->getMessage());
    echo 'Error fetching workflow instances: ' . $e->getMessage();
}
BX24.callMethod(
    'bizproc.workflow.instances',
    {
        select: [
            'ID',
            'MODIFIED',
            'OWNED_UNTIL',
            'MODULE_ID',
            'ENTITY',
            'DOCUMENT_ID',
            'STARTED',
            'STARTED_BY',
            'TEMPLATE_ID'
        ],
        order: {
            STARTED: 'DESC'
        },
        filter: {
            '>STARTED_BY': 0
        }
    },
    function(result)
    {
        if(result.error())
            alert("Error: " + result.error());
        else
            console.log(result.data());
    }
);
require_once('crest.php');

$result = CRest::call(
    'bizproc.workflow.instances',
    [
        'select' => [
            'ID',
            'MODIFIED',
            'OWNED_UNTIL',
            'MODULE_ID',
            'ENTITY',
            'DOCUMENT_ID',
            'STARTED',
            'STARTED_BY',
            'TEMPLATE_ID'
        ],
        'order' => [
            'STARTED' => 'DESC'
        ],
        'filter' => [
            '>STARTED_BY' => 0
        ]
    ]
);

echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "bizproc.workflow.instances", b24.Params{
	"SELECT": []string{"ID", "MODIFIED", "OWNED_UNTIL", "MODULE_ID", "ENTITY", "DOCUMENT_ID", "STARTED", "STARTED_BY", "TEMPLATE_ID"},
	"ORDER": b24.Params{
		"STARTED": "DESC",
	},
	"FILTER": b24.Params{
		">STARTED_BY": 0,
	},
})
if err != nil {
	return fmt.Errorf("bizproc.workflow.instances: %w", err)
}

// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)

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

HTTP-статус: 200

{
    "result":[
        {
            "DOCUMENT_ID": "LEAD_1",
            "ENTITY": "CCrmDocumentLead",
            "ID": "66e412fdc9bd44.36306599",
            "STARTED": "2024-09-13T10:25:01+00:00",
            "MODULE_ID": "crm",
            "OWNED_UNTIL": null,
            "TEMPLATE_ID": "1",
            "STARTED_BY": "0",
        },
        {
            "DOCUMENT_ID":"DEAL_1633",
            "ENTITY":"CCrmDocumentDeal",
            "ID":"658c4d3d6a2906.51542462",
            "STARTED":"2023-12-27T19:13:49+03:00",
            "MODULE_ID":"crm",
            "OWNED_UNTIL":null,
            "TEMPLATE_ID":"212",
            "STARTED_BY":"57",
        }
    ],
    "total": 2,
    "time": {
        "start": 1726476060.581428,
        "finish": 1726476060.813776,
        "duration": 0.23234796524047852,
        "processing": 0.002630949020385742,
        "date_start": "2024-09-16T08:41:00+00:00",
        "date_finish": "2024-09-16T08:41:00+00:00",
        "operating_reset_at": 1726476660,
        "operating": 0,
    },
}

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

Название
тип

Описание

result
object

Корневой элемент ответа.

Cодержит массив объектов с информацией о запущенных бизнес-процессах

total
integer

Общее количество найденных записей

time
time

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

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

HTTP-статус: 403

{
    "error": "ACCESS_DENIED",
    "error_description": "Access denied!",
}

Название
тип

Описание

error
string

Строковый код ошибки. Состоит из цифр, латинских букв и знака подчеркивания. Может прийти пустым — тогда причину показывает только error_description

error_description
string

Текст ошибки для разработчика. Не показывайте его конечному пользователю без обработки

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

Статус

Код

Описание

Значение

403

ACCESS_DENIED

Access denied!

Метод запустил не администратор

Статусы и коды системных ошибок

HTTP-статус: 4xx, 5xx

Описанные ниже ошибки возвращает сам REST API, а не логика конкретного метода. Они могут прийти в ответ на любой метод.

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Сервер вернул неожиданный ответ. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически, когда накопленное время выполнения метода перестает превышать лимит

401

NO_AUTH_FOUND
Wrong authorization data

В запросе нет авторизационных данных: не передан ни access-токен, ни код вебхука

401

INVALID_REQUEST
Https required

Методы вызываются только по протоколу HTTPS

401

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка. Чтобы ее снять, обратитесь в техническую поддержку Битрикс24

401

ACCESS_DENIED
REST is available only on commercial plans

REST API доступен только на коммерческих тарифах. У вебхука текст ошибки другой — REST is available only by subscription

401

INVALID_CREDENTIALS
Invalid request credentials

Не найден активный вебхук с указанным идентификатором пользователя и секретным кодом

404

ERROR_METHOD_NOT_FOUND
Method not found!

Метод с таким именем не найден. Имя написано с ошибкой, метода нет в REST API или он недоступен без нужного скоупа

401

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более широких прав, чем есть у токена: у вебхука это выданные ему права, у приложения — скоуп. У приложения текст ошибки заканчивается на provided by the access token

401

expired_token
The access token provided has expired

Срок действия access-токена истек

401

user_access_error
The user does not have access to the application

Приложение установлено, но администратор Битрикс24 открыл доступ к нему только конкретным пользователям

403

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть ее на коробочной установке, отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение