Задание расписания, длящегося несколько дней или недель

Режим Дни/Недели обычно используется для задания расписаний, которые задаются как календарные времена и даты, но имеют длительность цикла, отличную от недельной - определенное количество дней или недель. 

Например, в таком режиме удобно задавать то, как интенсивность создания заявок изменяется в течение дня - в данном случае длительность расписания равна одному дню. 

Мы же, как и в примере недельного расписания, опять зададим расписание работы служащих - но на этот раз оно не будет иметь недельную цикличность. Давайте зададим расписание работы смены "два рабочих дня через два выходных" (длительность такого расписания составляет четыре дня). Начинают работу служащие пусть в десять утра, заканчивают в семь, для простоты задания предположим, что обеденного перерыва нет.

 Чтобы задать расписание смены "два через два"
  1. Перетащите элемент Расписание  из палитры Основная на диаграмму класса активного объекта.
  1. Перейдите на страницу Основные панели Свойства.
  1. Задайте имя расписания в поле Имя. По этому имени Вы будете ссылаться на это расписание в свойствах объекта(ов) или программно из кода Вашей модели.
  2. Выберите тип значения, которое будут задаваться этим расписанием: да/нет, целое или вещественное. Пусть в нашем случае на смену заступают по пятеро служащих - выберите значение целое.
  3. В поле Значение по умолчанию Вы можете задать значение, которое будет использоваться расписанием для тех интервалов времени, которые не будут покрыты этим расписанием - в нашем случае оставим здесь значение 0.
  4. Поскольку мы хотим задавать значения не для каких-то отдельно взятых моментов, а для интервалов времени, оставьте в секции Расписание задает выбранной опцию Интервалы (Начало, Конец).
  5. Выберите подходящий для Вашей задачи режим задания расписания, основываясь на длительности этого расписания - НеделяДни/Недели или Другая (нет привязки к календарю). Поскольку длительность цикла нашего расписания составляет четыре дня, то выберите опцию Дни/Недели, а ниже, в свойстве Повторять каждые..., выберите 4 дня. Тем самым мы задаем цикличность нашего расписания - заданная нами последовательность интервалов будет повторяться через 4 дня. 

  1. Задайте интервалы в расположенной ниже таблице. Чтобы добавить новый интервал, щелкните по кнопке . В таблицу будет добавлена новая строка.
  1. Задайте для этого интервала его Начало и Конец, как указано на рисунке ниже, а также соответствующее данному интервалу Значение.
  1. Аналогично задайте еще один интервал. Обратите внимание, что в ячейках Начало и Конец теперь указан День 2 - здесь мы задаем рабочее время для второго рабочего дня смены. 

При необходимости Вы можете удалять заданные интервалы и перемещать их по таблице вверх и вниз (при этом Вы должны будете сами следить за тем, чтобы заданное в таблице расписание было целостным). Это можно сделать, предварительно выделив нужную Вам строку в таблице и затем воспользовавшись расположенными справа от таблицы кнопками и  соответственно.

Закончив задание расписания, Вы можете использовать его в Вашей модели, ссылаясь на него в нужных Вам свойствах объектов и/или работая с ним программно с помощью соответствующих методов.

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

Также Вы можете можно задать для расписания исключения - особые интервалы времени, в которые задаваемая расписанием величина должна иметь значения, отличные от предписываемых расписанием (обычно с помощью исключений задаются праздники и связанные с ними переносы рабочих дней). 


Задание двух смен, начинающих работу с разных дней

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

 Чтобы задать две дополняющие друг друга смены

  1. Пусть созданное Вами на данный момент расписание задает расписание работы первой смены, которая заступает на работу с первого моделируемого дня. 
  2. Задайте расписание для второй смены. Создайте копию ранее созданного расписания, перетащив мышью существующее расписание (с одновременно нажатыми левой кнопкой мыши и клавишей Ctrl).
  3. Укажите, что это расписание должно применяться не с первого моделируемого дня, а с третьего. Для этого нужно выбрать в свойстве Перейти к этого расписания день, отстоящий на два дня от дня, выбранного в аналогичном свойстве расписания первой смены.

Применение расписания в объекте ResourcePool

Если Вы задаете расписание работы (доступности) ресурсов, то Вы должны соответствующим образом изменить свойства объекта ResourcePool, задающего эти ресурсы.

Для этого нужно открыть свойства этого объекта и выбрать из выпадающего списка Количество задано опцию Расписанием. Введите имя Вашего расписания в расположенном ниже поле Расписание (Вы можете пользоваться при этом помощью Мастера подстановки кода). Таким образом, объекту сообщается о том, что теперь Ваше расписание будет определять то, как количество доступных ресурсов меняется во времени.

Обычно эта опция (Расписание) используется тогда, когда количество доступных ресурсов меняется с течением времени и в отличие от приведенного выше примера, значений больше, чем 2 (здесь же - только 0 и 5). Если же количество доступных ресурсов всегда одинаково, и просто меняется их статус (все они либо работают, либо нет), то Вы можете просто один раз явно задать их количество в свойстве Количество ресурсов объекта ResourcePool и использовать у расписания в качестве типа значения тип да/нет. В выпадающем списке Количество задано тогда будет нужно выбрать опцию Расписанием доступности, а в расположенном ниже поле Расписание доступности ввести имя Вашего расписания.


Опция "Неделя начинается с"

Обратите внимание, что если Вы выберете в опции Повторять через недели, то справа появится еще одна опция - Неделя начинается с. Эта опция имеет смысл только тогда, когда длительность расписания составляет несколько недель.

Дело в том, что в одних странах (например, России) первым днем недели считается понедельник, а в некоторых других (например, США) - воскресенье. Поэтому если Вы зададите расписание с длительностью в несколько недель с учетом того, что первый день недели - понедельник, и потом перешлете модель в страну, где первым днем считается воскресенье, то расписание будет интерпретироваться не так, как это нужно.

Поэтому если ожидается использование Вашей модели в других странах, рекомендуется явно задавать, какой день недели является первым днем для задаваемого расписания. И делать это нужно до задания интервалов, потому что при смене значения в опции Неделя начинается с все данные в таблице интервалов удаляются.


См. также

 Расписание

 Недельное расписание

 Расписание без привязки к календарю

 Исключения в расписании

 Методы для работы с расписанием

 Предварительный просмотр расписания