function SendAgent() { global $DB; /** @noinspection PhpDynamicAsStaticMethodCallInspection */ $arFilter = array("<=REMIND_DATE" => (string) new \Bitrix\Main\Type\DateTime()); $rsReminders = CTaskReminders::GetList(array("date" => "asc"), $arFilter); while ($arReminder = $rsReminders->Fetch()) { $rsTask = CTasks::GetByID($arReminder["TASK_ID"], false); if ($arTask = $rsTask->Fetch()) { // remind about not closed tasks only if ($arTask['CLOSED_DATE'] === NULL) { /** @noinspection PhpDynamicAsStaticMethodCallInspection */ $rsUser = CUser::GetByID($arReminder["USER_ID"]); if ($arUser = $rsUser->Fetch()) { $arTask["PATH_TO_TASK"] = CTaskNotifications::GetNotificationPath($arUser, $arTask["ID"]); $arFilterForSendedRemind = array_merge($arFilter, array('TASK_ID' => $arReminder['TASK_ID'], 'USER_ID' => $arReminder['USER_ID'], 'TRANSPORT' => $arReminder['TRANSPORT'], 'TYPE' => $arReminder['TYPE'])); CTaskReminders::Delete($arFilterForSendedRemind); if ($arReminder["TRANSPORT"] == self::REMINDER_TRANSPORT_EMAIL || !CModule::IncludeModule("socialnetwork") || !CTaskReminders::__SendJabberReminder($arUser["ID"], $arTask)) { CTaskReminders::__SendEmailReminder($arUser["EMAIL"], $arTask); } } } } } // Some older items can still exists (for removed users, etc.) CTaskReminders::Delete($arFilter); return "CTaskReminders::SendAgent();"; }