• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/controller/timeline/comment.php
  • Класс: Bitrix\Crm\Controller\Timeline\Comment
  • Вызов: Comment::fetchFieldsToAdd
private function fetchFieldsToAdd(array $fields): array
{
	$ownerId = (int)($fields['ENTITY_ID'] ?? 0);
	$ownerType = (string)($fields['ENTITY_TYPE'] ?? '');
	$ownerTypeId = (int)($fields['ENTITY_TYPE_ID'] ?? 0);
	if ($ownerTypeId === 0 && !empty($ownerType))
	{
		$ownerTypeId = CCrmOwnerType::ResolveID($ownerType);
	}

	$content = trim((string)($fields['COMMENT'] ?? ''));

	$authorId = (int)($fields['AUTHOR_ID']?? 0);
	if ($authorId <= 0)
	{
		$authorId = Container::getInstance()->getContext()->getUserId();
	}

	$loadedFiles = isset($fields['FILES']) && is_array($fields['FILES'])
		? $fields['FILES']
		: [];

	$filesList = $this->fetchFileIds($loadedFiles, $authorId);
	if (empty($filesList))
	{
		$filesList = isset($fields['ATTACHMENTS']) && is_array($fields['ATTACHMENTS'])
			? $fields['ATTACHMENTS']
			: [];
	}

	$filesList = array_values(array_filter($filesList));

	$fileTokensOrId = array_filter($loadedFiles, static fn($item) => is_numeric($item) || is_string($item));

	return [$ownerId, $ownerTypeId, $content, $authorId, $filesList, $fileTokensOrId];
}