Почему премии не попадают в средний заработок в ЗУП 3.1 после переноса из ЗУП 2.5 и как это исправить?

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

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

В этой статье мы подробно разберем, почему возникает данная проблема, как на нее влияет перенос исторических данных, и рассмотрим эффективные варианты ее решения — от административной настройки до точечной программной доработки.

Выясняем причину: законодательный и технический контекст

Для того чтобы понять, почему программа ведет себя подобным образом, проанализируем разницу в архитектуре двух конфигураций. Нам необходимо обратиться к законодательной базе и настройкам программных продуктов.

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

В программе 1С:ЗУП 3.1 разработчики полностью отказались от этой настройки. Свое решение они мотивировали строгим следованием Письму Минздравсоцразвития РФ от 26.06.2008 № 2337-17. Согласно этому документу:

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

Именно поэтому при расчете среднего заработка в калькуляторе мы можем видеть премию, но в итоговый расчет она попадает лишь частично или не попадает вовсе.

Как на это влияет перенос данных из ЗУП 2.5?

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

Эти документы напрямую делают записи в регистр накопления Данные о начислениях для расчета среднего заработка (общий). При переносе премий из ЗУП 2.5 в этот регистр записывается не только итоговая сумма, но и сведения о базовом периоде (дата начала и окончания периода, за который была начислена премия, а также количество месяцев базового периода).

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

Поскольку вручную править базовые периоды для сотен и тысяч сотрудников в документах начисления среднего заработка невозможно, разберем системные методы исправления ситуации.

Способ 1. Использование расширения конфигурации (Рекомендуемый программный путь)

Если на вашем предприятии принято решение сохранить логику расчета, которая использовалась в ЗУП 2.5 (то есть не уменьшать премии, начисленные пропорционально времени), то оптимальным вариантом будет создание небольшого расширения. Это позволит не снимать конфигурацию с поддержки и без проблем устанавливать последующие обновления.

Для реализации этого поведения нам нужно переопределить работу одной ключевой функции в общем модуле. Разберем по шагам, что нужно сделать:

  1. Создайте новое расширение конфигурации в режиме «Конфигуратор».
  2. Добавьте в расширение общий модуль УчетСреднегоЗаработкаКлиентСервер.
  3. Найдите в этом модуле функцию УменьшатьПремииПроцентомНачисленныеЗаВремяНеВходящееВРасчетныйПериод().
  4. Измените логику работы функции так, чтобы она всегда возвращала значение Ложь.

Пример кода, который необходимо поместить в расширение:


&Вместо("УменьшатьПремииПроцентомНачисленныеЗаВремяНеВходящееВРасчетныйПериод")
Функция Расш_УменьшатьПремииПроцентомНачисленныеЗаВремяНеВходящееВРасчетныйПериод()
    // Отключаем принудительное уменьшение премий, выходящих за рамки расчетного периода
    Возврат Ложь; 
КонецФункции

После подключения и активации этого расширения система перестанет пропорционально уменьшать премии, чей базовый период выходит за рамки расчетного, и они начнут учитываться в среднем заработке в полном объеме, как это было в ЗУП 2.5.

Способ 2. Корректировка исторических данных переноса

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

  1. Перейдите в раздел Администрирование, далее выберите пункт Переносы данных.
  2. Найдите документы с кодом ЗП_СЗ за те периоды, в которых начислялись проблемные премии.
  3. Откройте вкладку регистра накопления Данные о начислениях для расчета среднего заработка (общий).
  4. Найдите строки с начислениями ваших премий и проанализируйте колонки «Дата начала базового периода», «Дата окончания базового периода» и «Количество месяцев базового периода».
  5. Скорректируйте эти даты так, чтобы они строго укладывались в рамки расчетного периода (например, сделайте базовый период равным одному месяцу начисления).

После проведения скорректированных документов перерасчет среднего заработка в документах отпусков и командировок будет выполняться корректно, без урезания сумм.

Способ 3. Настройка видов начислений для будущих премий

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

  1. Перейдем в раздел Настройка — Начисления и откроем карточку нужной премии.
  2. На вкладке Средний заработок обратим внимание на переключатель «Премия начисляется за». Для ежемесячных или квартальных премий рекомендуется указывать «Текущий месяц» или «Предыдущий месяц», чтобы программа автоматически и корректно определяла базовый период при проведении документов.
  3. Для годовых премий критически важно правильно установить переключатель года (Текущий или Предыдущий), за который начисляется данная премия.
  4. На вкладке Основное в поле «Начисление выполняется» для сложных премий (особенно годовых и квартальных) лучше использовать вариант «По отдельному документу» с использованием документа Премия. Это позволяет фиксировать точные периоды и суммы начисления в регистре сведений.

Проанализировав все три способа, мы можем сделать вывод, что выбор конкретного решения зависит от методологических стандартов, принятых в вашей организации. Если бухгалтерия настаивает на неизменности алгоритмов ЗУП 2.5, лучшим выбором будет использование расширения конфигурации (Способ 1). Если же вы стремитесь к полному соответствию типовой методологии 1С, то необходимо скорректировать исторические данные (Способ 2) и правильно настроить новые начисления (Способ 3).

← На главную