Задача |
Реализация |
Допустим, что мы будем моделировать оплаты каждого 20 числа. Но не всегда 20 число попадает на рабочий день месяца в случае пятидневной рабочей недели. Если для нас важно отслеживать именно факт оплаты раз в месяц (чаще всего этого вполне достаточно), а не конкретный день ее производства, то для подобной Операции достаточно сделать семидневный рабочий Календарь оплат. В противном случае, если 20 число попадет на нерабочий день, то оплата произведена не будет.
Создадим для нашей Операции Оплата ее рабочую Неделю оплат. Далее воспользуемся тем, что все сущности, существующие в модели, оперируют размерностью <в час>. Нашей Операции Оплата мы сделаем рабочее время 1 час в день. Например, с 12.00 до 13.00 для всех дней недели.
После этого на основе Недели оплат создадим Календарь оплат.
Далее нам необходимо сделать так, чтобы этот рабочий час был единственным за весь месяц и происходил 20 числа. Для этого воспользуемся Календарными исключениями. Помимо стандартных праздников, уже существующих в модели по умолчанию, создадим еще два Календарных исключения, формирующие совместно один рабочий час 20 числа. Два их необходимо для того, чтобы использовать повторяемость исключений 1 месяц и не получить конфликт — превышение интервала исключения над интервалом повторяемости.
Создадим для нашей Операции Оплата ее рабочую Неделю оплат. Далее воспользуемся тем, что все сущности, существующие в модели, оперируют размерностью <в час>. Нашей Операции Оплата мы сделаем рабочее время 1 час в день. Например, с 12.00 до 13.00 для всех дней недели.
При моделировании подобных циклических Календарных исключений необходимо создать их так, чтобы они заведомо происходили во время всего проекта (если нет условий на определенное время начала или завершения). Работы у нас начинаются в августе 2014. Создадим Календарные исключения в январе-феврале 2014. Далее они автоматически будут повторяться весь проект.
Внимание! При моделировании Календарных исключений не используйте последний день февраля или последние дни месяцев, в которых 31 день. Это нестандартные дни, имеющие собственный график повторяемости, что может внести искажения в желаемый результат.
Переходим в таблицу Календарные исключения. Добавляем Календарное исключение Оплата охраны 20-го 1, отключающее всё рабочее время с 13.00 20 января и до, например, 12.00 10 февраля. Для этого указываем начало Календарного исключения 22.01.2014 13:00, окончание 10.02.2014 12:00 и ставим повторяемость Каждый 1 месяц. После этого точно так же создаем второе Календарное исключение Оплата охраны 20-го 2. Его диапазон будет с 12.00 10 февраля по 12.00 20 февраля.
После этого назначим наши Календарные исключения на Календарь оплат.
Назначим наш Календарь на Операцию Оплаты охраны и произведем Расчет расписания без ограничений на ресурсы. В настройках расчета включим Детализацию сроков, чтобы наглядно увидеть рабочее и нерабочее время и проконтролировать успешность создания графика оплат.
Временная реализация оплат нами сделана. Каждый месяц 20-го числа с 12.00 до 13.00 на операции Оплата охраны один час рабочего времени до тех пор, пока идет строительство.Теперь необходимо реализовать собственно денежный поток. Перейдем в таблицу Стоимостные составляющие и создадим там статью затрат (Стоимостную составляющую) Охрана. В реальном проекте оплата охраны может входить в другую статью затрат — все зависит от того, как вы считаете затраты и доходы в модели. После этого в свойствах Операции Оплата охраны переходим на закладку Стоимости и добавляем там нашу Стоимостную составляющую Охрана. Далее указываем, каким образом по этой Стоимостной составляющей происходит расход. Мы заранее так создали график, что теперь можем воспользоваться стандартным свойством <в час>. У нас в Календаре данной Операции каждый месяц есть один рабочий час, вот на него мы и назначим размер ежемесячной оплаты. Допустим это 1000 руб. После этого произведем Расчет затрат Мы реализовали ежемесячную оплату охраны строительной площадки, происходящую все время, пока ведутся строительные работы. Внизу расписания выведена Диаграмма с ежемесячными суммами оплат и гистограмма затрат на охрану с нарастающим итогом.
Проверим теперь работоспособность нашей модели. Допустим, плановая длительность Операции Строительство 2 уменьшилась до 50 дней. Изменим ее длительность в свойствах и произведем Расчет расписания без ограничений на ресурсы и Расчет затрат. Количество оплат уменьшилось на 2 автоматически.
Примеры Пример модели в Spider Project