В практической деятельности бухгалтеров и расчетчиков нередко возникает задача — доначислить сотруднику во время его нахождения в ежегодном отпуске сумму доплаты до его фактического оклада. Это актуально, когда средний заработок для расчета отпускных оказывается ниже текущего оклада сотрудника (например, из-за недавнего повышения окладов в организации).
Однако при попытке настроить такое начисление в программе «1С:Зарплата и управление персоналом 3.1» пользователи часто сталкиваются с технической проблемой: при расчете показатель времени выдает нулевое значение, и, как результат, автоматическая доплата не начисляется. В данной статье мы подробно разберем, почему возникает эта ошибка, проанализируем различные способы настройки программы и найдем оптимальное решение.
Рассмотрим ситуацию, с которой столкнулся автор темы. Для реализации доплаты до оклада в отпуске была создана формула:
МАКС(((Оклад * ДоляНеполногоРабочегоВремени / НормаДней) * ВремяВДнях) - РасчетнаяБаза, 0)
На первый взгляд формула абсолютно логична. Мы берем дневную ставку сотрудника, умножаем ее на количество рабочих дней, приходящихся на период отпуска (показатель ВремяВДнях), и вычитаем из полученного результата фактически начисленные отпускные (которые предварительно включены в РасчетнаяБаза).
Тем не менее, при расчете программа выдает 0. Выясним причину этой проблемы. Показатель ВремяВДнях собирает информацию на основании настроек учета времени конкретного начисления. Если в начислении не задан правильный вид времени или если вид времени конфликтует с фактическим состоянием сотрудника в этот период, система не сможет определить рабочие дни. Во время отпуска сотрудник освобожден от работы, в его графике эти дни не зафиксированы как «Явка» (буквенный код «Я»). Для программы в этот период рабочего времени нет, поэтому показатель ВремяВДнях принимает значение 0.
Ниже мы подробно разберем четыре практических метода настройки такой доплаты в 1С:ЗУП 3.1 — от полностью автоматического до альтернативного ручного ввода.
---
В программе 1С:ЗУП 3.1 заложен автоматический механизм, который позволяет сопоставить период отпуска с графиком работы сотрудника и определить количество рабочих дней, приходящихся на этот отпуск. Чтобы этот механизм сработал, выполним следующие настройки начисления:
МАКС(((Оклад * ДоляНеполногоРабочегоВремени / НормаДней) * ВремяВДнях) - РасчетнаяБаза, 0)
Внимание: ограничение метода! Данный способ работает идеально только в том случае, если расчет зарплаты в вашей базе ведется «методом отклонений» (на основании графиков работы и документов-отклонений), и в информационной базе не проводится документ «Табель». Если же вы заполняете и проводите документ «Табель», в нем на дни отпуска будет установлен код «ОТ» или «ОД». При наличии проведенного табеля программа начнет брать показатель ВремяВДнях строго по нему, увидит там отсутствие рабочих дней («Явки») и в итоге снова вернет 0.
---
Если в вашей организации проведение документа «Табель» является обязательным, автоматический расчет по Способу 1 не сработает. В таком случае наиболее стабильным и надежным решением будет метод, предложенный автором темы на форуме. Мы создадим специальный показатель, значение которого будем вводить вручную для тех сотрудников, которые идут в отпуск.
Разберем этот процесс по шагам:
Перейдем в меню Настройки — Показатели расчета зарплаты и создадим новый показатель:
РабочиеДниОтпуска.Чтобы расчетчики могли удобно вносить этот показатель, перейдем в меню Настройки — Шаблоны ввода исходных данных и создадим новый шаблон:
РабочиеДниОтпуска.В самом начислении «Доплата до оклада в отпуске» изменим формулу расчета. Мы должны предусмотреть ситуацию, когда показатель равен нулю (чтобы избежать ошибок расчета для сотрудников, у которых отпуска в этом месяце нет):
МАКС(((Оклад * ДоляНеполногоРабочегоВремени / НормаДней) * ?(РабочиеДниОтпуска = 0, КалендарныеДни, РабочиеДниОтпуска)) - РасчетнаяБаза, 0)
При такой настройке расчетчик перед расчетом зарплаты создает документ Данные для расчета зарплаты, выбирает сотрудника и указывает точное количество рабочих дней по графику, которые пришлись на период его отпуска. Метод требует ручных действий, но он полностью защищен от любых конфликтов с проведением табелей учета рабочего времени.
---
Если в компании большой штат и ручной ввод дней для каждого отпуска трудозатратен, можно применить еще один альтернативный подход. Мы можем настроить доплату до оклада не за дни отпуска, а в целом за месяц. Программа сравнит целевой оклад сотрудника за полный месяц с суммой фактически начисленного оклада за отработанные дни и начисленных отпускных за этот же месяц.
Для реализации этого сценария выполним следующие настройки:
МАКС(Оклад * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней - РасчетнаяБаза, 0)
В этом случае программа начислит сотруднику доплату до полного оклада за весь месяц, сравнивая сумму фактически отработанных дней и отпускных с его плановым окладом.
---
На форуме также упомянут интересный и изящный методический прием. Его суть заключается в создании «технического» начисления:
МАКС(0, -РасчетнаяБаза)
Этот метод часто применяется для сложных видов доплат (например, до МРОТ), однако он требует глубокого понимания взаимосвязей вытеснений и расчетных баз в системе.
---
Независимо от того, какой способ настройки вы выберете, крайне важно правильно настроить параметры налогообложения и отражения начисления в учете среднего заработка. Ошибки здесь могут повлечь за собой штрафы от контролирующих органов.
Настройка в 1С:ЗУП: Перейдем на вкладку Средний заработок в карточке начисления и обязательно снимем флажки учета этого начисления при расчете среднего заработка. Если этого не сделать, возникнет эффект «зацикливания»: текущая доплата увеличит средний заработок для следующего отпуска, из-за чего средний заработок вырастет, доплата изменится, и расчеты исказятся.
Мы подробно проанализировали проблему расчета доплаты до оклада во время отпуска в программе «1С:ЗУП 3.1». Выберите наиболее подходящий для вашей учетной политики метод, настройте формулы и параметры времени, и расчет зарплаты будет проходить быстро и без ошибок!