Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Изменить задачу task.item.update», проанализируем лучшие практики и покажем, как правильно использовать task.item.update в реальных задачах.
Изменить задачу task.item.update
> Scope: task
>
> Кто может выполнять метод: любой пользователь
Метод обновляет данные по задаче. Доступны для обновления следующие поля. При обновлении данных по задаче учитывается бизнес-логика и права. Например, Исполнитель не может переименовать задачу — в таком случае будет сгенерирована ошибка.
Рекомендуется перед обновлением данных проверять, допустимо ли данное действие (task.item.isactionallowed).
Метод устарел и не поддерживается. Рекомендуется использовать методы tasks.task.*.
Параметры метода
| Название | Описание |
|---|---|
| TASKID | Идентификатор задачи. |
| TASKDATA | Список полей с новыми значениями. |
Соблюдение порядка следования параметров в запросе обязательно. При его нарушении запрос будет выполнен с ошибками.
Примеры кода
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"taskId":1,"fields":{"TIME_ESTIMATE":113}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/task.item.update- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"taskId":1,"fields":{"TIME_ESTIMATE":113},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/task.item.update- JS
try
{
const response = await $b24.callMethod(
'task.item.update',
[1, {TIME_ESTIMATE: 113}]
);
const result = response.getData().result;
console.info(result);
console.log(result);
}
catch( error )
{
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'task.item.update',
[
1,
['TIME_ESTIMATE' => 113],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating task item: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
'task.item.update',
[1, {TIME_ESTIMATE: 113}],
function(result)
{
console.info(result.data());
console.log(result);
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'task.item.update',
[
'taskId' => 1,
'fields' => [
'TIME_ESTIMATE' => 113
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Пример записи значений с CRM.
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"taskId":1,"fields":{"UF_CRM_TASK":["L_4","C_7","CO_5","D_10"]}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/task.item.update- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"taskId":1,"fields":{"UF_CRM_TASK":["L_4","C_7","CO_5","D_10"]},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/task.item.update- JS
try
{
const response = await $b24.callMethod(
'task.item.update',
[1, {UF_CRM_TASK: ["L_4", "C_7", "CO_5", "D_10"]}]
);
const result = response.getData().result;
console.info(result);
console.log(result);
}
catch( error )
{
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'task.item.update',
[
1,
['UF_CRM_TASK' => ["L_4", "C_7", "CO_5", "D_10"]],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating task item: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
'task.item.update',
[1, {UF_CRM_TASK: ["L_4", "C_7", "CO_5", "D_10"]}],
function(result)
{
console.info(result.data());
console.log(result);
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'task.item.update',
[
'taskId' => 1,
'fields' => [
'UF_CRM_TASK' => ["L_4", "C_7", "CO_5", "D_10"]
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Цифры — это ID соответствующих значений. Значение L_4 означает привязку к задаче лида с ID = 4. Можно задавать несколько связей одного типа, например, L_4, L_5. Доступны следующие обозначения:
L— лидC— контактCO— компанияD— сделка
💡 Экспертное мнение и рекомендации
Практические рекомендации:
- При написании кастомных компонентов для «Изменить задачу task.item.update» всегда разделяйте бизнес-логику и представление (шаблон).
- Используйте отладку SQL-запросов через конструкцию
$wpdb->last_queryили стандартный трекер Битрикса, чтобы контролировать нагрузку.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru