Как исключить воскресные дни при вводе приказа по доп отпуску за вредность в 1С:УПП 1.3?

Бухгалтер 1С v8.3 (Обычные формы) Бухгалтерский учет Промышленность, строительство и АПК
← На главную

При ведении кадрового учета на производственных предприятиях пользователи часто сталкиваются со спецификой предоставления ежегодного дополнительного оплачиваемого отпуска за работу во вредных условиях труда. Основная сложность заключается в методологии расчета: исторически этот отпуск предоставляется в рабочих днях, в то время как Трудовой кодекс РФ требует исчислять все отпуска в календарных днях.

В этой статье мы подробно разберем, почему возникает проблема с «воскресеньями», как законодательство регулирует этот вопрос, почему типовая конфигурация 1С:Управление производственным предприятием (УПП), редакция 1.3 не справляется с этой задачей автоматически, и какими способами можно решить данную проблему на практике.

Законодательный контекст: почему воскресенья должны исключаться?

Согласно статье 120 Трудового кодекса РФ, продолжительность ежегодных основного и дополнительных оплачиваемых отпусков работников исчисляется в календарных днях. Однако для многих профессий и должностей продолжительность дополнительного отпуска за вредность до сих пор установлена в рабочих днях на основании союзного Списка (утвержденного Постановлением Госкомтруда СССР и Президиума ВЦСПС от 25.10.1974 № 298/П-22).

Для объединения основного (в календарных днях) и дополнительного (в рабочих днях) отпусков применяется порядок, разъясненный в Письме Минтруда РФ от 01.02.2002 № 625-ВВ:

  1. Сначала отсчитывается период основного отпуска в календарных днях.
  2. Со дня, следующего за днем окончания основного отпуска, отсчитываются рабочие дни дополнительного отпуска по графику 6-дневной рабочей недели (то есть суббота считается рабочим днем отпуска, а воскресенье — выходным).
  3. Воскресные дни, выпадающие на период дополнительного отпуска, исключаются из подсчета рабочих дней отпуска, тем самым сдвигая (продлевая) дату окончания отпуска вперед на количество таких воскресений.
  4. Полученный общий период (включая воскресенья внутри него) пересчитывается в календарные дни для целей оплаты по среднему заработку.

Пример: Работнику предоставляется дополнительный отпуск за вредность продолжительностью 7 рабочих дней с 4 июля 2018 года (среда). При расчете по 6-дневной рабочей неделе эти 7 дней распределятся следующим образом:

Таким образом, фактически сотрудник отдыхает 8 календарных дней (с 4 по 11 июля включительно) и выходит на работу 12 июля. При этом из его накопленного остатка отпусков должно списаться ровно 7 дней, а оплачено должно быть 8 календарных дней по среднему заработку.

---

Почему в 1С:УПП 1.3 возникает техническая сложность?

Конфигурация 1С:УПП 1.3 базируется на архитектуре более старого поколения (аналогично 1С:ЗУП 2.5). В отличие от современной 1С:ЗУП 3.1, в УПП отсутствует встроенный механизм автоматического пересчета рабочих дней дополнительного отпуска по 6-дневной шкале в календарные дни с корректным списанием остатков.

Если кадровик в документе ОтпускаОрганизаций указывает период с 4 по 11 июля (8 календарных дней, чтобы учесть воскресенье и продлить отпуск), программа ведет себя следующим образом:

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

---

Вариант 1. Ввод отпуска несколькими строками в одном документе (Без программирования)

Это самый простой и изящный способ, который нашли пользователи в процессе обсуждения проблемы. Система 1С:УПП 1.3 позволяет в кадровом документе ОтпускаОрганизаций вводить несколько строк по одному и тому же сотруднику и по одному и тому же виду дополнительного отпуска.

Разберем алгоритм по шагам на нашем примере (7 дней отпуска с 4 июля):

  1. Кадровик вручную рассчитывает периоды отпуска по календарю 6-дневной недели, определяя даты до воскресенья и после него.
  2. В документе ОтпускаОрганизаций для сотрудника создаются две строки с видом отпуска «Дополнительный за вредность»:
    • Строка 1: с 04.07.2018 по 07.07.2018 (количество дней — 4).
    • Строка 2: с 09.07.2018 по 11.07.2018 (количество дней — 3).
  3. Воскресенье 08.07.2018 просто пропускается и не заносится в документ.

Результат:

---

Вариант 2. Ручная корректировка остатков отпусков

Если на предприятии принято решение вносить отпуск одной сплошной строкой (например, с 04.07.2018 по 11.07.2018), кадровой службе придется вручную компенсировать перерасход лимита дней отпуска.

Разберем этот процесс по шагам:

  1. Кадровик проводит документ ОтпускаОрганизаций на весь период (8 календарных дней).
  2. Из-за этого в регистре сведений/накопления списывается лишний 1 день (воскресенье).
  3. Для восстановления баланса используется документ КорректировкаЗаписейРегистров:
    • Выбираем регистр накопления ФактическиеОтпускаОрганизаций (или ОстаткиОтпусков в зависимости от настроек вашей базы).
    • Добавляем запись по сотруднику с видом движения «Расход» с отрицательным знаком (-1) или «Приход» (1), чтобы вернуть ошибочно списанный день обратно на баланс сотрудника.

Минус метода: Если на предприятии работает более 100 «вредников», данный способ создает колоссальный объем ручной работы и увеличивает вероятность совершения ошибок человеческого фактора.

---

Вариант 3. Программная доработка автоматического расчета (Для разработчиков)

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

Проанализируем пример кода, который можно внедрить в модуль проведения кадрового документа:


Процедура КорректировкаДвиженийПоВредности(ДокументОбъект, ДвиженияДокумента) Экспорт
    
    // Получаем таблицу движений по регистру "ФактическиеОтпускаОрганизаций"
    ТаблицаДвижений = ДвиженияДокумента.ФактическиеОтпускаОрганизаций.Выгрузить();
    
    Для Каждого СтрокаДвижения Из ТаблицаДвижений Цикл
        
        // Проверяем, является ли отпуск дополнительным за вредные условия труда
        Если СтрокаДвижения.ВидЕжегодногоОтпуска = Справочники.ВидыЕжегодныхОтпусков.ЗаВредность Тогда
            
            КоличествоВоскресений = 0;
            ТекущаяДата = СтрокаДвижения.ДатаНачала;
            
            // В цикле обходим каждый день периода отпуска
            Пока ТекущаяДата <= СтрокаДвижения.ДатаОкончания Цикл
                Если ДеньНедели(ТекущаяДата) = 7 Тогда // 7 - воскресенье
                    КоличествоВоскресений = КоличествоВоскресений + 1;
                КонецЕсли;
                ТекущаяДата = ТекущаяДата + 86400; // Увеличиваем дату на 1 день (в секундах)
            КонецЦикла;
            
            // Если в периоде найдены воскресные дни, уменьшаем количество списываемых дней
            Если КоличествоВоскресений > 0 Тогда
                СтрокаДвижения.Количество = СтрокаДвижения.Количество - КоличествоВоскресений;
            КонецЕсли;
            
        КонецЕсли;
        
    КонецЦикла;
    
    // Записываем скорректированные движения обратно в регистр
    ДвиженияДокумента.ФактическиеОтпускаОрганизаций.Загрузить(ТаблицаДвижений);
    
КонецПроцедуры

Что делает этот код: При проведении документа система анализирует период дополнительного отпуска за вредность. Если внутри этого периода обнаруживаются воскресенья, программа автоматически уменьшает количество фактически использованных дней в движениях регистра остатков отпусков. В результате кадровик вводит отпуск одной строкой (например, 8 дней), в приказе фигурирует 8 дней, но с баланса сотрудника списывается ровно 7 дней. Это полностью решает проблему «недогуливания» отпусков.

---

Вариант 4. Переход на современную систему учета (1С:ЗУП 3.1 / 1С:ERP)

Рассматривая проблему в долгосрочной перспективе, важно помнить, что фирма «1С» прекратила активную поддержку конфигурации УПП 1.3, а стоимость ее обслуживания ежегодно возрастает. Рано или поздно предприятию потребуется перейти на современные решения.

В современных конфигурациях, таких как 1С:Зарплата и управление персоналом 8, ред. 3.1 и 1С:ERP Управление предприятием, данная проблема решена на уровне платформы:

Для крупных промышленных предприятий с большим числом сотрудников, занятых на вредном производстве, переход на связку «УПП (для производства и регламентированного учета) + ЗУП 3.1 (для расчета зарплаты и кадров)» является наиболее рациональным и безопасным решением.

← На главную