Используется для получения настроек рабочего календаря, таких как:

  • интервалы рабочего и обеденного времени;
  • выходные дни;
  • укороченные и праздничные дни.

Hierarchy

  • ProductionSchedule

Properties

Readonly specialCalendars

specialCalendars: SpecialCalendars

Объект для работы календарями исключительных дней.

Readonly workCalendars

workCalendars: WorkCalendars

Объект для работы с рабочими календарями.

Methods

calcDate

  • Метод позволяет вычислить дату, входящую в интервал рабочего времени.

    Дата вычисляется от заданной даты и с указанной продолжительностью. Если передан пользователь, то для расчёта будет использоваться рабочий календарь, связанный с этим пользователем, в противном случае — календарь по умолчанию, указанный для компании в целом.

    Например, можно вычислить, какая дата в рамках рабочего времени будет стоять через 14 часов после даты запуска процесса:

    const workingTime = await System.productionSchedule.calcDate(Context.data.__createdAt, new Duration(14, 'hours'));
    

    Важно: параметр time должен быть кратен минутам.

    Результат — объект типа TDatetime, который будет с той же временной зоной, что и у значения входного параметра from.

    Parameters

    Returns Promise<TDatetime>

deleteSpecialDays

  • deleteSpecialDays(dates: TDate[]): Promise<void>
  • Удалить исключения в рабочем календаре по умолчанию.

    Пример удаления праздничных или укороченных дней:

    await System.productionSchedule.deleteSpecialDays([
         new TDate(2023, 12, 31),
         new TDate(2023, 12, 30),
    ]);
    

    Parameters

    Returns Promise<void>

getGeneralSettings

  • Метод получает общие настройки рабочего календаря.

    К общим настройкам относятся режим рабочего времени и выходные дни недели.

    const generalSettings = await System.productionSchedule.getGeneralSettings();
    

    Returns Promise<ProductionScheduleGeneralSettings>

getSpecialDays

  • Метод получает укороченные и праздничные дни рабочего календаря.

    Укороченные и праздничные дни возвращаются за определенный период, передаваемый в аргументах метода:

    Parameters

    Returns Promise<ProductionScheduleSpecialDay[]>

getWorkingTime

  • Метод позволяет получить продолжительность рабочего времени за определённый период.

    Продолжительность рабочего времени возвращается за период, передаваемый в аргументах метода. Если передан пользователь, то для расчёта будет использоваться рабочий календарь, связанный с этим пользователем, в противном случае — календарь по умолчанию, указанный для компании в целом.

    Parameters

    Returns Promise<TDuration>

saveGeneralSettings

  • Метод позволяет изменить общие настройки рабочего календаря по умолчанию, т. е. календаря, который указан в настройках компании.

    Пример изменения настроек:

    const settings = await System.productionSchedule.getGeneralSettings();
    settings.weekends = {
       monday:    false,
       tuesday:   false,
       wednesday: false,
       thursday:  false,
       friday:    false,
       saturday:  true,  // Суббота — выходной
       sunday:    true,  // Воскресенье — выходной
    }
    await System.productionSchedule.saveGeneralSettings(settings);
    

    Parameters

    Returns Promise<void>

saveSpecialDays

  • Создать или изменить исключения в рабочем календаре по умолчанию.

    Пример создания укороченных и праздничных дней:

    await System.productionSchedule.saveSpecialDays([
         {
             date: new TDate(2023, 12, 30),
             holiday: false,
             from: 16 * 60 * 60, // с 16:00
             to: 18 * 60 * 60,   // до 18:00
         },
         {
             date: new TDate(2023, 12, 31),
             holiday: true, // Праздничный день
             from: 0,
             to: 0,
         },
    ]);
    

    Parameters

    Returns Promise<void>