On this page
comment
Работа с комментариями контактов
Примеры PHP-кода для получения и добавления комментариев к контактам в Битрикс24.
Получение комментариев контакта
Этот PHP-код позволяет получить список комментариев для определенного контакта в Битрикс24 по его ID.
use Bitrix\Crm\Timeline\CommentEntry;
use Bitrix\Main\Type\DateTime;
// ID контакта, для которого нужно получить комментарии
$contactId = {{ContactID}}; // Пример: $contactId = 123;
$comments = CommentEntry::getList([
'filter' => [
'=ENTITY_TYPE_ID' => \CCrmOwnerType::Contact,
'=ENTITY_ID' => $contactId,
],
'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();
// Присваиваем переменной ContactComments значение массива с комментариями
$rootActivity->SetVariable("ContactComments", $arComments);
Добавление нового комментария к контакту
Данный скрипт позволяет добавить новый комментарий к указанному контакту в Битрикс24.
use Bitrix\Crm\Timeline\CommentEntry;
use Bitrix\Main\Type\DateTime;
// ID контакта, к которому нужно добавить комментарий
$contactId = {{ContactID}}; // Пример: $contactId = 123;
// Текст комментария
$commentText = "{{CommentText}}"; // Пример: $commentText = "Это новый комментарий к контакту.";
// ID пользователя, от имени которого добавляется комментарий (опционально, по умолчанию текущий пользователь)
$authorId = {{AuthorID}}; // Пример: $authorId = 1;
$result = CommentEntry::add([
'ENTITY_TYPE_ID' => \CCrmOwnerType::Contact,
'ENTITY_ID' => $contactId,
'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