При работе с конфигурацией 1С:Управление производственным предприятием (УПП) версии 1.3.244.1 и последующими релизами пользователи столкнулись с критической проблемой некорректного расчета среднего заработка. Эта ошибка затрагивает расчет отпускных, выплат при увольнении, а также правильность индексации и отражения дней в расчетном периоде. Возникли серьезные расхождения между ожидаемыми суммами и тем, что фактически начисляла программа. Давайте подробно рассмотрим эту проблему, проанализируем предлагаемые решения и разберем, как восстановить корректность расчетов.
Начиная с обновления 1.3.244.1, пользователи обнаружили, что система перестала корректно рассчитывать средний заработок. Основные проявления этой ошибки заключались в следующем:
Методологически, расчет среднего заработка в 1С:УПП должен строго соответствовать законодательству. В базу для расчета включаются все фактические начисления за отработанное время за предыдущие 12 месяцев (оклад, сдельный заработок, надбавки, премии), за исключением материальной помощи, компенсационных выплат, подарков, дивидендов, а также сумм, начисленных за периоды, исключаемые из расчетного (отпускные, больничные, командировочные). Индексация производится при повышении окладов для всех сотрудников, филиала или подразделения, с использованием коэффициента, определяемого делением новых окладов на старые. Неправильная настройка или баги в этом процессе могут привести к значительным искажениям.
Многие пользователи, столкнувшись с проблемой, пытались найти обходные пути. Один из первых подходов заключался в изменении настроек Плана видов расчета СреднийЗаработок:
Основном заработке: индексируемый только оклад по дням, оклад по часам, оплаты по дневному и по часовому тарифу.РасчетСреднегоЗаработка попадают данные по времени, переносили в основной заработок: неиндексируемый.Однако этот подход является ошибочным и не рекомендуется. Как выяснилось, он приводит к тому, что надбавки (за вредность, ночные часы, праздничные дни и т.д.) не индексируются, хотя по закону должны. В результате сумма, которая делится на отработанные дни без индексации доплат, становится меньше, и средний заработок рассчитывается некорректно.
1С подтвердила наличие ошибки. В ответ на обращения пользователей разработчики обещали исправления в последующих релизах. Однако опыт показал, что релизы 1.3.245.1, 1.3.245.2 и даже 1.3.245.3 не полностью решали проблему. Несмотря на то, что в списке исправлений для 1.3.245.2 фигурировала позиция 60021628 Оплата по среднему заработку неверно рассчитывается сумма начисления, пользователи продолжали сообщать о проблемах, таких как «начисление отпуска режется в половину» или «расчет при увольнении не исправлен и режет в половину».
Это подчеркивает важность самостоятельной проверки после каждого обновления и готовности к локальным исправлениям, если официальные патчи запаздывают или не решают проблему полностью.
Поскольку официальные исправления либо запаздывали, либо были неполными, сообщество 1С-разработчиков предложило несколько программных решений. Рассмотрим их подробнее.
Одно из ключевых исправлений, которое помогло многим пользователям, касалось общего модуля ПроведениеРасчетовПереопределяемый и функции ПолучитьДанныеДляРасчета2025.
Шаги по исправлению:
ПроведениеРасчетовПереопределяемый.ПолучитьДанныеДляРасчета2025.ДанныеОСреднемЗаработкеТекст, необходимо найти четыре места, где встречается условие:
|КОГДА РасчетСреднегоЗаработка.Начисление.КодДоходаНДФЛ = ЗНАЧЕНИЕ(Справочник.ДоходыНДФЛ.РайонныеСеверныеНадбавки)
//Начало изменений 08.04.25
| или РасчетСреднегоЗаработка.Начисление.ВидВремени <> ЗНАЧЕНИЕ(Перечисление.ВидыВремени.ОтработанноеВПределахНормы)
//Конец изменений 08.04.25
После применения этой правки бухгалтеры сообщали, что расчеты стали выглядеть корректными. Однако стоит учитывать, что кнопки «Рассчитать» на вкладке «Условия» и «Рассчитать начисления» на вкладке «Расчет среднего заработка» в документе «Начисление отпуска» могли продолжать вести себя по-разному, хотя среднедневной заработок рассчитывался одинаково. В релизе 1.3.245.3 поведение этих кнопок было заявлено как одинаковое.
В релизе 1.3.245.3, даже после частичных исправлений, могла сохраняться проблема с документом «Расчет при увольнении сотрудника организации». Разработчик добавил в РегистрыРасчета.РасчетСреднегоЗаработка новый реквизит Начисление, но в некоторых документах забыл обновить процедуры, которые заполняют данные для этого регистра.
Шаги по исправлению:
ДобавитьСтрокуРасчетаСреднего.
//ЗаполнитьЗначенияСвойств(Движение,ВыборкаПоСтрокамДокумента,СтрокаСвойствИзСтрокиДокумента);
ЗаполнитьЗначенияСвойств(Движение,ВыборкаПоСтрокамДокумента); //фиксик
Начисление будет правильно заполняться при формировании движений по регистру расчета среднего заработка, устраняя ошибку, которая могла приводить к некорректным суммам при увольнении.
На ранних этапах поиска решения некоторые пользователи предлагали изменить агрегатную функцию СУММА на МАКСИМУМ для полей ОтработаноДней, ОтработаноДнейПособий, ОтработаноДнейПособий2010, ОтработаноЧасов в том же общем модуле ПроведениеРасчетовПереопределяемый, в функции ПолучитьДанныеДляРасчета2025. Строка 83 функции содержит соответствующий запрос.
Пример изменения:
Вместо:
| СУММА(РасчетСреднегоЗаработка.ОтработаноДней) КАК ОтработаноДней,
Предлагалось:
| МАКСИМУМ(РасчетСреднегоЗаработка.ОтработаноДней) КАК ОтработаноДней,
Этот подход также давал положительные результаты у некоторых пользователей, но не был универсальным. После применения этого изменения кнопка «Рассчитать» на вкладке «Условия» и «Рассчитать начисления» на вкладке «Расчет среднего заработка» в документе «Начисление отпуска» могли менять сумму начисления, иногда приводя её к правильной. Однако, учитывая дальнейшие рекомендации и более точные исправления (как в пункте 1), изменение СУММА на МАКСИМУМ может быть не самым оптимальным или полным решением.
Даже после применения вышеуказанных исправлений, в некоторых релизах (например, 1.3.245.3) могли появляться новые нюансы:
Для минимизации проблем с расчетом среднего заработка и других начислений в 1С:УПП мы рекомендуем:
Борьба с ошибками в расчете среднего заработка в 1С:УПП требует внимательности и готовности к локальным корректировкам. Применяя предложенные решения и следуя рекомендациям, мы можем значительно улучшить корректность расчетов в системе.