• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/managers/synchronization.php
  • Класс: BitrixCalendarSyncManagersSynchronization
  • Вызов: Synchronization::prepareRecurrenceEvent
private function prepareRecurrenceEvent(
	Event $event,
	CoreBaseMap $eventExceptionsMap,
	?FactoryInterface $factory = null
): SyncEvent
{
	$masterLink = $this->getEventConnection($event, $factory);
	$syncEvent = (new SyncEvent())
		->setEvent($event)
		->setAction(Dictionary::SYNC_EVENT_ACTION['create'])
		->setEventConnection($masterLink)
		->setInstanceMap(new InstanceMap());
	/** @var Event $exceptionEvent */
	foreach ($eventExceptionsMap as $exceptionEvent)
	{
		$instance = (new SyncEvent())
			->setEvent($exceptionEvent)
			->setAction(Dictionary::SYNC_EVENT_ACTION['create'])
			->setEventConnection($this->getEventConnection($exceptionEvent, $factory));
		$syncEvent->getInstanceMap()->add($instance);
	}
	(new ExcludeDatesHandler())->prepareEventExcludeDates($event, $syncEvent->getInstanceMap());

	return $syncEvent;
}