При расчете заработной платы сотрудников, работающих на неполную ставку (например, внешних или внутренних совместителей на 0.8 ставки), бухгалтеры часто сталкиваются с неприятной проблемой. Если в течение месяца такой сотрудник привлекался к работе в выходные или праздничные дни, и на него был оформлен документ «Оплата праздничных и выходных дней организаций», то при последующем расчете основного начисления в документе «Начисление зарплаты работникам организаций» сумма оклада необоснованно завышается.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем внутренние механизмы подсистемы расчета зарплаты в 1С:Управлении производственным предприятием (УПП) редакции 1.3, а также рассмотрим несколько способов решения этой задачи — от настройки формул до методически верного ведения учета.
--- ### Почему происходит завышение оклада? Выясняем причину
Рассмотрим ситуацию изнутри. Допустим, для сотрудника настроена произвольная формула расчета оклада:
ТарифнаяСтавкаМесячная / 100 * 80 / НормаВремениВДнях * ОтработаноВремениВДнях
При стандартном расчете без переработок формула отрабатывает корректно. Однако при проведении документа «Оплата праздничных и выходных дней» ситуация меняется:
ОсновныеНачисленияОрганизаций с видом времени «Выходные и праздничные дни».ОтработаноВремениВДнях собирает все фактически отработанные дни за этот период. Соответственно, дни работы в выходные суммируются с днями работы по графику.ОтработаноВремениВДнях увеличивается (например, вместо 22 дней по графику получается 26 дней).Ниже представлены три способа решения этой проблемы в зависимости от того, готовы ли вы менять настройки графиков работы или хотите скорректировать только формулу расчета.
---
Использование произвольных формул с жестко зашитыми коэффициентами (такими как / 100 * 80) в 1С:УПП 1.3 считается методологической ошибкой. В программе заложен мощный встроенный механизм расчета неполного рабочего времени, который автоматически исключает подобные наложения.
Разберем по шагам, как правильно настроить систему:
ГрафикиРаботы и создаем график, например, «32-часовая рабочая неделя (0.8 ставки)».0.8.При такой схеме система самостоятельно рассчитает долю оклада пропорционально времени по графику неполного времени относительно графика полного времени. При этом дни работы в праздничные и выходные дни не будут удваивать основную тарифную ставку в документе «Начисление зарплаты», так как расчет базируется на выверенных нормах времени.
---
Если на вашем предприятии по каким-то причинам невозможно отказаться от произвольной формулы расчета, мы можем скорректировать математическую модель расчета так, чтобы показатель фактически отработанного времени не превышал установленную норму.
Для этого в формулу расчета необходимо внедрить функцию ограничения максимума Мин(). Изменим формулу начисления следующим образом:
ТарифнаяСтавкаМесячная / 100 * 80 / НормаВремениВДнях * Мин(НормаВремениВДнях, ОтработаноВремениВДнях)
Проанализируем работу этой формулы:
Мин() выберет значение нормы времени (например, 22 дня), и оклад рассчитается в размере ровно 80%.ОтработаноВремениВДнях стал равен 26 дням при норме 22 дня, функция Мин(22, 26) вернет значение нормы — 22. Начисление оклада останется в пределах нормы, а переработка будет оплачена строго по документу «Оплата праздничных и выходных дней».Мин(22, 15) вернет фактические 15 дней, и оклад будет урезан пропорционально пропущенным дням, что также является абсолютно верным.Важный нюанс для анализа: Обратите внимание, что если сотрудник заболел, пропустил 5 рабочих дней, а затем компенсировал их выходом в свои выходные дни (что было зафиксировано документально), то при использовании формулы с функцией Мин() система вернет его фактическое время (17 дней по графику + 5 дней в выходные = 22 дня). Оклад будет выплачен в полном объеме, но это может потребовать дополнительного согласования с методологами вашей компании.
---
Иногда более точным решением является перевод расчета времени сотрудника на часовые показатели. При расчете в часах округления и наложения документов регистрируются более прозрачно. Формула в таком случае примет следующий вид:
ТарифнаяСтавкаМесячная / НормаВремениВЧасах * ОтработаноВремениВЧасах
При этом оклад изначально указывается с учетом занимаемой ставки (то есть уже уменьшенный на 0.8), либо в формулу добавляется соответствующий коэффициент. Использование часовых показателей позволяет избежать расхождений, связанных с разной продолжительностью рабочих смен в предпраздничные дни.
---
Разберем еще одну важную проблему, упомянутую в ходе обсуждения расчета зарплаты в релизах УПП 1.3 (в частности, 1.3.125 - 1.3.126). Она касается выгрузки проводок по сдельным нарядам.
Суть проблемы: Для сотрудников, у которых в расчетном месяце были только начисления по сдельным нарядам, суммы НДФЛ и страховых взносов не попадают в проводки документа «Отражение зарплаты в регламентированном учете».
Если вы столкнулись с этой ошибкой, исправить ее в конфигураторе можно следующим образом. Разберем по шагам изменения в модуле документа ОтражениеЗарплатыВРеглУчете:
1. Найдем процедуру Автозаполнение(). Заменим самую последнюю строку вызова процедуры:
// Было:
АвтозаполнениеПроводок();
// Стало:
АвтозаполнениеПроводок(ЗапросПоСотрудникам);
2. Найдем процедуру АвтозаполнениеПроводок(). Изменим ее объявление и удалим строку формирования запроса, так как теперь мы передаем его в качестве параметра:
// Было:
Процедура АвтозаполнениеПроводок() Экспорт
ЗапросПоСотрудникам = СформироватьЗапросПоСотрудникам();
...
КонецПроцедуры
// Стало:
Процедура АвтозаполнениеПроводок(ЗапросПоСотрудникам = Неопределено) Экспорт
Если ЗапросПоСотрудникам = Неопределено Тогда
ЗапросПоСотрудникам = СформироватьЗапросПоСотрудникам();
КонецЕсли;
...
КонецПроцедуры
Если ваша конфигурация находится на полной поддержке и вы не хотите вносить изменения в код программы, воспользуйтесь обходным путем: добавьте в документ «Начисление зарплаты» по такому сотруднику «фиктивную» строку со стандартным начислением (например, «Оклад по дням») с нулевым результатом расчета. Наличие записи в регистре расчета заставит алгоритмы автозаполнения «увидеть» сотрудника и корректно перенести его НДФЛ и страховые взносы по сдельной оплате в регламентированные проводки.