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

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

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

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

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

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

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

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

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

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

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

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