# Контроль продолжительности при переносе отпуска

Доступно начиная с версии 1.57.129 | 3.3.6.х

Настройка: Настройки приложения (ЛКС) - Отпуска - Перенос отпуска: Контроль продолжительности по ТК РФ.

Если в глобальных настройках установлена галочка, проверка применяется при оформлении переносов отпусков в заявках с Идентификатором "ПереносОтпускаПоГрафику".

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

**Краткое описание:**

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

**Подробное описание:**

* Анализируемые отпуска:
  * Плановые отпуска по графику
  * Фактические отпуска
* Условия запрета переноса:
  * Переносимый отпуск НЕ перенесен с прошлых лет
  * И продолжительностью 14+ дней (в том числе склеенный из кусков отпусков этого же года)
  * И нет До переноса других плановых или использованных отпусков 14+ (в т.ч. склеенных из кусков этого года)
  * И после переноса с учетом новых дат не появится 14+ (в т.ч. склеенных из кусков этого года)

Как определяются условия:

* Перенесен ли отпуск с прошлых лет
  * Для планового
    * Ищем по документам "Перенос отпуска" такие документы, где в ТЧ есть период с той же датой начала, что и у переносимого
      * Если нашли, анализируется поле "Дата начала" в доке переноса. Год этой даты и есть год отпуска.
        * Если меньше года переносимого отпуска – значит перенесен с прошлых лет.
      * Если не нашли, значит не перенесен.
  * Для уже оплаченного
    * Ищем в графиках отпусков строчку по этому же сотруднику с такой же датой начала как и у проведенного отпуска
      * Если нашли – берем год даты начала и сравниваем с переносимым.
        * Если меньше – перенесен с предыдущего года.
      * Если не нашли - ищем переносы, где в ТЧ есть такая же дата начала, как у переносимого отпуска.
        * Нашли - сравниваем дату из поля "Дата начала" дока переноса с датой переносимого отпуска.
        * Не нашли – (уточняется, не уверен, что такое возможно)
* Наличие других 14+ дней в году помимо переносимого
  * Без склеек
    * Ищем среди проведенных отпусков любой, продолжительностью от 14 календарных дней, где год даты начала совпадает с годом даты начала переносимого отпуска
    * Ищем среди плановых отпусков (с учетом проведенных переносов) любой, продолжительностью от 14 календарных дней, где год даты начала совпадает с годом даты начала переносимого отпуска
    * Если что-то из этого нашли – значит в году есть другой 14+дн
  * Со склейками
    * Ищем все отпуска и плановые и проведенные и перенесенные плановые
    * Исключаем все периоды, которые перенесены с предыдущих лет
    * Исключаем из них тот период, который хотим перенести
    * Оставшиеся анализируем на предмет объединения в непрерывные последовательности от 14+ календарных дней
    * Если есть – значит в году есть другой 14+дн
* Наличие 14+ дней в году после переноса с учетом дат
  * Если новая дата целиком период 14+, тогда год её начала должен совпасть с годом начала исходного отпуска
  * Или проверять склейки, чтобы получалось 14+ с датой начала в исходном году
* Год отпуска
  * Если не перенесен - просто год даты начала
  * Если перенесен – Поле "дата начала" из дока "Перенос отпуска"

**Примеры:**

1. Перенесенных нет, фактических нет, есть единственный плановый 14+ на текущий год в графике. Попытка перенести часть этого 14+ на пустой месяц – **ошибка**.
2. Перенесенных нет, фактических нет, есть единственный плановый 14+ на текущий год в графике. Попытка перенести часть этого 14+ с приклеиванием к другому – **заявка уходит**.
3. Перенесенных нет, фактический 14 дн есть в марте, есть единственный плановый 14+ на текущий год в графике. Попытка перенести часть этого 14+ на пустой месяц – **заявка уходит**.
4. Есть перенесенная неделя, фактических нет, есть единственный плановый 14+ на текущий год в графике. Попытка приклеить 7дн единственного 14+ к 7 перенесенным дням с прошлого года – **ошибка**.
5. Есть вот так в плановом, нет факта, есть перенесенный, но мы уже знаем, что он не влияет:\
   ![](/files/f0r0lmXyqeM08lQA5QYu)\
   В итоге есть 2 по 14, но один склеенный, а второй целый. Все текущий год.\
   Пробую перенести кусок "целого" на октябрь, чтобы "целый" распался на 2, и единственным 14дн остался склеенный из 2 кусков. Результат – **заявка сформировалась**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://padocs.empldocs.app/dlya-razrabotchikov/nastroiki-lks/nastroiki-prilozheniya-lks-bek/otpuska/kontrol-prodolzhitelnosti-pri-perenose-otpuska.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
