Блог Горошко Андрея Bitrix24,PHP Обновить комментарий crm.timeline.comment.update

Обновить комментарий crm.timeline.comment.update

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

Обновить комментарий crm.timeline.comment.update

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

Метод обновляет дело типа «Комментарий» в таймлайне.

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

Название
тип
Описание
id
integer
Целочисленный идентификатор дела типа «Комментарий» (например, 1). Получить идентификаторы можно методом crm.timeline.comment.list
fields
object
Значения полей (подробное описание приведено ниже) для обновления дела типа «Комментарий» в виде структуры:

fields:
{
    "COMMENT": "значение",
    "FILES": [
        [
            "название файла", 
            "файл"
        ],
        [
            "название файла",
            "фафйл"
        ],
    ]
}

С версии crm 23.100.0 принимаются только параметры с ключом fields в нижнем регистре. Другие недокументированные варианты (Fields, FIELDS, arFields) не принимаются.

ownerTypeId
integer
Целочисленный идентификатор типа сущности CRM, к которому привязан комментарий (например, 2 для сделки)
ownerId
integer
Целочисленный идентификатор элемента CRM, к которому привязан комментарий (например, 1). Получить список идентификаторов можно методом crm.timeline.bindings.list (поле ENTITY_ID)

Параметр fields

Название
тип
Описание
COMMENT
string
Текст комментария
FILES
attached_diskfile
Список файлов. Массив значений, описанный по правилам

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":999,"fields":{"COMMENT":"Comment was changed","FILES":[["1.gif","R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="],["2.gif","R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="]]}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.timeline.comment.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":999,"fields":{"COMMENT":"Comment was changed","FILES":[["1.gif","R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="],["2.gif","R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="]]},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/crm.timeline.comment.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'crm.timeline.comment.update',
    		{
    			id: 999,
    			fields:
    			{
    				"COMMENT": "Comment was changed",
    				"FILES": [
    					[
    						"1.gif", 
    						"R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
    					],
    					[
    						"2.gif",
    						"R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
    					],
    				]
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.dir(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'crm.timeline.comment.update',
                [
                    'id'     => 999,
                    'fields' => [
                        'COMMENT' => 'Comment was changed',
                        'FILES'  => [
                            ['1.gif', 'R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='],
                            ['2.gif', 'R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='],
                        ],
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating timeline comment: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "crm.timeline.comment.update",
        {
            id: 999,
            fields:
            {
                "COMMENT": "Comment was changed",
                "FILES": [
                    [
                        "1.gif", 
                        "R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
                    ],
                    [
                        "2.gif",
                        "R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
                    ],
                ]
            }
        },
        result => {
            if (result.error())
                console.error(result.error());
            else
                console.dir(result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'crm.timeline.comment.update',
        [
            'id' => 999,
            'fields' => [
                'COMMENT' => 'Comment was changed',
                'FILES' => [
                    ["1.gif", "R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="],
                    ["2.gif", "R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="]
                ]
            ]
        ]
    );

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

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

HTTP-статус: 200

{
    "result": 999,
    "time": {
        "start": 1715091541.642592,
        "finish": 1715091541.730599,
        "duration": 0.08800697326660156,
        "date_start": "2024-05-03T17:19:01+03:00",
        "date_finish": "2024-05-03T17:19:01+03:00",
        "operating": 0
    }
}

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

Название
тип
Описание
result
integer
Возвращает целочисленный идентификатор обновлённого комментария
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400

{
    "error": "NOT_FOUND",
    "error_description": "Not found."
}

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

КодОписание
OWNER_NOT_FOUNDВладелец элемента не найден
ACCESS_DENIEDНедостаточно прав
NOT_FOUNDЭлемент не найден
INVALID_ARG_VALUEПустой коментарий
100Не переданы обязательные поля
  • [](./crm-timeline-comment-add)
  • [](./crm-timeline-comment-get)
  • [](./crm-timeline-comment-list)
  • [](./crm-timeline-comment-delete)
  • [](./crm-timeline-comment-fields)

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

Ключевые выводы по теме «Обновить комментарий crm.timeline.comment.update»:

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

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

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

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

Related Post

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

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

Показать информацию о приложении app.infoПоказать информацию о приложении app.info

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

Получить данные голосования с информацией о проголосовавших vote.AttachedVote…Получить данные голосования с информацией о проголосовавших vote.AttachedVote…

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Получить данные голосования с информацией о проголосовавших vote.AttachedVote…». Мы подготовили подробный разбор принципов работы и