Получение комментариев компании

Этот PHP-код позволяет получить список комментариев для определенной компании в Битрикс24 по её ID.

use Bitrix\Crm\Timeline\CommentEntry;
use Bitrix\Main\Type\DateTime;

// ID компании, для которой нужно получить комментарии
$companyId = {{CompanyID}}; // Пример: $companyId = 123;

$comments = CommentEntry::getList([
    'filter' => [
        '=ENTITY_TYPE_ID' => \CCrmOwnerType::Company,
        '=ENTITY_ID' => $companyId,
    ],
    'select' => ['ID', 'COMMENT', 'CREATED_TIME', 'AUTHOR_ID'],
    'order' => ['CREATED_TIME' => 'DESC'],
])->fetchAll();

$arComments = [];
foreach ($comments as $comment) {
    $arComments[] = [
        'ID' => $comment['ID'],
        'COMMENT' => $comment['COMMENT'],
        'CREATED_TIME' => $comment['CREATED_TIME']->format('Y-m-d H:i:s'),
        'AUTHOR_ID' => $comment['AUTHOR_ID'],
    ];
}

// Получаем корневую активность бизнес-процесса
$rootActivity = $this->GetRootActivity();

// Присваиваем переменной CompanyComments значение массива с комментариями
$rootActivity->SetVariable("CompanyComments", $arComments);

// Для отладки:

Добавление нового комментария к компании

Данный скрипт позволяет добавить новый комментарий к указанной компании в Битрикс24.

use Bitrix\Crm\Timeline\CommentEntry;
use Bitrix\Main\Type\DateTime;

// ID компании, к которой нужно добавить комментарий
$companyId = {{CompanyID}}; // Пример: $companyId = 123;

// Текст комментария
$commentText = "{{CommentText}}"; // Пример: $commentText = "Это новый комментарий к компании.";

// ID пользователя, от имени которого добавляется комментарий (опционально, по умолчанию текущий пользователь)
$authorId = {{AuthorID}}; // Пример: $authorId = 1;

$result = CommentEntry::add([
    'ENTITY_TYPE_ID' => \CCrmOwnerType::Company,
    'ENTITY_ID' => $companyId,
    'COMMENT' => $commentText,
    'AUTHOR_ID' => $authorId,
    'CREATED_TIME' => new DateTime(),
]);

$isSuccess = false;
$newCommentId = null;

if ($result->isSuccess()) {
    $isSuccess = true;
    $newCommentId = $result->getId();
} else {
    $errors = $result->getErrorMessages();
    // Для отладки:
    $this->TrackingService->WriteToTrackingService("Ошибки при добавлении комментария: " . implode(", ", $errors));
}

// Получаем корневую активность бизнес-процесса
$rootActivity = $this->GetRootActivity();

// Присваиваем переменным бизнес-процесса результат операции
$rootActivity->SetVariable("CommentAddSuccess", $isSuccess);
$rootActivity->SetVariable("NewCommentID", $newCommentId);

Присоединяйтесь к нашему Telegram-каналу для получения актуальных новостей и полезных советов: https://t.me/+ACzHjl0ZO585OTky