Расчет временного резерва и его хранение в базе данных

Для каждого объекта системы рассчитываются 3 параметра:

  • «Временной резерв начала».
  • «Временной резерв окончания».
  • «Общий временной резерв».

«Временной резерв начала» вычисляется, как разница в календарных днях между поздним и ранним началом расчетной даты начала (РДН).

«Временной резерв окончания» вычисляется, как разница в рабочих днях между поздним и ранним окончанием расчетной даты окончания (РДО).

«Общий временной резерв» вычисляется как наименьшее значение между полем «Временный резерв начала» и «Временной резерв окончания».

  • Если общий временной резерв равен 0, он показывает, что задача находится на критическом пути.
  • Если общий временной резерв положительный, он показывает, на какое время может быть отложена задача без задержки завершения проекта в целом.
  • Если общий временной резерв отрицательный, он показывает, сколько времени нужно сэкономить, чтобы не откладывать дату завершения проекта. Отрицательный резерв времени указывает на то, что времени, запланированного на задачу, недостаточно.

Значение параметра «Общий временной резерв» пересчитывается всегда с уровня того объекта, где было произведено сохранение изменений, в точности, как и критический путь в диаграмме Ганта. Или с уровня соответствующего объекта при запуске планировщика Системы (кнопка «Пересчитать даты» в карточке объектов, опция «Актуализировать план проекта» в настройках формы и т.д.). Простыми словами, если меняются даты объектов, рассчитывается и временной резерв.
Например:

  • Если сохранить диаграмму Ганта с уровня объекта «Тестовый проект», то общий временной резерв для каждого из его дочерних объектов рассчитается с уровня этого объекта. Т.е. рассчитывается влияние дочерних объектов на его длительность. На картинке снизу объект «Задача 7» и его дочерние объекты не имеют нулевой временной резерв, а значит не находятся на критическом пути. Т.е. при сохранении в колонке общий временной резерв для таких объектов запишется значение отличное от 0.
  • Если сохранить диаграмму Ганта с уровня объекта «Задача 7», то общий временной резерв для каждого из его дочерних объектов рассчитается с уровня этого объекта. Т.е. рассчитывается влияние дочерних объектов на его длительность. На картинке снизу объект «Задача 7.1» и «Задача 7.2» имеют нулевой временной резерв, а значит они находятся на критическом пути. Т.е. при сохранении в колонке общий временной резерв для таких объектов запишется значение равное 0.
  • Если произвести изменения в продолжительности задачи проекта в ее карточке, то ее резерв будет рассчитан с уровня ее самой, т.к. в этот момент планировщик системы не запускается. А вот если вызвать команду «Пересчитать даты», то все даты проекта будут пересчитаны, следовательно, и резерв также будет заново рассчитан по отношению уже к самому проекту.
  • При обновлении Системы на версию с данным функционалом параметры п.п.3.1.1 автоматически не рассчитываются. Чтобы временной резерв, к примеру, для проекта рассчитался необходимо заново сохранить его.

В LINQ-запросах в dataContext.Projects:

  • TimeReserveStart – временной резерв начала.
  • TimeReserveEnd – временной резерв окончания.
  • TimeReserve – общий временной резерв.

В настройках отчета типа «Проекты и работы» → раздел «Системные показатели» → чекбокс «Общий временной резерв».
При активации чекбокса и сохранении настроек в отчет выводится колонка «Общий временный резерв».