Блог Горошко Андрея Bitrix24 Создать новый комментарий в таймлайне rpa.comment.add

Создать новый комментарий в таймлайне rpa.comment.add

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

Создать новый комментарий в таймлайне rpa.comment.add

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

Метод создает новый комментарий в таймлайне элемента с идентификатором itemId процесса с идентификатором typeId.

Название
тип
Описание
typeId
integer
Идентификатор процесса
itemId
integer
Идентификатор элемента
fields
object
Объект, описывающий поля комментария

Параметр fields {#fields}

Название
тип
Описание
description
string
Описание записи. Можно использовать HTML и BB-code форматирование
files
array
Массив прикрепленных файлов. Каждый элемент — это массив с именем и содержимым, закодированным в base64

Примеры кода

  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'rpa.comment.add',
    		{
    			"typeId": 24,
    			"itemId": 10,
    			"fields": {
    				"description": "Упоминание пользователя с ид 1 ",
    				"files": [
    					[
    						"document.pdf", "...base64_decoded_content..."
    					]
    				]    
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.log('response', result.answer);
    	if(result.error())
    		alert("Error: " + result.error());
    	else
    		console.log(result);
    }
    catch( error )
    {
    	console.error('Error:', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'rpa.comment.add',
                [
                    'typeId' => 24,
                    'itemId' => 10,
                    'fields' => [
                        'description' => 'Упоминание пользователя с ид 1',
                        'files'      => [
                            [
                                'document.pdf', '...base64_decoded_content...'
                            ]
                        ]
                    ]
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        echo 'response: ' . $result['answer'];
    
        if ($result['error']) {
            echo 'Error: ' . $result['error'];
        } else {
            echo 'Data: ' . print_r($result['data'], true);
        }
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error adding comment: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'rpa.comment.add',
        {
            "typeId": 24,
            "itemId": 10,
            "fields": {
                "description": "Упоминание пользователя с ид 1 ",
                "files": [
                    [
                        "document.pdf", "...base64_decoded_content..."
                    ]
                ]    
            }
        },
        function(result) {
            console.log('response', result.answer);
            if(result.error())
                alert("Error: " + result.error());
            else
            console.log(result.data());
        }
    )

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

HTTP-статус: 200

{
    "comment": {
        "id": 350,
        "createdTime": "2020-03-27T16:00:59+02:00",
        "isFixed": false,
        "typeId": 24,
        "itemId": 10,
        "action": "comment",
        "description": "Упоминание пользователя с ид 1 ",
        "userId": 1,
        "title": "Комментарий",
        "data": {
            "files": [
                15
            ]
        },
        "createdTimestamp": 1585317659000,
        "htmlDescription": "Упоминание пользователя с ид 1 <a class=\"blog-p-user-name\" id=\"bp_K6r6vvp7\" href=\"/company/personal/user/1/\" bx-tooltip-user-id=\"1\">Anton Gorbylev</a> ",
        "textDescription": "Упоминание пользователя с ид 1 Anton",
        "users": {
            "1": {
                "id": "1",
                "name": "Anton",
                "secondName": "",
                "lastName": "",
                "title": null,
                "workPosition": "",
                "fullName": "Anton",
                "link": "/company/personal/user/1/"
            }
        }
    }
}
  • [](./index)
  • [](./rpa-comment-update)
  • [](./rpa-comment-delete)

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

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

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

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

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

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

Related Post

Проверить состояние складского учета catalog.document.mode.statusПроверить состояние складского учета catalog.document.mode.status

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

Проверить доступ к задаче tasks.task.getaccessПроверить доступ к задаче tasks.task.getaccess

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

Получить поля пользовательского поля task.item.userfield.getfieldsПолучить поля пользовательского поля task.item.userfield.getfields

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