В процессе работы с программой 1С:Зарплата и управление персоналом 8.3 многие специалисты сталкиваются с ситуацией, когда суммы и часы, начисленные за работу в выходные и праздничные дни, не попадают в базу для расчета среднего заработка (например, для отпусков или последующих командировок). Особенно остро эта проблема проявляется, когда работа в выходной день осуществлялась в период нахождения сотрудника в служебной командировке. Разберем детально, почему так происходит и как настроить систему для корректного учета выплат.
Прежде всего, нам необходимо понять методологическую основу. Согласно Постановлению Правительства РФ №922, из расчетного периода для определения среднего заработка исключается время, а также начисленные за это время суммы, если за работником сохранялся средний заработок. Командировка — это именно тот период, когда за сотрудником сохраняется средний заработок.
Однако возникает коллизия: если сотрудник в командировке работал в субботу и получил за это оплату в двойном размере (или в одинарном с предоставлением отгула), эта выплата является оплатой за фактически отработанное время. Согласно позиции Роструда, такие суммы должны включаться в расчет среднего заработка, так как они являются частью системы оплаты труда. Программа 1С:ЗУП по умолчанию может следовать жесткому правилу: «раз день входит в период командировки — значит, исключаем все начисления этого периода».
Рассмотрим по шагам, что нужно проверить в первую очередь без внесения изменений в код программы. Основная настройка находится в карточке вида начисления.
Оплата работы в выходные и праздничные дни (или его клон, если вы создавали собственное начисление).Если в настройках начисления все указано верно, но сумма все равно не «ложится» в средний, значит, проблема в механизме вытеснения или в том, что начисление произошло внутри периода другого события, исключаемого из среднего.
В случае, если работа в выходной день происходила в период командировки, программа 1С:ЗУП видит наложение двух периодов. Документ Командировка регистрирует отсутствие сотрудника на рабочем месте с сохранением среднего заработка. Типовой алгоритм расчета среднего заработка настроен так, что он автоматически отсекает любые суммы, начисленные за дни, которые в табеле или в регистрах отмечены как «Командировка» (код «К»).
Посмотрим на пример: сотрудник был в командировке с понедельника по воскресенье. В субботу он работал. Мы ввели документ Работа в выходные и праздничные дни. В расчетном листке мы видим и оплату по среднему за будни, и двойную оплату за субботу. Но когда мы создаем следующий документ (например, Отпуск), сумма за субботу не попадает в расчетную базу. Это происходит из-за того, что период командировки «вытесняет» время для среднего заработка целиком.
Если вы убедились, что стандартные настройки не помогают, и методология вашей компании требует обязательного включения этих сумм, можно воспользоваться механизмом расширений. Рассмотрим, как программно скорректировать поведение системы.
Основная задача программиста — изменить запрос к регистру расчета, который собирает данные для среднего заработка. Нам нужно сделать так, чтобы выплаты с видом Оплата работы в выходные и праздничные дни не игнорировались, даже если они пересекаются с периодом командировки.
Пример логики, которую можно реализовать в расширении (общий принцип корректировки сбора данных):
&Вместо("СформироватьЗапросДляРасчетаСреднего")
Процедура ИмяРасширения_СформироватьЗапросДляРасчетаСреднего(Параметры)
// Вызываем оригинальный метод
ПродолжитьВызов(Параметры);
// Вносим коррективы в текст запроса, чтобы убрать фильтр
// по исключаемым периодам для конкретных видов начислений
// Здесь необходимо найти временную таблицу ВТДанныеНачислений
// и модифицировать условие исключения периодов.
КонецПроцедуры
Проанализируем, что именно делает расширение: оно находит место в коде, где программа сопоставляет периоды начислений и периоды исключаемого времени. Для начислений, имеющих отношение к работе в выходные, расширение принудительно «разрешает» включение суммы в базу, игнорируя факт нахождения в это время в командировке.
Для того чтобы окончательно выяснить причину проблемы, рекомендуем заглянуть «под капот» программы — в регистры накопления. Выполним следующие действия:
Данные о начислениях для расчета среднего заработка (общий).Если в этом регистре записи по оплате праздничных отсутствуют — значит, проблема в настройке Вида начисления. Если записи есть, сумма указана, но в документе Отпуск или Командировка при нажатии на карандаш (просмотр данных для расчета среднего) этой суммы нет — значит, срабатывает механизм исключения периодов (то самое вытеснение командировкой).
Часто пользователи спрашивают: «Почему часы работы сверх нормы (в праздники) не увеличивают количество отработанных часов в расчете среднего?». Выясним причину этого поведения.
В расчете среднего заработка для отпусков (который исчисляется в календарных днях) количество фактически отработанных часов в знаменателе формулы не используется. Используются календарные дни (коэффициент 29.3). Если же расчет среднего идет для сотрудника с суммированным учетом рабочего времени (для оплаты командировок по часам), то часы должны попадать в расчет.
Чтобы часы за работу в праздники учитывались, проверьте настройку Учет времени в начислении. Для «Оплаты праздничных» должно быть указано, что это Дополнительная оплата за уже оплаченное время, если основное время (командировка) уже зафиксировано. Если же вы хотите, чтобы это время считалось явкой, настройки будут иными, но это может привести к конфликту («двойная явка») в табеле.
Рассмотрев проблему невключения оплаты праздничных дней в средний заработок, мы пришли к выводу, что чаще всего это связано с методологической «жесткостью» программы при работе сотрудника в командировке. Для решения проблемы:
Данные о начислениях для расчета среднего заработка (общий).Таким образом, комбинируя правильную настройку начислений и, при необходимости, небольшие программные правки, можно добиться идеального соответствия расчета среднего заработка требованиям вашего бухгалтерского учета.