Приветствуем вас! В практической работе расчетчика зарплаты и бухгалтера нередко возникают ситуации, когда после очередного обновления программы «1С:Зарплата и управление персоналом 3.1» привычные механизмы начинают давать сбой. Одной из таких неприятных проблем является внезапный отказ системы учитывать коэффициент индексации при расчете среднего заработка в документах «Командировка» или «Отпуск».
Особенно часто это проявляется в случаях, когда индексация на предприятии проводится с первого числа месяца, и в этот же самый день сотрудник отправляется в командировку или запланированный отпуск. Давайте подробно разберем, почему возникает эта ошибка, проанализируем внутреннее устройство регистров программы, выясним, почему «простые» технические решения могут быть опасны, и рассмотрим все возможные пути исправления ситуации.
Для начала давайте разберем, как программа сопоставляет данные об индексации и датах начала кадровых событий. Когда мы регистрируем индексацию заработка сотрудников, мы используем документ «Изменение плановых начислений» (или специализированный документ «Индексация заработка»). Этот документ делает записи в периодический регистр сведений КоэффициентИндексацииЗаработка.
Проанализируем время проведения документов в базе данных:
Из-за этой разницы в одну минуту (или даже в несколько секунд) возникает системная коллизия. Запрос расчета среднего заработка обращается к виртуальной таблице «Срез последних» регистра КоэффициентИндексацииЗаработка на момент начала события (то есть на 00:00:00). В эту долю секунды новый коэффициент еще «не наступил» для базы данных, так как он зарегистрирован только на 00:01:00. В результате программа рассчитывает средний заработок без учета индексации.
Эта ошибка официально зарегистрирована фирмой «1С» под кодом 30170613 (номер обращения HL-73095). Её официальное описание звучит так: «Индексация в день начала события, приходящегося на 1 день - 1 число, не учитывается».
Некоторые системные администраторы и начинающие программисты пытаются решить проблему «в лоб» — изменив структуру метаданных в конфигураторе. На форумах часто можно встретить совет: изменить периодичность регистра сведений КоэффициентИндексацииЗаработка со значения «В пределах дня» на значение «В пределах секунды».
Давайте разберем, почему делать это категорически не рекомендуется и к каким критическим ошибкам в расчете это приведет:
Поэтому запомните важное правило: никогда не меняйте периодичность типовых регистров сведений, связанных с расчетом зарплаты, без согласования с методологами 1С. Это неизбежно приведет к скрытым ошибкам в учете среднего заработка, которые будет крайне сложно обнаружить при аудите.
Чтобы лучше понять логику работы программы, давайте обратимся к законодательству РФ. Порядок расчета среднего заработка регулируется Постановлением Правительства РФ № 922. Согласно этому документу:
В последних версиях 1С:ЗУП 3.1 разработчики изменили визуальное представление этого механизма. Теперь, если вы откроете форму «Ввод данных для расчета среднего заработка», вы можете увидеть, что коэффициент индексации в таблице равен 1. Это логично, ведь исторический заработок за расчетный период индексировать не нужно. Однако сам повышающий коэффициент будет применен на этапе финального расчета суммы. Увидеть его применение можно в печатной форме «Подробный расчет начислений» или на вкладке «Начислено (подробно)».
Если ваша база находится на старом релизе и вы столкнулись с этой ошибкой, рассмотрим эффективные способы ее обхода, которые не повредят структуру данных.
Самый правильный и надежный способ — обновить программу до актуального релиза. Ошибка 30170613 была успешно исправлена разработчиками в тестовом релизе 3.1.12.12 и перенесена во все последующие стабильные тиражные выпуски (включая ветку 3.1.10.223 и старше). После обновления расчет будет производиться корректно в автоматическом режиме.
Если оперативно обновиться нет возможности (например, база сильно доработана или проходит период сдачи отчетности), мы можем обойти ошибку, скорректировав время документов.
Проанализируем порядок действий:
Для единичных случаев исправления расчетов у конкретных сотрудников отлично подойдет ручная корректировка среднего заработка прямо в документе:
В процессе работы с индексацией в более новых релизах 1С:ЗУП (вплоть до веток 3.1.27 и 3.1.29) пользователи также сталкивались с похожей проблемой (ошибка 70085700). Она возникала, если в документе «Командировка» была установлена галочка «Рассчитывать командировку с авансом и зарплатой».
При включении этой опции расчет командировочных переносился в документы начисления зарплаты за первую половину месяца или по итогам месяца. Программа при этом игнорировала коэффициент индексации, если событие начиналось в день индексации. Если вы столкнулись с этим, лучшим решением будет временное отключение этой галочки, расчет командировки отдельным межрасчетным документом и последующее обновление на исправление этой ошибки (доступно в версиях 3.1.27.246 / 3.1.29.78 и выше).
Подводя итог, отметим, что при возникновении проблем с расчетом среднего заработка после индексации первым делом стоит проверить время проведения документов и актуальность текущего релиза конфигурации. Ни в коем случае не прибегайте к изменению периодичности регистров в конфигураторе, чтобы избежать критических расхождений в суммах начислений сотрудников.