MACRO

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

В графике производства работ предусмотрена возможность выстраивать связи между работами и на основании этих связей рассчитывать даты начала и окончания выполнения каждой работы. Связи позволяют учитывать последовательность работ и пересчитывать сроки зависимых работ при изменении исходных дат.

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

Для работы с графиком перейдите в модуль Проекты, выберите проект и откройте Редактор графика. Порядок добавления, изменения и удаления связей описан в статье «Редактор связей ГПР»Переход на внешний сайтhttps://yt.macrodigital.ru/articles/DOCS-A-396.

#Плановые и расчётные даты

При построении графика используются два типа дат:

— Плановые — пользователь задаёт их самостоятельно либо система заполняет их при пересчёте по связям.

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

Для расчёта периода выполнения работы укажите её длительность.

#Типы связей

Начало и окончание работы могут быть связаны с датами начала или окончания нескольких предшествующих работ.

Первая буква обозначает дату предшествующей работы, вторая — дату зависимой работы: Н — начало, О — окончание.

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

Точная дата зависит от указанного опережения или запаздывания. Поэтому при отрицательном смещении зависимая дата может наступить раньше даты предшественника.

#Примеры расчёта для каждого типа связи

Работа № 1 начинается 01.10.2026 и заканчивается 05.10.2026. Длительность зависимой работы № 2 составляет 3 дня. В каждом примере используется только одна связь, опережение и запаздывание равны 0.

При расчёте по связи система дополнительно прибавляет 1 день.

Тип связиРасчёт зависимой даты работы № 2Начало работы № 2Окончание работы № 2
ОНОкончание работы № 1 + 1 день: 05.10 + 1 = 06.1006.10.202608.10.2026
НОНачало работы № 1 + 1 день: 01.10 + 1 = 02.1030.09.202602.10.2026
ОООкончание работы № 1 + 1 день: 05.10 + 1 = 06.1004.10.202606.10.2026
НННачало работы № 1 + 1 день: 01.10 + 1 = 02.1002.10.202604.10.2026

Для связей НО и ОО сначала определяется окончание зависимой работы, затем по её длительности рассчитывается начало.

#Правила расчёта дат начала и окончания работ

  1. Если по связям определена расчётная дата начала, при пересчёте плановая дата начала устанавливается равной ей.

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

    Дата начала = дата окончания − длительность + 1 день.

  3. При изменении даты начала дата окончания рассчитывается с сохранением длительности. День начала входит в длительность:

    Дата окончания = дата начала + длительность − 1 день.

    Например, работа начинается 06.10.2026 и длится 3 дня. Её окончание — 08.10.2026. Работа длительностью 1 день начинается и заканчивается в одну дату.

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

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

  6. Если используются разные типы связей, даты начала и окончания рассматриваются отдельно: ОН и НН определяют начало, НО и ОО — окончание. Нельзя просто выбрать самую позднюю дату среди всех четырёх типов. Если определено расчётное начало, плановый период строится от него с учётом длительности; если расчётного начала нет — от расчётного окончания.

  7. При расчёте по каждой связи по умолчанию прибавляется один день. Это правило действует и при нулевом смещении, и при наличии опережения или запаздывания:

    Зависимая дата = дата предшественника + 1 день + смещение.

    Положительное смещение переносит дату позже, отрицательное — раньше.

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

  9. При изменении даты окончания длительность работы пересчитывается с сохранением даты начала:

    Длительность = дата окончания − дата начала + 1 день.

    Например, работа начинается 06.10.2026 и заканчивается 08.10.2026 — её длительность составляет 3 дня. Если изменить окончание на 10.10.2026, длительность увеличится до 5 дней.

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

  11. Циклические связи запрещены: работа не должна прямо или через другие работы зависеть сама от себя.

#Примеры опережения и запаздывания

Работа-предшественник заканчивается 05.10.2026. Для зависимой работы задана связь ОН.

СмещениеРасчёт начала зависимой работыРезультат
0 дней05.10 + 1 день06.10.2026
+2 дня — запаздывание05.10 + 1 день + 2 дня08.10.2026
−2 дня — опережение05.10 + 1 день − 2 дня04.10.2026
−1 день05.10 + 1 день − 1 день05.10.2026

Правило действует для всех типов связей. Например, при НН −1 день работы начинаются в один день, а при ОО −1 день — заканчиваются в один день.

#Несколько предшественников

#Связи на одну дату

Работа № 3 зависит от окончания двух работ:

  • работа № 1 заканчивается 05.10.2026, связь ОН +2;
  • работа № 2 заканчивается 08.10.2026, связь ОН 0.

Система рассчитывает два варианта начала работы № 3:

  • по работе № 1: 05.10 + 1 день + 2 дня = 08.10.2026;
  • по работе № 2: 08.10 + 1 день = 09.10.2026.

Выбирается наиболее поздняя дата — 09.10.2026. Если длительность работы № 3 составляет 3 дня, она закончится 11.10.2026.

Сравниваются именно даты, полученные после применения смещений. Если для первой связи вместо +2 указать +5, результатом будет 11.10.2026, и начало определится уже по первой связи.

#Связи одновременно на начало и окончание

Для работы № 3 длительностью 3 дня заданы:

  • связь ОН 0 с работой № 1, которая заканчивается 05.10.2026;
  • связь ОО 0 с работой № 2, которая заканчивается 10.10.2026.

По первой связи расчётное начало — 06.10.2026. По второй связи расчётное окончание — 11.10.2026.

Поскольку определено начало и задана длительность 3 дня, плановый период составит 06.10–08.10.2026. Плановое окончание 08.10.2026 не совпадёт с окончанием 11.10.2026, рассчитанным по связи ОО.

В таком случае проверьте длительность и обе связи. Не рассчитывайте, что система автоматически увеличит длительность до 6 дней, чтобы согласовать обе даты.

#Календарные дни и выходные

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

Например, предшествующая работа заканчивается в пятницу 02.10.2026:

  • при ОН 0 зависимая работа начнётся в субботу 03.10.2026;
  • при ОН +2 — в понедельник 05.10.2026.

Если работа начинается в пятницу 02.10.2026 и длится 3 дня, она закончится в воскресенье 04.10.2026.

Настройки производственного календаря компанииПереход на внешний сайтhttps://yt.macrodigital.ru/articles/DOCS-A-29 не исключают нерабочие дни из этого расчёта ГПР. Если работа должна начинаться или заканчиваться в рабочий день, учтите это при настройке дат и смещений.

#Ручное изменение даты начала

Работа № 1 заканчивается 05.10.2026. Работа № 2 связана с ней связью ОН 0, поэтому начинается 06.10.2026.

Если вручную перенести начало работы № 2 на 08.10.2026, система изменит смещение связи с 0 на +2:

05.10 + 1 день + 2 дня = 08.10.2026.

Дата окончания работы № 1 останется прежней.

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

#Циклические связи

Цикл возникает, когда последовательность зависимостей возвращается к исходной работе.

Например:

  1. Работа № 2 зависит от работы № 1.
  2. Работа № 3 зависит от работы № 2.
  3. Для работы № 1 пытаются указать предшественником работу № 3.

Получается замкнутая цепочка: № 1 → № 2 → № 3 → № 1.

При связях ОН 0 и длительности каждой работы 1 день противоречие видно по датам: если работа № 1 выполняется 01.10.2026, работа № 2 должна выполняться 02.10.2026, а работа № 3 — 03.10.2026. Обратная связь потребует перенести работу № 1 на 04.10.2026, после чего снова потребуется переносить работы № 2 и № 3.

Такую цепочку нельзя сохранить. Удалите или измените связь, замыкающую цикл, исходя из фактической последовательности работ.

Нельзя также указать работу предшественником самой себя или создать взаимную зависимость двух работ: № 1 → № 2 → № 1.

#Проверка результата расчёта

После настройки связей проверьте плановые даты и длительность работ. Если в редакторе появился предупреждающий значок, наведите на него курсор и проверьте подсказку о расхождении плановой и расчётной дат.

При расхождении последовательно проверьте:

  1. Правильно ли выбраны предшественник и тип связи.
  2. Учтён ли дополнительный 1 день.
  3. Верно ли указаны знак и величина смещения.
  4. Нет ли другого предшественника, задающего более позднюю дату.
  5. Согласуется ли длительность со связями на начало и окончание.
  6. Учтено ли, что расчёт выполняется в календарных днях.

Для пересчёта графика по заданным связям используйте кнопку Рассчитать плановые даты.

Подробный порядок работы с полями и связями приведён в статье «Редактор связей ГПР»Переход на внешний сайтhttps://yt.macrodigital.ru/articles/DOCS-A-396.