Алгоритм расчёта связей ГПР

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

При построении графика существуют два типа дат:

Плановые — пользователь выставляет их самостоятельно;

Расчётные — рассчитываются в зависимости от выставленных связей (играют роль диапазона допустимых значений плановых дат).

Начало и окончание работы могут быть связаны с любым количеством предшествующих работ (их датами начала или окончания), формируя следующие типы связей:

  1. ОН — работа начнётся после окончания другой работы.

  2. НО — работа окончиться после начала другой работы.

  3. ОО — работа окончится после окончания другой работыю

  4. НН — работа начнётся после начала другой работы.

При расчёте дат начала/окончания работ система руководствуется правилами:

  1. Плановая и расчётная даты начала всегда совпадают (в случае если есть расчётная дата начала).

  2. Если есть только расчётная дата окончания, плановая дата окончания совпадает с расчётной, а плановая дата начала рассчитывается в зависимости от длительности.

  3. При изменении даты начала дата окончания работы рассчитывается по формуле: плановая дата начала + длительность.

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

  5. Если работа зависит от нескольких предыдущих работ, в качестве расчётной даты (начала или окончания) всегда берётся максимальная из дат (начала или окончания) этих работ.

  6. При наличии нескольких типов связей к одной работе система рассчитывает вариант расчётной даты по каждой связи и выбирает максимально позднюю по времени.

  7. При расчёте дат по умолчанию всегда прибавляется один день (это правило действует как при запаздывании/опережении, равном 0 дням, так и при его наличии), таким образом: Дата последующей = Дата предыдущей + 1 день + длина связи (запаздывание/опережение).

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

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

  2. При изменении плановой даты начала/окончания работы, у которой есть зависимые, перед применением система задаёт вопрос: «Даты зависимых работ будут изменены с учётом связей. Продолжить?». В случае отрицательного ответа изменения отменяются; в случае согласия производится пересчёт дерева всех зависимых работ с учётом правил, указанных выше.

  3. Запрещены цикличные связи: когда работа №1 зависит от работы №2, работа №2 — от работы №3, а работа №3 — от работы №1.

Последнее обновление