task.elapseditem.add
Добавить запись о затраченном времени
Описание
Метод task.elapseditem.add добавляет затраченное время к задаче. Возвращает идентификатор добавленной записи.
Проверить право на добавление можно специальным методом task.elapseditem.isactionallowed
Параметры
TASKID
integer
обязательный
Идентификатор задачи.
Идентификатор задачи можно получить при создании новой задачи или методом получения списка задач
ARFIELDS
object
обязательный
Объект, содержащий записи о пользователе, времени и комментарии (подробное описание приведено ниже) в виде структуры:
"ARFIELDS": {
"SECONDS": "значение",
"COMMENT_TEXT": "значение",
"USER_ID": "значение"
},Параметр ARFIELDS
SECONDS
integer
обязательный
Количество затраченного времени в секундах
COMMENT_TEXT
string
обязательный
Текст комментария
USER_ID
integer
необязательный
Идентификатор пользователя
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"TASKID" : 691, "ARFIELDS": {"SECONDS": 113,"COMMENT_TEXT": "текст комментария"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/task.elapseditem.add
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"TASKID" : 691, "ARFIELDS": {"SECONDS": 113,"COMMENT_TEXT": "текст комментария"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/task.elapseditem.add
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type ElapsedItemAddResult = number
try {
const response = await $b24.actions.v2.call.make<ElapsedItemAddResult>({
method: 'task.elapseditem.add',
params: {
TASKID: 691,
ARFIELDS: {
SECONDS: 113,
COMMENT_TEXT: 'comment text',
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('New elapsed item ID:', result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function addElapsedItem() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'task.elapseditem.add',
params: {
TASKID: 691,
ARFIELDS: {
SECONDS: 113,
COMMENT_TEXT: 'comment text',
},
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('New elapsed item ID:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addElapsedItem)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
arfields = {
"SECONDS": 113,
"COMMENT_TEXT": "текст комментария",
}
try:
bitrix_response = client.task.elapseditem.add(
task_id=691,
arfields=arfields,
).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(
'task.elapseditem.add',
[
'TASKID' => 691,
'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 adding elapsed item: ' . $e->getMessage();
}
BX24.callMethod(
'task.elapseditem.add',
{
"TASKID" : 691,
"ARFIELDS": {
"SECONDS": 113,
"COMMENT_TEXT": "текст комментария",
},
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'task.elapseditem.add',
[
'TASKID' => 691,
'ARFIELDS' => [
'SECONDS' => 113,
'COMMENT_TEXT' => 'текст комментария',
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "task.elapseditem.add", b24.Params{
"TASKID": 691,
"ARFIELDS": b24.Params{
"SECONDS": 113,
"COMMENT_TEXT": "текст комментария",
},
})
if err != nil {
return fmt.Errorf("task.elapseditem.add: %w", err)
}
var newID b24.ID
if err := json.Unmarshal(res.Result, &newID); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("идентификатор:", newID)
Ответ
HTTP-статус: 200
{
"result": 5,
"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"
}
}
Возвращаемые данные
result
integer
Идентификатор новой записи
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":"ERROR_CODE",
"error_description":"ACTION_NOT_ALLOWED"
}
| Код | Описание | Значение |
|---|---|---|
0x000001 |
Задача не найдена | |
0x100002 |
Доступ запрещен | |
0x000004 |
Действие не разрешено | |
0x000040 |
Неизвестная ошибка |

