База знаний EMS-платформы PlatParts Руководство по настройке EMS-платформы PlatParts

Логика работы и расчёт дат

На этой странице 13

Логика работы шаблона нерабочих дней и расчёта дат

На этой странице — подробно и простым языком, как платформа считает срок с учетом нерабочих дней.

Что учитывает система

Для каждой связки «точка выдачи — поставщик» система смотрит:

  1. Выбран ли режим работы нерабочих дней.
  2. Подключен ли шаблон нерабочих дней.
  3. Заполнены ли свои (ручные) настройки для этой связки.

Один и тот же поставщик на разных точках выдачи может работать по разным правилам — это нормально.

Какие режимы есть и что они значат

Режим в панели управления Что будет в расчёте
Без шаблона нерабочих дней Нерабочие дни не учитываются.
Только шаблон нерабочих дней Учитываются только дни из выбранного шаблона.
Шаблон + свои настройки Учитываются и шаблонные, и свои дни одновременно.
Свои настройки Учитываются только свои дни из этой связки.

Правило выбора режима (если в данных есть несостыковка)

Если выбран режим с шаблоном, но шаблон фактически не указан:

  • при наличии «своих» правил система использует только свои настройки;
  • если своих правил нет, система считает, что нерабочих дней для этой связки нет.

Какие дни могут считаться нерабочими

Система проверяет три группы правил:

  • выходные дни недели (например, суббота и воскресенье);
  • ежегодные даты (например, 01-01, 09-05);
  • разовые даты (конкретный день конкретного года).

Если день попал хотя бы в одну из этих групп — он считается нерабочим.

Как читаются даты

  • Ежегодная дата — повторяется каждый год (например, 01-01).
  • Разовая дата — действует только в конкретном году (например, 2026-01-08).
  • Если одна и та же дата случайно внесена несколько раз, система учитывает её как один день.

Как сдвигается дата

  1. Сначала система получает базовую дату доставки по сроку.
  2. Проверяет: попадает ли эта дата в нерабочий день.
  3. Если да — переносит на следующий календарный день.
  4. Повторяет проверку, пока не найдет рабочий день.

Поэтому смещение зависит не от количества «галочек» в настройках, а от того, на какие именно календарные дни они попали.

Подробные примеры

Пример 1. Только шаблон

  • Базовая дата: суббота, 10.05
  • В шаблоне выходные: суббота и воскресенье

Что сделает система:

  1. 10.05 (суббота) — нерабочий, перенос на 11.05
  2. 11.05 (воскресенье) — нерабочий, перенос на 12.05
  3. 12.05 (понедельник) — рабочий

Итог: дата сместится на 2 дня.

Пример 2. Шаблон + свои настройки

  • Базовая дата: пятница, 08.05
  • В шаблоне выходные: суббота и воскресенье
  • В «своих» настройках добавлена разовая дата: 09.05

Что важно: 09.05 уже попадает в шаблонный выходной период, поэтому «добавление» не всегда увеличивает смещение.

Возможный проход:

  1. 08.05 — рабочий (если не отмечен как праздник) → дата может остаться 08.05
  2. Если базовая дата попала на 09.05/10.05/11.05 — перенос пойдет до первого рабочего дня

Итог: смещение зависит от того, куда попала исходная дата, а не от количества записей в шаблоне и «своих».

Пример 3. Почему «2 дня в шаблоне + 1 свой» не равно всегда +3

  • В шаблоне: суббота, воскресенье
  • В своих: понедельник

Если базовая дата = пятница, то перенос будет:

  • суббота (нерабочий) → воскресенье (нерабочий) → понедельник (нерабочий) → вторник (рабочий)

Здесь получится +3.

Но если базовая дата = вторник, перенос может быть 0 (если вторник не попадает в правила).
Поэтому считать нужно по календарю, а не по числу правил.

Важно про «свои настройки поверх шаблона»

В режиме «Шаблон + свои настройки» свои правила работают как добавление к шаблону.

Это значит:

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

Проще: «свои» настройки в этом режиме — это добавка сверху, а не «замена шаблона».

Что происходит, если шаблон удалили

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

Если после удаления шаблона у связки не осталось ни шаблонных, ни своих правил, фактически расчет пойдет как без нерабочих дней.

Практическая проверка после настройки

  • Возьмите тестовую связку точка выдачи — поставщик.
  • Проверьте срок на дате, где есть выходной/праздник.
  • Убедитесь, что дата переносится на ближайший рабочий день так, как ожидаете.
  • Проверьте оба сценария: только шаблон и шаблон + свои настройки, чтобы видеть разницу.