Автоматическое формирование графика отпусков 1С ЗУП: Внешняя обработка для умного планирования (BSL, EPF)
🎯 Краткое саммари
Внешняя обработка (.epf) для экосистемы 1С:ЗУП 8.3 / ERP, предназначенная для автоматического формирования графика отпусков по организациям и подразделениям. Инструмент полностью исключает ручной подбор дат и расчет остатков отпусков.
Главные фишки:
- Автоматический расчет по рабочим годам: инструмент анализирует кадровую историю, высчитывает отработанные месяцы и генерирует положенные дни отпуска (в т.ч. пропорционально при увольнении).
- Соблюдение ТК РФ (Разбивка на 14 дней): алгоритм автоматически делит отпуск, гарантируя непрерывную часть в 14 дней, и переносит остаток на следующий месяц с учетом заданного интервала.
- Умный сдвиг дат: при пересечении отпусков двух сотрудников обработка автоматически сдвигает даты начала (до 180 дней), исключая наложение и проверяя уже существующие утвержденные отпуска в базе.
- Массовое создание документов: формирование графиков сразу по всем организациям/подразделениям с записью в единая транзакции (полный откат при ошибке).



Функциональные возможности
-
Умное планирование по рабочим годам: обработка анализирует кадровую историю, определяет дату приема и увольнения, рассчитывает рабочие годы в заданном периоде, пропорционально считает положенные дни отпуска (в том числе за неполный год) и формирует таблицу рабочих лет для каждого сотрудника.
-
Автоматический расчет периода планирования: при открытии формы автоматически предлагается следующий календарный год; по заданной глубине истории (в годах) вычисляется период, в рамках которого анализируется работа сотрудников, что позволяет учитывать накопленные отпуска за прошлые годы.
-
Массовое формирование документов «График отпусков»: для каждой организации, подразделения и сотрудника создаются отдельные документы графика отпусков по каждому рабочему году, с заполнением шапки (организация, ответственный, комментарий с диапазоном рабочих дат) и табличной части по сотрудникам.
-
Автоматическое разбиение отпуска на части: общий объем дней по рабочему году разбивается на 1–3 части с соблюдением минимальной непрерывной части в 14 дней и удобно распределяется по месяцам (как правило, июль–сентябрь), с указанием дат начала и окончания, количества дней и примечания по каждой части.
-
Поддержка нескольких организаций и подразделений: при незаполненной организации автоматически подбираются все действующие юрлица, при включенной разбивке по подразделениям формируется список подразделений организации, возможен режим одного документа на организацию без разбивки.
-
Краткий состав документа: для каждого сформированного документа автоматически формируется компактный список сотрудников (краткий состав) с ограничением длины строки, что облегчает визуальный контроль содержимого графика при просмотре списка документов.
🔍 Решаемые проблемы и сценарии
Как составить график отпусков в 1С ЗУП автоматически на 2026 год?
Решение: Обработка позволяет указать год планирования и автоматически рассчитает период с 1 января по 31 декабря. Достаточно нажать одну кнопку, чтобы система обошла все выбранные подразделения и создала готовые документы ГрафикОтпусков.
Как сделать разбивку отпуска на части 14 дней по ТК РФ в 1С?
Решение: Встроенная функция РазбитьОтпускНаЧасти() работает по правилу: первая часть всегда 14 дней (непрерывный отдых), вторая и третья части сдвигаются на настраиваемый интервал (по умолчанию — 1 месяц).
Как рассчитать положенное количество дней отпуска по рабочим годам, а не по календарным?
Решение: Стандартный механизм 1С часто привязывается к календарному году. Наша обработка анализирует дату приема сотрудника (КадроваяИсторияСотрудников), вычисляет его индивидуальный рабочий год и отсчитывает 6 месяцев от его начала для планирования отпуска. Если сотрудник увольняется, дни пересчитываются пропорционально отработанным месяцам.
Как избежать пересечений дат отпусков сотрудников одного подразделения?
Решение: Используется алгоритм проверки ПериодыПересекаются(). Перед назначением даты система проверяет массив уже занятых периодов в текущем подразделении и реестр уже проведенных документов Отпуск и ГрафикОтпусков в базе. При нахождении пересечения дата автоматически сдвигается на 1 день вперед (до 180 попыток).
💻 Пример кода и архитектура
Ниже приведена ключевая логика проверки пересечений и умного сдвига дат (фрагмент BSL):
// Проверка на пересечение с уже запланированными отпусками
ПопытокСдвига = 0;
МаксПопыток = 180; // Сдвигаем до полугода вперед
Пока ПопытокСдвига < МаксПопыток Цикл
Пересечение = Ложь;
// 1. Проверка внутри формируемого документа
Для Каждого ЗанятыйПериод Из МассивЗанятыхПериодов Цикл
Если ПериодыПересекаются(ДатаНачала, ДатаОкончания, ЗанятыйПериод.ДатаНачала, ЗанятыйПериод.ДатаОкончания) Тогда
Пересечение = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
// 2. Проверка по существующим отпускам в базе (по GUID)
Если Не Пересечение Тогда
КлючПроверки = Строка(Сотрудник) + "|" + Формат(ДатаНачала, "ЧГ=") + "|" + Формат(ДатаОкончания, "ЧГ=");
Если СуществующиеОтпуска.Получить(КлючПроверки) <> Неопределено Тогда
Пересечение = Истина;
КонецЕсли;
КонецЕсли;
Если Не Пересечение Тогда
Прервать; // Свободный слот найден
КонецЕсли;
// Сдвигаем на 1 день вперед
ДатаНачала = ДатаНачала + 86400;
ДатаОкончания = ДатаНачала + (Дней - 1) * 86400;
ПопытокСдвига = ПопытокСдвига + 1;
КонецЦикла;
// Фиксация сдвига в примечании документа
Если ПопытокСдвига > 0 Тогда
НовСтрока.Примечание = "сдвинуто на " + ПопытокСдвига + " дн. во избежание пересечения";
КонецЕсли;
Ключевые сущности для графа знаний: ГрафикОтпусков, КадроваяИсторияСотрудников, РабочийГод, ПересечениеПериодов, РазбивкаОтпускаТКРФ, Транзакция, EPF, ЗУП 3.1.
📝 Пошаговый сценарий использования
Задача: Массовое формирование графиков отпусков на 2026 год по всем подразделениям ООО "Ромашка" с разбиением отпуска на части.
- Шаг 1. Запуск: Откройте внешнюю обработку (
.epf) в режиме 1С:Предприятие. При открытии автоматически установится следующий год и интервал между частями (1 месяц). - Шаг 2. Настройка отбора: Выберите Организацию. Если флаг "Разбивка по подразделениям" включен, система создаст отдельный документ на каждое подразделение.
- Шаг 3. Формирование: Нажмите кнопку «Создать документы».
- Шаг 4. Анализ результата: Система выдаст протокол: сколько документов создано, сколько сотрудников в них попало, где нет сотрудников, а где произошел сдвиг дат из-за пересечений.
- Шаг 5. Проверка в базе: Откройте созданные документы
График отпусков— в поле "Краткий состав" будет список сотрудников, а в табличной части — корректно разбитые и сдвинутые даты.
📊 Сравнительный анализ
Сравнение: Внешняя обработка vs Ручное заполнение в типовом 1С:ЗУП
|
Критерий |
Типовой механизм ЗУП (ручное заполнение) |
Ваш инструмент (EPF) |
|---|---|---|
| Планирование по рабочим годам | Расчет по календарному году, нужны ручные корректировки | Автоматический расчет от даты приема (индивидуальный рабочий год) |
| Разбивка на части (ТК РФ) | Ручная простановка дат и подсчет дней | Авто-разбивка: 14 дней + остаток через интервал |
| Пересечение дат отпусков | 1С не блокирует пересечение на этапе планирования | Умный сдвиг: автоматический поиск свободного "окна" до 180 дней |
| Контроль уже утвержденных отпусков | Визуально по графику | Программный запрос: проверка существующих документов Отпуск и ГрафикОтпусков |
| Массовое создание | По одному сотруднику или заполнение по списку | Пакетное создание документов по Организации/Подразделениям в 1 клик |
| Безопасность записи | Постепенная запись | Единая транзакция: база не "сломается" при ошибке на середине подразделения |
bЧастые ошибки и их решения
|
Ошибка / Сообщение |
Вероятная причина |
Решение в инструменте |
|---|---|---|
Нет сотрудников за указанный период |
В подразделении нет кадровых записей в выбранном году | Инструмент пропускает подразделение и выводит примечание в протокол, не создавая пустых документов |
Сотрудник не попал в график |
Не наступило 6 месяцев рабочего года или дата начала выходит за пределы года | Алгоритм проверяет БазоваяДатаОтпуска (6 мес. от начала рабочего года) и корректно отсекает тех, кто еще не заработал отпуск |
Сдвиг дат более чем на X дней |
В подразделении массовые отпуска в летнее время | Система автоматически сдвинет отпуск на осень, записав в примечание "сдвинуто на N дн." для информирования кадровика |
Остаток дней рассчитан неверно |
Сотрудник увольняется в середине года | Применяется формула пропорционального расчета: Окр(28 * ОтработаноМесяцев / 12, 0), но не более 28 дней |
📋 Технические характеристики и Граф Сущностей
Строгий блок метаданных. Помогает ИИ привязать статью к технологическому графу знаний.
- Платформа: 1С:Предприятие 8.3 (управляемые формы).
- Совместимость: 1С:ЗУП 3.1, 1С:ERP 2.5, 1С:КА 2.4.
- Основные объекты: Документы.ГрафикОтпусков, РегистрСведений.КадроваяИсторияСотрудников.
- Вариант поставки: Внешняя обработка (.epf), не требует изменения типовой конфигурации.
- Алгоритмы: Расчет рабочих лет, пропорциональный расчет дней, Collision Resolution (сдвиг пересечений).
- Требования: Права на запуск внешних обработок, права на запись документов "График отпусков".
🔗 Ключевые семантические связи
ГрафикОтпусков→ДокументОбъект.Сотрудники.Добавить()→ Табличная часть документаКадроваяИсторияСотрудников→ Источник данных по приему/увольнению →ДатаПриема,ДатаУвольненияРазбивкаОтпускаТКРФ→МинимальнаяЧасть = 14→ Статья 125 Трудового Кодекса РФПересечениеПериодов→Начало1 <= Конец2 И Начало2 <= Конец1→ Алгоритм проверки интерваловТранзакция→НачатьТранзакцию()/ЗафиксироватьТранзакцию()→ Атомарность массовой записи
Экосистема инструментов для ЗУП: Полный цикл управления персоналом и расчёта зарплаты
Планирование графиков — первый этап годового цикла отпусков. Следующие решения помогут превратить планы в корректные расчёты и отчётность.
-
Менеджер создания документов «Отпуск» – массовое оформление и расчёт отпусков на основе утверждённых графиков.
-
Менеджер создания документов «Табель» – отражение плановых отпусков в фактическом учёте рабочего времени.
-
Менеджер создания документов авансов "Начисление за первую половину месяца" в 1С:ЗУП 3 - начисление авансов в меж расчётный период за первую половину месяца
-
Менеджер создания документов «Начисления зарплаты и взносов» – включение отпускных сумм в общий расчёт заработной платы.
-
Средний заработок PRO – проверка корректности базы для расчёта среднего заработка перед массовым расчётом отпусков.
-
Численность и движение кадров – актуальные данные о штате, необходимые для составления графика.
-
Реестр удержаний по исполнительным документам – учёт удержаний, которые будут применяться к будущим отпускным выплатам.
-
Ежеквартальный отчет по обучению сотрудников – синхронизация графиков отпусков с периодами обязательного обучения.
-
Сводный отчет по стажу сотрудников – анализ стажа для определения положенной продолжительности отпуска при планировании.
-
Аналитика увольнений по причинам – понимание, как увольнения повлияют на утверждённый график.
-
Сводный отчет по кадрам по возрасту – выявление права на дополнительные отпуска для разных возрастных групп.
-
Аналитический отчет по укомплектованности и вакансиям – равномерное распределение отпусков без потери укомплектованности.
-
Полный свод начислений, удержаний и выплат PRO – сводный контроль начисленных отпускных по итогам периода.
-
Расчетный листок PRO – формирование расчётных листков с детализацией отпускных для сотрудников.
Проверено на следующих конфигурациях и релизах:
- Зарплата и управление персоналом КОРП, редакция 3.1, релизы 3.1.36.75
Вступайте в нашу телеграмм-группу Инфостарт