Блог Горошко Андрея Bitrix24,PHP Событие при изменении комментария OnTaskCommentUpdate

Событие при изменении комментария OnTaskCommentUpdate

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

Событие при изменении комментария OnTaskCommentUpdate

> Scope: task
>
> Кто может подписаться: любой пользователь

Событие срабатывает после изменения комментария в задаче.

События не будут отправляться в приложение, пока установка не завершена. Проверьте установку приложения

Что получает обработчик

Данные передаются в виде POST-запроса {.b24-info}

При работе со старой карточкой задачи до версии модуля tasks 25.700.0:

array(
    'event' => 'ONTASKCOMMENTUPDATE',
    'data' => array(
        'FIELDS_BEFORE' => array('ID' => 123, 'TASK_ID' => 555),
        'FIELDS_AFTER' => array('ID' => 123, 'TASK_ID' => 555, 'ACTION' => 'EDIT'),
        'IS_ACCESSIBLE_BEFORE' => 'undefined',
        'IS_ACCESSIBLE_AFTER' => 'undefined',
    ),
    'ts' => '1466439714',
    'auth' => array(
        'access_token' => 's6p6eclrvim6da22ft9ch94ekreb52lv',
        'expires_in' => '3600',
        'scope' => 'crm',
        'domain' => 'some-domain.bitrix24.com',
        'server_endpoint' => 'https://oauth.bitrix24.tech/rest/',
        'status' => 'F',
        'client_endpoint' => 'https://some-domain.bitrix24.com/rest/',
        'member_id' => 'a223c6b3710f85df22e9377d6c4f7553',
        'refresh_token' => '4s386p3q0tr8dy89xvmt96234v3dljg8',
        'application_token' => '51856fefc120afa4b628cc82d3935cce',
        ),
)

При работе с новой карточкой задачи с чатом с версии модуля tasks 25.700.0 событие не работает.

Параметр
тип
Описание
event
string
Символьный код события, в данном случае OnTaskUpdate
data
array
Массив с данными комментария задачи
ts
timestamp
Дата и время отправки события из очереди событий
auth
array
Параметры авторизации и данные о портале, на котором произошло событие

Параметр data[]

Название
тип
Описание
FIELDS_BEFORE
undefined\
objectПоля комментария и задачи до события (подробное описание приведено ниже). В случае отсутствия доступных полей задачи данное поле будет содержать значение undefined
FIELDS_AFTER
undefined\
objectПоля комментария и задачи после события (подробное описание приведено ниже). В случае отсутствия доступных полей задачи данное поле будет содержать значение undefined
IS_ACCESSIBLE_BEFORE
string
Была ли доступна задача на чтение до события (подробное описание приведено ниже)
IS_ACCESSIBLE_AFTER
string
Стала ли доступна задача на чтение после события (подробное описание приведено ниже)

Поле FIELDS_BEFORE {#fields_before}

Название
тип
Описание
ID
integer
Идентификатор обновленного комментария
TASK_ID
integer
Идентификатор задачи, к которой принадлежит комментарий

Поле FIELDS_AFTER {#fields_after}

Название
тип
Описание
ID
integer
Идентификатор обновленного комментария
TASK_ID
integer
Идентификатор задачи, к которой принадлежит комментарий
ACTION
string
Действие, в данном случае будет всегда EDIT

Поле IS_ACCESSIBLE_BEFORE {#is_accessible_before}

Название
тип
Описание
IS_ACCESSIBLE_BEFORE
string
Возможные значения:
— Y (Yes) — да
— N (No) — нет
— undefined — не определено или проверка не производилась

Поле IS_ACCESSIBLE_AFTER {#is_accessible_after}

Название
тип
Описание
IS_ACCESSIBLE_AFTER*
string
Возможные значения:
— Y (Yes) — да
— N (No) — нет
— undefined — не определено или проверка не производилась

Примеры кода

  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'event.bind',
    		{
    			"event": "OnTaskCommentUpdate",
    			"handler": "https://example.com/handler.php"
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'event.bind',
                [
                    'event'   => 'OnTaskCommentUpdate',
                    'handler' => 'https://example.com/handler.php',
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error binding event: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'event.bind',
        {
            "event": "OnTaskCommentUpdate",
            "handler": "https://example.com/handler.php"
        },
        function(result) {
            if (result.error()) {
                console.error(result.error());
            } else {
                console.info(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'event.bind',
        [
            'event' => 'OnTaskCommentUpdate',
            'handler' => 'https://example.com/handler.php'
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';
  • [](./index)
  • [](./on-task-comment-add)
  • [](./on-task-comment-delete)

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

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к событие изменении, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Событие при изменении комментария OnTaskCommentUpdate».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

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

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

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

Related Post

Изменить значения пользовательских полей документов складского учета catalog….Изменить значения пользовательских полей документов складского учета catalog….

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Изменить значения пользовательских полей документов складского учета catalog….». Вы узнаете экспертные методики работы

Разработка системы резервирования товаров под тендерные закупки (44-ФЗ и 223-ФЗ)Разработка системы резервирования товаров под тендерные закупки (44-ФЗ и 223-ФЗ)

Разработка и внедрение профессионального B2B-портала и дилерского кабинета на 1С-Битрикс позволяет кардинально сократить издержки отдела оптовых продаж, перевести дилеров на самообслуживание 24/7 и исключить ошибки ручного ввода заказов. Услуга «Разработка

Как использовать метод SDK crm.contact.details.configuration.set в Битрикс24Как использовать метод SDK crm.contact.details.configuration.set в Битрикс24

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