On this page
comment
Работа с комментариями компаний
Примеры PHP-кода для получения и добавления комментариев к компаниям в Битрикс24.
Получение комментариев компании
Этот 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