• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/managers/outgoingmanager.php
  • Класс: BitrixCalendarSyncManagersOutgoingManager
  • Вызов: OutgoingManager::fetchSectionEvents
private function fetchSectionEvents(CoreSectionSection $section, array $excludeEventIds = []): Generator
{
	$timestamp = time() - self::TIME_SLICE;
	$eventList = EventTable::getList([
		'select' => [
			'*',
			'LINK.*',
			'LINK.CONNECTION',
		],
		'filter' => [
			'=SECTION_ID' => $section->getId(),
			'=DELETED' => 'N',
			'!ID' => $excludeEventIds,
			'>DATE_TO_TS_UTC' => $timestamp,
			'!=MEETING_STATUS' => 'N',
		],
		'runtime' => [
			new ReferenceField(
				'LINK',
				EventConnectionTable::class,
				[
					'=this.ID' => 'ref.EVENT_ID',
					'ref.CONNECTION_ID' => ['?', $this->connection->getId()],
				],
				['join_type' => 'LEFT']
			),
		],
	])->fetchCollection();

	$eventList = $this->prepareEvents($eventList);

	foreach ($eventList as $eventPack)
	{
		yield $eventPack;
	}
}