Блог Горошко Андрея Bitrix24,PHP Получить список комментариев task.commentitem.getlist

Получить список комментариев task.commentitem.getlist

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить список комментариев task.commentitem.getlist». Вы узнаете экспертные методики работы с task.commentitem.getlist и научитесь избегать типичных ошибок начинающих разработчиков.

Получить список комментариев task.commentitem.getlist

> Scope: task
>
> Кто может выполнять метод: любой пользователь с правом доступа на чтение задачи или выше

Метод task.commentitem.getlist получает список комментариев задачи.

Метод task.commentitem.getlist не работает в новой карточке задач, используйте метод im.dialog.messages.get для работы с чатом задач.

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

Передавайте параметры в запросе в соответствии с порядком в таблице. Если нарушить порядок, запрос вернет ошибку.

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

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

ORDER
object
Объект для сортировки результата вида {"поле": "значение сортировки", ... }.

Сортировать можно по полям:
— ID — идентификатор комментария
— AUTHOR_ID — идентификатор автора комментария
— AUTHOR_NAME — имя автора
— AUTHOR_EMAIL — почтовый адрес автора
— POST_DATE — дата публикации комментария

Направление сортировки может принимать значения:
— asc — по возрастанию
— desc — по убыванию

По умолчанию результат сортируется по убыванию идентификатора комментария

FILTER
object
Объект для фильтрации результата вида {"поле": "значение фильтра", ... }. Значением фильтруемого поля может быть одиночное значение или массив значений.

Фильтровать можно по полям:
— ID — идентификатор комментария
— AUTHOR_ID — идентификатор автора комментария
— AUTHOR_NAME — имя автора
— POST_DATE — дата публикации комментария

Перед названием фильтруемого поля можно указать префикс с типом фильтрации:
— ! — не равно
— <=— меньше либо равно
— < — меньше
— >=— больше либо равно
— > — больше

По умолчанию записи не фильтруются

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"TASKID":8017,"ORDER":{"POST_DATE":"asc"},"FILTER":{"AUTHOR_ID":503,">=POST_DATE":"2025-01-01"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/task.commentitem.getlist
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"TASKID":8017,"ORDER":{"POST_DATE":"asc"},"FILTER":{"AUTHOR_ID":503,">=POST_DATE":"2025-01-01"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/task.commentitem.getlist
  • JS
    // callListMethod рекомендуется использовать, когда необходимо получить весь набор списочных данных и объём записей относительно невелик (до примерно 1000 элементов). Метод загружает все данные сразу, что может привести к высокой нагрузке на память при работе с большими объемами.
    
    try {
      const response = await $b24.callListMethod(
        'task.commentitem.getlist',
        {
          "TASKID": 8017,
          "ORDER": {
            "POST_DATE": "asc",
          },
          "FILTER": {
            "AUTHOR_ID": 503,
            ">=POST_DATE": "2025-01-01",
          }
        },
        (progress) => { console.log('Progress:', progress) }
      )
      const items = response.getData() || []
      for (const entity of items) { console.log('Entity:', entity) }
    } catch (error) {
      console.error('Request failed', error)
    }
    
    // fetchListMethod предпочтителен при работе с крупными наборами данных. Метод реализует итеративную выборку с использованием генератора, что позволяет обрабатывать данные по частям и эффективно использовать память.
    
    try {
      const generator = $b24.fetchListMethod('task.commentitem.getlist', {
        "TASKID": 8017,
        "ORDER": {
          "POST_DATE": "asc",
        },
        "FILTER": {
          "AUTHOR_ID": 503,
          ">=POST_DATE": "2025-01-01",
        }
      }, 'ID')
      for await (const page of generator) {
        for (const entity of page) { console.log('Entity:', entity) }
      }
    } catch (error) {
      console.error('Request failed', error)
    }
    
    // callMethod предоставляет ручной контроль над процессом постраничного получения данных через параметр start. Подходит для сценариев, где требуется точное управление пакетами запросов. Однако при больших объемах данных может быть менее эффективным по сравнению с fetchListMethod.
    
    try {
      const response = await $b24.callMethod('task.commentitem.getlist', {
        "TASKID": 8017,
        "ORDER": {
          "POST_DATE": "asc",
        },
        "FILTER": {
          "AUTHOR_ID": 503,
          ">=POST_DATE": "2025-01-01",
        }
      }, 0)
      const result = response.getData().result || []
      for (const entity of result) { console.log('Entity:', entity) }
    } catch (error) {
      console.error('Request failed', error)
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'task.commentitem.getlist',
                [
                    'TASKID' => 8017,
                    'ORDER' => [
                        'POST_DATE' => 'asc',
                    ],
                    'FILTER' => [
                        'AUTHOR_ID' => 503,
                        '>=POST_DATE' => '2025-01-01',
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error getting task comments: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'task.commentitem.getlist',
        {
            "TASKID": 8017,
            "ORDER": {
                "POST_DATE": "asc",
            },
            "FILTER": {
                "AUTHOR_ID": 503,
                ">=POST_DATE": "2025-01-01",
            }
        },
        function(result){
            console.info(result.data());
            console.log(result);
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'task.commentitem.getlist',
        [
            'TASKID' => 8017,
            'ORDER' => [
                'POST_DATE' => 'asc',
            ],
            'FILTER' => [
                'AUTHOR_ID' => 503,
                '>=POST_DATE' => '2025-01-01',
            ]
        ]
    );

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

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

HTTP-статус: 200

{
    "result": [
        {
            "POST_MESSAGE_HTML": null,
            "ID": "3157",
            "AUTHOR_ID": "503",
            "AUTHOR_NAME": "Иван Иванов",
            "AUTHOR_EMAIL": "",
            "POST_DATE": "2025-07-15T14:31:00+03:00",
            "POST_MESSAGE": "Фотографии во вложении",
            "ATTACHED_OBJECTS": {
                "973": {
                    "ATTACHMENT_ID": "973",
                    "NAME": "photo1.png",
                    "SIZE": "1495700",
                    "FILE_ID": "4755",
                    "DOWNLOAD_URL": "/bitrix/tools/disk/uf.php?attachedId=973&auth%5Bauth%5D=3edf7ca92&action=download&ncc=1",
                    "VIEW_URL": "/bitrix/tools/disk/uf.php?attachedId=973&auth%5Bauth%5D=3edf7ca92&action=show&ncc=1"
                },
                "975": {
                    "ATTACHMENT_ID": "975",
                    "NAME": "photo2.png",
                    "SIZE": "1017053",
                    "FILE_ID": "4753",
                    "DOWNLOAD_URL": "/bitrix/tools/disk/uf.php?attachedId=975&auth%5Bauth%5D=3edf7ca92&action=download&ncc=1",
                    "VIEW_URL": "/bitrix/tools/disk/uf.php?attachedId=975&auth%5Bauth%5D=3edf7ca92&action=show&ncc=1"
                }
            }
        },
        {
            "POST_MESSAGE_HTML": null,
            "ID": "3155",
            "AUTHOR_ID": "503",
            "AUTHOR_NAME": "Иван Иванов",
            "AUTHOR_EMAIL": "",
            "POST_DATE": "2025-07-15T14:30:00+03:00",
            "POST_MESSAGE": "Подготовил новые фотографии",
            "ATTACHED_OBJECTS": {}
        }
    ],
    "time": {
        "start": 1753270901.224447,
        "finish": 1753270901.343166,
        "duration": 0.11871910095214844,
        "processing": 0.06380701065063477,
        "date_start": "2025-07-23T14:41:41+03:00",
        "date_finish": "2025-07-23T14:41:41+03:00",
        "operating_reset_at": 1753271501,
        "operating": 0
    }
}

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

Название
тип
Описание
result
array
Массив объектов. Каждый объект содержит описание комментария
POST_MESSAGE_HTML
string
HTML-код комментария
ID
string
Идентификатор комментария
AUTHOR_ID
string
Идентификатор автора комментария
AUTHOR_NAME
string
Имя автора комментария
AUTHOR_EMAIL
string
Email автора комментария
POST_DATE
string
Дата и время создания комментария
POST_MESSAGE
string
Текст комментария
ATTACHED_OBJECTS
object
Объект, содержащий информацию о вложениях. Ключ объекта — идентификатор вложения, а значение — объект с описанием файла
time
time
Информация о времени выполнения запроса

Объект ATTACHED_OBJECTS {#attached-objects}

Название
тип
Описание
ATTACHMENT_ID
string
Идентификатор вложения
NAME
string
Имя файла
SIZE
string
Размер файла в байтах
FILE_ID
string
Идентификатор файла на Диске
DOWNLOAD_URL
string
URL для скачивания файла
VIEW_URL
string
URL для просмотра файла

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

HTTP-статус: 400

{
    "error":"ERROR_CORE",
    "error_description":"TASKS_ERROR_EXCEPTION_#256; Param #1 (arOrder) for method ctaskcommentitem::getlist() must not contain key ">=POST_DATE".; 256/TE/WRONG_ARGUMENTS.<br>"
}

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

КодОписаниеЗначение
ERROR_CORETASKS_ERROR_EXCEPTION_#8; Action failed; 8/TE/ACTION_FAILED_TO_BE_PROCESSEDУказано неверное значение параметра или нет прав доступа к задаче
ERROR_CORETASKS_ERROR_EXCEPTION_#256; Param #0 (taskId) for method ctaskcommentitem::getlist() expected to be of type «integer», but given something else.; 256/TE/WRONG_ARGUMENTSУказан неверный тип значения для параметра, например, для TASKID
ERROR_CORETASKS_ERROR_EXCEPTION_#256; Param #1 (arOrder) for method ctaskcommentitem::getlist() must not contain key «>=POST_DATE».; 256/TE/WRONG_ARGUMENTSПараметры указаны в неверном порядке
ERROR_CORETASKS_ERROR_EXCEPTION_#256; Param #2 (arFilter) for method ctaskcommentitem::getlist() must not contain key «%POST_DATE».; 256/TE/WRONG_ARGUMENTSНеверно указано название параметра или префикс для фильтра
  • [](./index)
  • [](./task-comment-item-add)
  • [](./task-comment-item-update)
  • [](./task-comment-item-get)
  • [](./task-comment-item-delete)

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

Практические рекомендации:

  • При написании кастомных компонентов для «Получить список комментариев task.commentitem.getlist» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

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

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

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

Related Post

Обновить датасет biconnector.dataset.updateОбновить датасет biconnector.dataset.update

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

Получить поля элементов свойств корзины sale.basketproperties.getFieldsПолучить поля элементов свойств корзины sale.basketproperties.getFields

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

Как использовать $APPLICATION->GetCurPageParam() в 1С-Битрикс: пример кодаКак использовать $APPLICATION->GetCurPageParam() в 1С-Битрикс: пример кода

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать $APPLICATION->GetCurPageParam() в 1С-Битрикс: пример кода», проанализируем