• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/notification/task/throttle.php
  • Класс: BitrixTasksInternalsNotificationTaskThrottleTable
  • Вызов: ThrottleTable::getUpdateMessages
static function getUpdateMessages(): array
{
	$result = [];

	$res = static::getList(['select' => ['TASK_ID', 'AUTHOR_ID', 'STATE_ORIG', 'STATE_LAST', 'INFORM_AUTHOR']]);

	static::cleanUp();

	while ($item = $res->fetch())
	{
		$stateOrig = unserialize(
			$item['STATE_ORIG'],
			['allowed_classes' => ['DateTime', 'BitrixTasksUtilTypeDateTime']]
		);
		if (!is_array($stateOrig))
		{
			$stateOrig = [];
		}

		$stateLast = unserialize(
			$item['STATE_LAST'],
			['allowed_classes' => ['DateTime', 'BitrixTasksUtilTypeDateTime']]
		);
		if (!is_array($stateLast))
		{
			$stateLast = [];
		}

		$result[$item['TASK_ID']] = [
			'STATE_ORIG' => $stateOrig,
			'STATE_LAST' => $stateLast,
			'AUTHOR_ID' => $item['AUTHOR_ID'],
			'TASK_ID' => $item['TASK_ID'],
			'IGNORE_RECIPIENTS' => [
				// null to inform
				$item['AUTHOR_ID'] => ((int)$item['INFORM_AUTHOR'] ? null : true),
			],
		];
	}

	return $result;
}