Блог Горошко Андрея Bitrix24,PHP Изменить запись о затраченном времени task.elapseditem.update

Изменить запись о затраченном времени task.elapseditem.update

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

Изменить запись о затраченном времени task.elapseditem.update

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

Метод изменяет параметры указанной записи о затраченном времени.

Информация
Проверить право на изменение можно специальным методом task.elapseditem.isactionallowed

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

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

Идентификатор задачи можно получить при создании новой задачи или методом получения списка задач

ITEMID
integer
Идентификатор записи о затраченном времени.

Его можно получить при создании новой записи или методом получения списка записей о затраченном времени

ARFIELDS
object
Объект, содержащий записи о пользователе, времени и комментарии (подробное описание приведено ниже) в виде структуры:

"ARFIELDS": {
    "SECONDS": "значение", 
    "COMMENT_TEXT": "значение",
    "USER_ID": "значение"
},

Параметр ARFIELDS

Название
тип
Описание
SECONDS
integer
Количество затраченного времени в секундах
COMMENT_TEXT*
string
Текст комментария
USER_ID
integer
Идентификатор пользователя

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

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"TASKID" : 691, "ITEMID": 5, "ARFIELDS": {"SECONDS": 113,"COMMENT_TEXT": "текст комментария"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/task.elapseditem.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"TASKID" : 691, "ITEMID": 5, "ARFIELDS": {"SECONDS": 113,"COMMENT_TEXT": "текст комментария"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/task.elapseditem.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'task.elapseditem.update',
    		{
    			"TASKID": 691,
    			"ITEMID": 5,
    			"ARFIELDS": {
    				"SECONDS": 113, 
    				"COMMENT_TEXT": "текст комментария",
    			},
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'task.elapseditem.update',
                [
                    'TASKID'   => 691,
                    'ITEMID'   => 5,
                    'ARFIELDS' => [
                        'SECONDS'      => 113,
                        'COMMENT_TEXT' => 'текст комментария',
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating elapsed item: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'task.elapseditem.update',
        {
            "TASKID": 691,
            "ITEMID": 5,
            "ARFIELDS": {
                "SECONDS": 113, 
                "COMMENT_TEXT": "текст комментария",
            },
        },
        function(result) {
            if (result.error()) {
                console.error(result.error());
            } else {
                console.info(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'task.elapseditem.update',
        [
            'TASKID' => 691,
            'ITEMID' => 5,
            'ARFIELDS' => [
                'SECONDS' => 113,
                'COMMENT_TEXT' => 'текст комментария',
            ],
        ]
    );

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

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

HTTP-статус: 200

В случае успешного выполнения запроса, сервер вернет result:null

{
    "result": null,
    "time":{
        "start":1712137817.343984,
        "finish":1712137817.605804,
        "duration":0.26182007789611816,
        "processing":0.018325090408325195,
        "date_start":"2024-04-03T12:50:17+03:00",
        "date_finish":"2024-04-03T12:50:17+03:00"
    }
}

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

HTTP-статус: 400

{
    "error":"ERROR_CORE",
    "error_description":"ACTION_NOT_ALLOWED"
}

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

КодОписание
0x000001Задача не найдена
0x100002Доступ запрещен
0x000004Действие не разрешено
0x000040Неизвестная ошибка
  • [](./index)
  • [](./task-elapsed-item-add)
  • [](./task-elapsed-item-get)
  • [](./task-elapsed-item-get-list)
  • [](./task-elapsed-item-delete)
  • [](./task-elapsed-item-is-action-allowed)
  • [](./task-elapsed-item-get-manifest)

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

Ключевые выводы по теме «Изменить запись о затраченном времени task.elapseditem.update»:

Использование современных стандартов D7 при работе с task.elapseditem.update позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

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

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

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

Related Post

Обновить поля робота bizproc.robot.updateОбновить поля робота bizproc.robot.update

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

Как использовать метод SDK bizproc.activity.update в Битрикс24Как использовать метод SDK bizproc.activity.update в Битрикс24

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

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

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