public function onUserSetLastActivityDate(\Bitrix\Main\Event $event) { $users = $event->getParameter(0); foreach ($users as $userId) { $cache = \Bitrix\Main\Data\Cache::createInstance(); if ($cache->startDataCache(60, $userId, '/im/status')) { $mapper = \Bitrix\Replica\Mapper::getInstance(); $map = $mapper->getByPrimaryValue("b_im_status.USER_ID", false, $userId); if ($map) { $guid = \Bitrix\Replica\Client\User::getLocalUserGuid($userId); if ($guid && $map[$guid]) { $event = array("operation" => "im_status_update", "guid" => $guid); \Bitrix\Replica\Log\Client::getInstance()->write($map[$guid], $event); } } $cache->endDataCache(true); } } }