• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/settings/worktime.php
  • Класс: Bitrix\Crm\Settings\WorkTime
  • Вызов: WorkTime::initWorkTimeData
private function initWorkTimeData(): void
{
	if (empty($this->data))
	{
		$holidays = [];
		$dayOff = [];
		$defaultWeekStart = 'MO';
		$defaultTimeFrom = $this->initTimeObject('9.00'); // 9:00
		$defaultTimeTo = $this->initTimeObject('18.00');  // 18:00

		if (Loader::includeModule('calendar'))
		{
			$calendarSettings = CCalendar::getSettings();
			$holidays = $calendarSettings['year_holidays'];
			if (!is_array($holidays))
			{
				$holidays = explode(',', $holidays);
				trimArr($holidays);
				$holidays = array_values($holidays);
			}

			$dayOff = is_array($calendarSettings['week_holidays']) ? $calendarSettings['week_holidays'] : [];
			trimArr($dayOff);

			$defaultWeekStart = $calendarSettings['week_start'];

			if (!empty($calendarSettings['work_time_start']))
			{
				$defaultTimeFrom = $this->initTimeObject((string)$calendarSettings['work_time_start']);
			}

			if (!empty($calendarSettings['work_time_end']))
			{
				$defaultTimeTo = $this->initTimeObject((string)$calendarSettings['work_time_end']);
			}
		}

		$this->data = [
			'WEEK_START' => $defaultWeekStart,
			'TIME_FROM' => $defaultTimeFrom,
			'TIME_TO' => $defaultTimeTo,
			'HOLIDAYS' => $holidays,
			'DAY_OFF' => $dayOff
		];
	}
}