Почему неверно рассчитывается средний заработок после переноса из УПП 1.3 в ЗУП 3.1?

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

Переход с устаревшей конфигурации 1С:УПП 1.3 на современную 1С:ЗУП 3.1 — процесс трудоемкий, и одной из самых частых проблем является некорректный расчет среднего заработка. Чаще всего это проявляется в том, что календарные дни в периодах отсутствия (прогулов, неявок, болезней) не вычитаются из общего количества дней месяца, что приводит к занижению или завышению суммы отпускных и больничных. Разберем детально, почему это происходит и как это исправить.

Анализ механизма вытеснения и настройки приоритетов

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

Выясним причину через настройки начисления: перейдем в раздел Настройка — Начисления и найдем вид расчета «Отсутствие по невыясненной причине». Нас интересует вкладка Приоритет. Рассмотрим типичную ошибку настройки:

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

Работа с регистрами накопления для среднего заработка

Данные для расчета среднего заработка в ЗУП 3.1 хранятся не в самих документах начисления зарплаты, а в специализированных регистрах накопления. Чтобы понять, почему расчет неверный, нам нужно проанализировать содержимое следующих объектов:

Посмотрим на пример: если за август (31 календарный день) в регистре ДанныеОВремениДляРасчетаСреднегоОбщий стоит значение 31, несмотря на наличие документа прогула, значит, механизм вытеснения не сработал. Это может быть связано не только с приоритетами, но и с тем, что документ прогула не зафиксировал «сторнирование» времени в регистре.

Соблюдение хронологической последовательности проведения

ЗУП 3.1 крайне чувствительна к порядку проведения документов. Рассмотрим правильный алгоритм действий при вводе неявок:

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

Если документы уже были введены в неверном порядке, простое перепроведение может не помочь. Проанализируем ситуацию: система уже зафиксировала расчетные данные, и изменения в приоритетах «задним числом» не подтягиваются автоматически. В таком случае необходимо выполнить полную перерегистрацию данных. Для этого попробуем последовательно:

  1. Распровести документ начисления зарплаты.
  2. Перепровести документ отсутствия.
  3. Снова провести документ начисления зарплаты.

Особенности данных после переноса (документы «Перенос данных»)

Поскольку проблема возникла после переноса из УПП 1.3, важно понимать, что исторические данные (за периоды до даты начала работы в новой базе) хранятся в документах Перенос данных (обычно с кодами ЗП_СЗ и ЗП_СЗ_ФСС). Если ошибка в расчете среднего наблюдается в месяцах, которые были перенесены как «готовые данные», то изменение настроек начислений в текущем периоде на них не повлияет.

В этом случае нам придется либо вручную корректировать записи в документах Перенос данных, обращаясь к соответствующим регистрам (Данные о времени...), либо воспользоваться штатной обработкой «Обновление данных для расчета среднего заработка». Эта обработка находится в разделе Зарплата — Сервис — Обновление данных для расчета среднего заработка. Рассмотрим ее работу: она позволяет пересчитать показатели среднего на основе уже имеющихся в базе данных о времени и начислениях, учитывая актуальные настройки приоритетов.

Проверка регистра сведений «Перерасчет зарплаты»

Иногда после исправления всех настроек система продолжает выдавать старые цифры. Проанализируем регистр сведений Перерасчет зарплаты. ЗУП 3.1 автоматически ставит сотрудников в очередь на перерасчет, если вы меняете настройки видов расчета или документы прошлых периодов. Если в этом регистре висят записи по сотруднику, программа может игнорировать новые настройки до тех пор, пока перерасчет не будет выполнен или записи не будут принудительно удалены. Рекомендуем очистить этот регистр для проблемных сотрудников перед повторным расчетом среднего.

Технический контекст: ошибки релиза 3.1.7.106

Уделим внимание конкретной версии программы. Релиз 3.1.7 считается достаточно старым, и в нем присутствовали баги, связанные с распределением календарных дней в месяцах с невыясненными причинами отсутствия. В некоторых случаях система не видела «конец периода» отсутствия, если он не был явно зафиксирован в регистре, или некорректно отрабатывала вытеснение оклада по часам. Если вышеописанные методы не помогают, стоит рассмотреть возможность обновления конфигурации на более актуальный релиз ветки 3.1.

Резюме и практические советы

Чтобы окончательно решить проблему неверного расчета среднего заработка, выполним следующие шаги:

  1. Проверим настройки вида расчета Отсутствие по невыясненной причине. На вкладке Приоритет убедимся, что начисление не вытесняет само себя.
  2. Проверим, что это отсутствие добавлено в список Начисления, приоритет которых выше для вашего основного начисления (например, Оклад по дням).
  3. Разберем последовательность: сначала проводим Отсутствие, затем Начисление зарплаты.
  4. Если данные исторические (перенесенные) — правим документы Перенос данных или используем обработку обновления среднего заработка.
  5. Контролируем результат в регистрах Данные о времени для расчета среднего. Если там количество календарных дней уменьшилось пропорционально дням отсутствия — задача решена.

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

← На главную