• Модуль: messageservice
  • Путь к файлу: ~/bitrix/modules/messageservice/lib/message.php
  • Класс: BitrixMessageServiceMessage
  • Вызов: Message::updateStatusByExternalStatus
public function updateStatusByExternalStatus(string $externalStatus): bool
{

	$newInternalStatus = $this->sender::resolveStatus($externalStatus);

	$isUpdateSuccess = MessageTable::updateMessageStatuses(
		$this->id,
		$newInternalStatus,
		$externalStatus
	);

	if (!$isUpdateSuccess)
	{
		return false;
	}

	$this->statusId = $newInternalStatus;

	// events
	$eventFields = ['ID' => $this->id, 'STATUS_ID' => $this->statusId];
	MainEventManager::getInstance()->send(new MainEvent(
			'messageservice',
			static::EVENT_MESSAGE_UPDATED,
			$eventFields)
	);
	Pull::onMessagesUpdate([$eventFields]);

	return true;
}