tasks.task.history.list
Получить историю задачи
Описание
Метод tasks.task.history.list получает историю изменений задачи.
Параметры
taskId
integer
обязательный
Идентификатор задачи, для которой нужно получить историю.
Идентификатор задачи можно получить при создании новой задачи или методом получения списка задач
filter
object
необязательный
Фильтр по типу события в формате {FIELD: 'EVENT'}. Список возможных значений для FIELD описан ниже
order
object
необязательный
Объект для сортировки результата вида {"поле": "значение сортировки", ... }.
Направление сортировки может принимать значения:
asc— по возрастаниюdesc— по убыванию
По умолчанию записи сортируются по убыванию по времени создания, то есть от новых к старым
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"taskId":8137,"filter":{"FIELD":"COMMENT"},"order":{"createdDate":"ASC"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/tasks.task.history.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"taskId":8137,"filter":{"FIELD":"COMMENT"},"order":{"createdDate":"ASC"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/tasks.task.history.list
// 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, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type TaskHistoryResult = {
list: Array<{
id: number
createdDate: ISODate
field: string
value: {
from: string | null
to: string | null
}
user: {
id: number
name: string
lastName: string
secondName: string
login: string
}
}>
}
try {
// tasks.task.history.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
const response = await $b24.actions.v2.call.make<TaskHistoryResult>({
method: 'tasks.task.history.list',
params: {
taskId: 8137,
filter: { FIELD: 'COMMENT' },
order: { createdDate: 'ASC' },
start: 0,
},
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('History entries:', result.list.length, result.list)
}
} 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 fetchTaskHistory() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
// tasks.task.history.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
const response = await $b24.actions.v2.call.make({
method: 'tasks.task.history.list',
params: {
taskId: 8137,
filter: { FIELD: 'COMMENT' },
order: { createdDate: 'ASC' },
start: 0,
},
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('History entries:', result.list.length, result.list)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', fetchTaskHistory)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.tasks.task.history.list(
task_id=8137,
filter={
"FIELD": "COMMENT",
},
order={
"createdDate": "ASC",
},
start=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}")
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.tasks.task.history.list(
task_id=8137,
filter={
"FIELD": "COMMENT",
},
order={
"createdDate": "ASC",
},
).as_list().response
result = bitrix_response.result
for item in result:
print(item)
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}")
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.tasks.task.history.list(
task_id=8137,
filter={
"FIELD": "COMMENT",
},
order={
"createdDate": "ASC",
},
).as_list_fast(descending=True).response
result = bitrix_response.result
for item in result:
print(item)
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(
'tasks.task.history.list',
[
'taskId' => 8137,
'filter' => ['FIELD' => 'COMMENT'],
'order' => ['createdDate' => 'ASC']
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error fetching task history: ' . $e->getMessage();
}
BX24.callMethod(
'tasks.task.history.list',
{
taskId: 8137,
filter: { FIELD: 'COMMENT' },
order: {createdDate: 'ASC'},
},
function(result){
console.info(result.data());
console.log(result);
}
);
require_once('crest.php');
$result = CRest::call(
'tasks.task.history.list',
[
'taskId' => 8137,
'filter' => ['FIELD' => 'COMMENT'],
'order' => ['createdDate' => 'ASC']
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "tasks.task.history.list", b24.Params{
"taskId": 8137,
"filter": b24.Params{
"FIELD": "COMMENT",
},
"order": b24.Params{
"createdDate": "ASC",
},
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("tasks.task.history.list: %w", err)
}
// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)
Ответ
HTTP-статус: 200
{
"result": {
"list": [
{
"id": 16359,
"createdDate": "2025-09-25T14:09:45+03:00",
"field": "NEW",
"value": {
"from": null,
"to": null
},
"user": {
"id": 503,
"name": "Мария",
"lastName": "Иванова",
"secondName": "",
"login": "maria@mysite.ru"
}
},
{
"id": 16361,
"createdDate": "2025-09-25T14:09:45+03:00",
"field": "COMMENT",
"value": {
"from": null,
"to": "3409"
},
"user": {
"id": 503,
"name": "Мария",
"lastName": "Иванова",
"secondName": "",
"login": "maria@mysite.ru"
}
},
{
"id": 16363,
"createdDate": "2025-09-25T14:09:45+03:00",
"field": "CHECKLIST_ITEM_CREATE",
"value": {
"from": "",
"to": "Что сделать"
},
"user": {
"id": 503,
"name": "Мария",
"lastName": "Иванова",
"secondName": "",
"login": "maria@mysite.ru"
}
},
{
"id": 16365,
"createdDate": "2025-09-25T14:09:45+03:00",
"field": "CHECKLIST_ITEM_CREATE",
"value": {
"from": "",
"to": "Связаться с клиентом"
},
"user": {
"id": 503,
"name": "Мария",
"lastName": "Иванова",
"secondName": "",
"login": "maria@mysite.ru"
}
},
{
"id": 16367,
"createdDate": "2025-09-25T14:09:45+03:00",
"field": "CHECKLIST_ITEM_CREATE",
"value": {
"from": "",
"to": "Подготовить договор"
},
"user": {
"id": 503,
"name": "Мария",
"lastName": "Иванова",
"secondName": "",
"login": "maria@mysite.ru"
}
},
{
"id": 16369,
"createdDate": "2025-09-25T14:09:45+03:00",
"field": "CHECKLIST_ITEM_CREATE",
"value": {
"from": "",
"to": "Подписать договор"
},
"user": {
"id": 503,
"name": "Мария",
"lastName": "Иванова",
"secondName": "",
"login": "maria@mysite.ru"
}
},
{
"id": 16371,
"createdDate": "2025-09-25T14:09:57+03:00",
"field": "AUDITORS",
"value": {
"from": "",
"to": "547"
},
"user": {
"id": 503,
"name": "Мария",
"lastName": "Иванова",
"secondName": "",
"login": "maria@mysite.ru"
}
},
{
"id": 16375,
"createdDate": "2025-09-25T14:09:57+03:00",
"field": "COMMENT",
"value": {
"from": null,
"to": "3411"
},
"user": {
"id": 503,
"name": "Мария",
"lastName": "Иванова",
"secondName": "",
"login": "maria@mysite.ru"
}
},
{
"id": 16373,
"createdDate": "2025-09-25T14:09:58+03:00",
"field": "COMMENT",
"value": {
"from": null,
"to": "3413"
},
"user": {
"id": 503,
"name": "Мария",
"lastName": "Иванова",
"secondName": "",
"login": "maria@mysite.ru"
}
}
],
},
"time": {
"start": 1758798620,
"finish": 1758798620.969019,
"duration": 0.9690189361572266,
"processing": 0,
"date_start": "2025-09-25T14:10:20+03:00",
"date_finish": "2025-09-25T14:10:20+03:00",
"operating_reset_at": 1758799220,
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа. Содержит массив list, который содержит объекты с описанием событий в задаче.
Возвращает пустой массив "list":[], если задача не существует
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "0",
"error_description": "Access denied. (internal error)"
}
| Код | Описание | Значение |
|---|---|---|
100 |
CTaskItem All parameters in the constructor must have real class type (internal error) | Не указан обязательный параметр taskId |
0 |
wrong task id (internal error) | В параметре taskId указано значение неверного типа |
0 |
Access denied. (internal error) | У пользователя нет доступа к задаче |

