• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/integration/intranet/secretary.php
  • Класс: BitrixMailIntegrationIntranetSecretary
  • Вызов: Secretary::onTaskDelete
static function onTaskDelete($taskId)
{
	$messageAccessQuery = MessageAccessTable::query()
		->setSelect([
			'TOKEN',
			'MESSAGE_ID',
			'MAILBOX_ID',
			])
		->setFilter([
			'=ENTITY_TYPE' => MessageAccessTable::ENTITY_TYPE_TASKS_TASK,
			'=ENTITY_ID' => $taskId,
		]);;

	while ($messageAccess = $messageAccessQuery->fetch())
	{
		$messageId = $messageAccess['MESSAGE_ID'];
		$mailboxId = $messageAccess['MAILBOX_ID'];
		MessageAccessTable::delete(['TOKEN' => $messageAccess['TOKEN']]);

		if (Loader::includeModule('pull'))
		{
			if($mailboxId)
			{
				CPullWatch::addToStack(
					'mail_mailbox_' . $mailboxId,
					[
						'module_id' => 'mail',
						'command' => 'messageBindingDeleted',
						'params' => [
							'messageId' => $messageId,
							'mailboxId' => $mailboxId,
							'entityType' => MessageAccessTable::ENTITY_TYPE_TASKS_TASK,
							'entityId' => $taskId,
						],
					]
				);
			}
		}
	}
}