Блог Горошко Андрея Bitrix24,PHP Выполнить задание бизнес-процесса bizproc.task.complete

Выполнить задание бизнес-процесса bizproc.task.complete

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

Выполнить задание бизнес-процесса bizproc.task.complete

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

Метод выполняет задание бизнес-процесса:

  • Утверждение документа
  • Ознакомление с документом
  • Запрос дополнительной информации
  • Запрос дополнительной информации с отклонением

Выполнить можно только свое задание.

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

Название
тип
Описание
TASK_ID
integer
Идентификатор задания.

Получить идентификатор можно методом bizproc.task.list

STATUS
integer \
string Целевой статус задания. Возможные значения:

— 1 или yes — да, утвержден
— 2 или no — нет, отклонен
— 3 или ok — ок, ознакомлен
— 4 или cancel — отмена

Набор допустимых значений меняется в зависимости от типа задания:
— Утверждение документа — 1 или 2
— Ознакомление с документом — 3
— Запрос дополнительной информации — 3
— Запрос дополнительной информации с отклонением — 3 или 4

COMMENT
string
Комментарий пользователя.

Обязательность параметра зависит от настроек задания

FIELDS
object
Объект с описанием полей для выполнения заданий с запросом дополнительной информации в формате {"field_1": "value_1", ... "field_N": "value_N"}, где
— field_N — символьный идентификатор поля задания
— value_N — значение поля

Получить описания полей в задании можно методом bizproc.task.list в объекте "PARAMETERS": "Fields" ответа. Структура описания объекта поля:

"PARAMETERS": {
    ...
    "Fields": [
        {
            "Id": "field_id",
            "Type": "type",
            "Name": "name",
            "Description": "description",
            "Multiple": false,
            "Required": true,
            "Options": null,
            "Settings": null,
            "Default": "default_value"
        }

Id — символьный идентификатор поля задания.

В Default хранятся значения по умолчанию, которые можно передать для выполнения задания. Эти значения сконвертированы во внешнее представление:
— для дат — в формат rest ATOM ISO-8601
— для файлов — в ссылку на файл

В таком формате значения передаются в метод bizproc.task.complete. Затем они конвертируются во внутреннее представление:
— даты из rest формата конвертируются во внутренний
— файлы сохраняются и прикрепляются к бизнес-процессу

Чтобы передать значение в поле типа Файл укажите:
— для типа Файл — base64 или массив с названием и base64
— для типа Файл (Диск) — идентификатор файла с Диска

Подробнее о работе с файлами в статье [](../../files/how-to-upload-files)

Пример кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"TASK_ID":1501,"STATUS":1,"COMMENT":"Добавлено","Fields":{"contractor":"C_607","phone_number":"89991234567"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/bizproc.task.complete
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"TASK_ID":1501,"STATUS":1,"COMMENT":"Добавлено","Fields":{"contractor":"C_607","phone_number":"89991234567"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/bizproc.task.complete
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'bizproc.task.complete',
    		{
    			'TASK_ID': 1501,
    			'STATUS': 1,
    			'COMMENT': 'Добавлено',
    			"Fields": {
    				'contractor': 'C_607',
    				'phone_number': '89991234567'
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.log(result);
    }
    catch( error )
    {
    	alert("Error: " + error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'bizproc.task.complete',
                [
                    'TASK_ID' => 1501,
                    'STATUS' => 1,
                    'COMMENT' => 'Добавлено',
                    'Fields' => [
                        'contractor' => 'C_607',
                        'phone_number' => '89991234567'
                    ]
                ]
            );
    
        $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 completing task: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'bizproc.task.complete',
        {
            'TASK_ID': 1501,
            'STATUS': 1,
            'COMMENT': 'Добавлено',
            "Fields": {
                'contractor': 'C_607',
                'phone_number': '89991234567'
            }
        },
        function(result)
        {
            if(result.error())
                alert("Error: " + result.error());
            else
                console.log(result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'bizproc.task.complete',
        [
            'TASK_ID' => 1501,
            'STATUS' => 1,
            'COMMENT' => 'Добавлено',
            'Fields' => [
                'contractor' => 'C_607',
                'phone_number' => '89991234567'
            ]
        ]
    );

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

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

HTTP-статус: 200

{
    "result": true,
    "time": {
        "start": 1738746693.9218969,
        "finish": 1738746694.1367991,
        "duration": 0.21490216255187988,
        "processing": 0.19237995147705078,
        "date_start": "2025-02-05T12:11:33+03:00",
        "date_finish": "2025-02-05T12:11:34+03:00",
        "operating_reset_at": 1738747293,
        "operating": 0.19236207008361816
    }
}

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

Название
тип
Описание
result
boolean
Возвращает true, если задание выполнено успешно
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400

{
    "error": "ERROR_TASK_VALIDATION",
    "error_description": "incorrect STATUS"
}

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

КодСообщение об ошибкеОписание
ERROR_TASK_VALIDATIONempty TASK_IDНе укзан ID задания
ERROR_TASK_VALIDATIONincorrect STATUSУказан некорректный статус задания
ERROR_TASK_NOT_FOUNDTask not foundНе найдено задание с заданным ID
ERROR_TASK_COMPLETEDTask already completedЗадание уже выполнено ранее
ERROR_TASK_TYPEIncorrect task typeНекорректный тип задания. Такое задание нельзя выполнить через рест
ERROR_TASK_EXECUTIONтекст ошибки из заданияВ процессе выполнения задания случилась указанная ошибка

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

  • [](./index)
  • [](./bizproc-task-list)
  • [](./bizproc-task-delegate)

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

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

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

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

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

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

Related Post

Как использовать метод SDK crm.deal.productrows.get в Битрикс24Как использовать метод SDK crm.deal.productrows.get в Битрикс24

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать метод SDK crm.deal.productrows.get в Битрикс24», проанализируем

Удалить привязку элемента корзины к оплате sale.paymentitembasket.deleteУдалить привязку элемента корзины к оплате sale.paymentitembasket.delete

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Удалить привязку элемента корзины к оплате sale.paymentitembasket.delete», разберем

Получить описание множественных полей crm.multifield.fieldsПолучить описание множественных полей crm.multifield.fields

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