• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_sync.php
  • Класс: CCalendarSync
  • Вызов: CCalendarSync::GetPassDates
static function GetPassDates($id, $exDates)
{
	$excludeDates = [];

	$instancesDM = InternalsEventTable::query()
		->addFilter('=RECURRENCE_ID', $id)
		->setSelect(['ORIGINAL_DATE_FROM'])
		->exec()
	;
	// $instances = InternalsEventTable::getList([
	// 	'filter' => [
	// 		'=RECURRENCE_ID' => $id,
	// 	],
	// 	'select' => [
	// 		'ORIGINAL_DATE_FROM'
	// 	],
	// ]);

	while ($instance = $instancesDM->fetch())
	{
		if ($instance['ORIGINAL_DATE_FROM'] instanceof TypeDate)
		{
			$excludeDates[] = $instance['ORIGINAL_DATE_FROM']->format('d.m.Y');
		}
	}

	if ($excludeDates)
	{
		$eventExDate = explode(';', $exDates);
		$result = array_diff($eventExDate, $excludeDates);

		return implode(';', $result);
	}

	return $exDates;
}