Как правильно учитывать внутрисменные простои при расчете среднего заработка в 1С:ЗУП 3.1

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Бухгалтерский учет
← На главную

Проблема учета внутрисменных простоев является одной из самых спорных в методологии расчета среднего заработка для отпусков и компенсаций за неиспользованный отпуск. Основная сложность заключается в том, что законодательство (Постановление Правительства РФ №922) четко регламентирует исключение целодневных простоев, но оставляет «серую зону» в вопросе внутрисменных (часовых) перерывов в работе. В этой статье мы подробно разберем методологию расчета, выясним, почему типовой механизм 1С:ЗУП 3.1 ведет себя именно так, и рассмотрим способы автоматизации более лояльного к сотруднику расчета.

Анализируем нормативную базу: Постановление №922

Для начала проанализируем основные положения законодательства. Согласно подпункту «в» пункта 5 Положения «Об особенностях порядка исчисления средней заработной платы», при исчислении среднего заработка из расчетного периода исключается время, а также начисленные за это время суммы, если работник не работал в связи с простоем по вине работодателя или по причинам, не зависящим от сторон.

С другой стороны, пункт 10 того же Положения устанавливает правила расчета среднего дневного заработка для отпусков. В нем сказано, что если месяц отработан не полностью, количество календарных дней рассчитывается путем деления 29,3 на количество календарных дней месяца и умножения на количество календарных дней, приходящихся на время, отработанное в данном месяце.

Возникает коллизия: если сотрудник часть смены работал, а часть находился в простое, то календарный день считается «отработанным» или нет? Рассмотрим два подхода:

  1. Буквальный подход (реализован в 1С): Если в календарный день была хотя бы минута работы, этот день считается отработанным и полностью включается в знаменатель (29,3). Сумма оплаты простоя при этом исключается из числителя. Это приводит к математическому снижению среднего заработка сотрудника.
  2. Справедливый подход (желание бизнеса): Исключать время простоя пропорционально часам, чтобы не занижать средний заработок. Однако напрямую это противоречит логике «календарных дней», используемой в расчете отпусков.

Разберем поведение типовой конфигурации 1С:ЗУП 3.1

В типовом решении 1С:ЗУП 3.1 при регистрации документа ПростойСотрудников с видом «Внутрисменный» программа ведет себя следующим образом:

Проанализируем ситуацию на примере. Если сотрудник отработал 1 час, а 7 часов был в простое, его заработок за 1 час попадет в средний, а оплата за 7 часов простоя — нет. При этом в знаменателе будет числиться целый день. Это законно, так как день нельзя «разрезать» на части в целях исчисления календарных дней для отпуска.

Решение 1: Использование локальных нормативных актов (ЛНА)

Рассмотрим законный способ обойти занижение среднего заработка без изменения программного кода. Согласно статье 139 ТК РФ, работодатель имеет право установить в коллективном договоре или ЛНА свой порядок расчета среднего заработка, если он не ухудшает положение работников.

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

Решение 2: Автоматизация накопления часов простоя (Техническое задание)

Если предприятие настаивает на уменьшении знаменателя (количества календарных дней), можно рассмотреть вариант доработки системы. Идея заключается в том, чтобы «копить» часы внутрисменных простоев и, когда их сумма достигнет полной смены (например, 8 часов), уменьшать количество календарных дней в периоде.

Проанализируем техническое задание для реализации такого механизма:

  1. Создание регистра накопления: Необходимо завести новый регистр ДниЧасыПростоев (вид: Остатки) с измерениями Организация и Сотрудник, и ресурсами Дни и Часы.
  2. Изменение документа регистрации простоя: В документе ПростойСотрудников при проведении внутрисменного простоя следует добавить движение «Приход» в новый регистр накопления.
  3. Создание обработчика/документа трансформации: Разработаем механизм, который в конце месяца проверяет остатки по регистру. Если накоплено более 8 часов (или иная норма смены), программа должна сформировать «виртуальное» отсутствие или скорректировать данные для расчета среднего.

Посмотрим на пример кода для фиксации движений в новом регистре:


Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    // Стандартная логика проведения
    ...
    
    // Дополнительная логика для накопления простоев
    Движения.ДниЧасыПростоев.Записывать = Истина;
    Для Каждого СтрокаТЧ Из Сотрудники Цикл
        Если СтрокаТЧ.Внутрисменный Тогда
            НоваяЗапись = Движения.ДниЧасыПростоев.Добавить();
            НоваяЗапись.ВидДвижения = ВидДвиженияНакопления.Приход;
            НоваяЗапись.Период = Дата;
            НоваяЗапись.Сотрудник = СтрокаТЧ.Сотрудник;
            НоваяЗапись.Часы = СтрокаТЧ.ДатаОкончания - СтрокаТЧ.ДатаНачала; // Пример расчета часов
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Решение 3: Метод замены выходного дня на код «НВ»

Разберем еще один креативный вариант, предложенный экспертами на форумах. Суть метода заключается в том, что накопленные 8 часов внутрисменного простоя «превращаются» в один неоплачиваемый день отдыха (код НВ — неоплачиваемое время по вине работодателя), который ставится в табель вместо обычного выходного дня (В).

Почему это работает? Выходные дни (В) входят в расчет календарных дней для отпуска (в составе 29,3). Но если заменить В на НВ (или другой код исключаемого периода согласно пункту 5 Положения №922), этот день будет исключен из расчета календарных дней. Таким образом, мы уменьшаем знаменатель, не затрагивая реально отработанные дни, и восстанавливаем справедливость в расчете среднего заработка.

Проанализируем алгоритм автоматизации этого метода:

  1. Система анализирует остаток часов в регистре ДниЧасыПростоев.
  2. При накоплении значения >= 8, программный код ищет в текущем месяце ближайший выходной день.
  3. В документ ТабельУчетаРабочегоВремени или через документ ОтсутствиеССохранениемОплаты вносится запись, которая перекрывает выходной день кодом, исключаемым из среднего заработка.
  4. Из регистра ДниЧасыПростоев списывается 8 часов («Расход»).

Важные предупреждения и риски

Рассмотрим критические моменты, которые необходимо учитывать при реализации подобных доработок:

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

В заключение отметим, что наиболее безопасным и методологически верным способом является согласие с типовым алгоритмом и разъяснение сотрудникам норм Постановления №922. Если же политика компании требует максимальной лояльности к персоналу, используйте механизм доплаты до среднего через ЛНА, что гораздо прозрачнее для проверяющих органов, чем манипуляции с кодами табеля и календарными днями.

← На главную