• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/basemessage.php
  • Класс: Bitrix\Crm\Activity\Provider\BaseMessage
  • Вызов: BaseMessage::onMessageSent
static function onMessageSent(Event $event): void
{
	$id = (int)$event->getParameter('ID');

	/** @var array $additionalFields */
	$additionalFields = $event->getParameter('ADDITIONAL_FIELDS');
	if (
		$id <= 0 ||
		!is_array($additionalFields)
		|| !isset($additionalFields['ACTIVITY_PROVIDER_TYPE_ID'])
	)
	{
		return;
	}

	static::addActivity(
		[
			'PROVIDER_TYPE_ID' => $additionalFields['ACTIVITY_PROVIDER_TYPE_ID'] ?? static::getDefaultTypeId(),
			'AUTHOR_ID' => $additionalFields['ACTIVITY_AUTHOR_ID'],
			'DESCRIPTION' => $additionalFields['ACTIVITY_DESCRIPTION'],
			'ASSOCIATED_ENTITY_ID' => $id,
			'BINDINGS' => $additionalFields['BINDINGS'],
			'COMMUNICATIONS' => [
				[
					'ENTITY_TYPE' => $additionalFields['ENTITY_TYPE'],
					'ENTITY_TYPE_ID' => $additionalFields['ENTITY_TYPE_ID'],
					'ENTITY_ID' => $additionalFields['ENTITY_ID'],
					'TYPE' => \CCrmFieldMulti::PHONE,
					'VALUE' => $additionalFields['MESSAGE_TO']
				]
			],
			'SETTINGS' => [
				'FIELDS' => self::makeActivityFields($additionalFields),
				'ORIGINAL_MESSAGE' => static::fetchOriginalMessageFields($id),
			],
		]
	);
}