Почему в 1С:ЗУП перестала учитываться индексация в командировках и отпусках и как это исправить?

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

Приветствуем вас! В практической работе расчетчика зарплаты и бухгалтера нередко возникают ситуации, когда после очередного обновления программы «1С:Зарплата и управление персоналом 3.1» привычные механизмы начинают давать сбой. Одной из таких неприятных проблем является внезапный отказ системы учитывать коэффициент индексации при расчете среднего заработка в документах «Командировка» или «Отпуск».

Особенно часто это проявляется в случаях, когда индексация на предприятии проводится с первого числа месяца, и в этот же самый день сотрудник отправляется в командировку или запланированный отпуск. Давайте подробно разберем, почему возникает эта ошибка, проанализируем внутреннее устройство регистров программы, выясним, почему «простые» технические решения могут быть опасны, и рассмотрим все возможные пути исправления ситуации.

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

Для начала давайте разберем, как программа сопоставляет данные об индексации и датах начала кадровых событий. Когда мы регистрируем индексацию заработка сотрудников, мы используем документ «Изменение плановых начислений» (или специализированный документ «Индексация заработка»). Этот документ делает записи в периодический регистр сведений КоэффициентИндексацииЗаработка.

Проанализируем время проведения документов в базе данных:

  1. Документы межрасчетных выплат и кадровых событий, такие как «Командировка» или «Отпуск», при проведении на первый день месяца автоматически устанавливают время начала события на начало суток — 00:00:00.
  2. В то же время документы изменения начислений (включая индексацию) записывают новые значения коэффициентов в регистр сведений со временем по умолчанию 00:01:00 (или даже позже, в зависимости от очередности проведения документов в течение дня).

Из-за этой разницы в одну минуту (или даже в несколько секунд) возникает системная коллизия. Запрос расчета среднего заработка обращается к виртуальной таблице «Срез последних» регистра КоэффициентИндексацииЗаработка на момент начала события (то есть на 00:00:00). В эту долю секунды новый коэффициент еще «не наступил» для базы данных, так как он зарегистрирован только на 00:01:00. В результате программа рассчитывает средний заработок без учета индексации.

Эта ошибка официально зарегистрирована фирмой «1С» под кодом 30170613 (номер обращения HL-73095). Её официальное описание звучит так: «Индексация в день начала события, приходящегося на 1 день - 1 число, не учитывается».

Опасность изменения периодичности регистра в конфигураторе

Некоторые системные администраторы и начинающие программисты пытаются решить проблему «в лоб» — изменив структуру метаданных в конфигураторе. На форумах часто можно встретить совет: изменить периодичность регистра сведений КоэффициентИндексацииЗаработка со значения «В пределах дня» на значение «В пределах секунды».

Давайте разберем, почему делать это категорически не рекомендуется и к каким критическим ошибкам в расчете это приведет:

  1. При изменении периодичности регистра на «секундную» программа действительно начинает видеть коэффициент индексации, так как теперь записи точнее позиционируются во времени.
  2. Однако встроенный механизм расчета среднего заработка в 1С:ЗУП жестко завязан на подневной учет изменений планового заработка. Как только периодичность меняется на секунды, расчетный модуль начинает некорректно обрабатывать данные внутри одного и того же дня.
  3. На практике это приводит к непредвиденным ошибкам с итоговыми суммами. Например, если командировка длится 10 дней (с 1 по 10 октября) со среднедневным заработком 2000 рублей, то вместо положенных 20 000 рублей программа может начислить, к примеру, 21 900 рублей. Лишняя сумма оказывается среднедневным заработком без индексации, который программа ошибочно добавляет из-за некорректного среза данных на стыке периодов.

Поэтому запомните важное правило: никогда не меняйте периодичность типовых регистров сведений, связанных с расчетом зарплаты, без согласования с методологами 1С. Это неизбежно приведет к скрытым ошибкам в учете среднего заработка, которые будет крайне сложно обнаружить при аудите.

Как регламентирует эту ситуацию законодательство (Постановление № 922)

Чтобы лучше понять логику работы программы, давайте обратимся к законодательству РФ. Порядок расчета среднего заработка регулируется Постановлением Правительства РФ № 922. Согласно этому документу:

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

Пошаговые способы решения проблемы без изменения конфигурации

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

Способ 1. Обновление конфигурации (Рекомендуемый)

Самый правильный и надежный способ — обновить программу до актуального релиза. Ошибка 30170613 была успешно исправлена разработчиками в тестовом релизе 3.1.12.12 и перенесена во все последующие стабильные тиражные выпуски (включая ветку 3.1.10.223 и старше). После обновления расчет будет производиться корректно в автоматическом режиме.

Способ 2. Корректировка времени проведения документов через групповое изменение реквизитов

Если оперативно обновиться нет возможности (например, база сильно доработана или проходит период сдачи отчетности), мы можем обойти ошибку, скорректировав время документов.

Проанализируем порядок действий:

  1. Открываем обработку «Групповое изменение реквизитов» (раздел «Администрирование» — «Обслуживание» — «Корректировка данных»).
  2. Выбираем тип объекта — «Изменение плановых начислений» (или другой документ, которым регистрировалась индексация).
  3. Настраиваем отбор по конкретному документу индексации от 1-го числа месяца.
  4. Нам необходимо изменить время документа на более раннее, например, на 23:59:59 дня, предшествующего началу индексации (например, 30 сентября вместо 1 октября).
  5. После изменения времени проводим документ заново. Теперь при формировании «Командировки» от 1 октября виртуальная таблица на 00:00:00 увидит действующий коэффициент, так как он вступил в силу секундой ранее.

Способ 3. Ручной ввод коэффициента в документе кадрового события

Для единичных случаев исправления расчетов у конкретных сотрудников отлично подойдет ручная корректировка среднего заработка прямо в документе:

  1. Открываем документ «Командировка» или «Отпуск».
  2. Нажимаем на зеленую круглую кнопку с изображением карандаша рядом с полем расчета среднего заработка («Ввод данных для расчета среднего заработка»).
  3. В открывшемся диалоговом окне вручную заполняем или корректируем поле с коэффициентом индексации.
  4. Нажимаем «ОК» и пересчитываем документ. Данные зафиксируются непосредственно в документе расчета.

Дополнительная ловушка индексации: ошибка 70085700

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

При включении этой опции расчет командировочных переносился в документы начисления зарплаты за первую половину месяца или по итогам месяца. Программа при этом игнорировала коэффициент индексации, если событие начиналось в день индексации. Если вы столкнулись с этим, лучшим решением будет временное отключение этой галочки, расчет командировки отдельным межрасчетным документом и последующее обновление на исправление этой ошибки (доступно в версиях 3.1.27.246 / 3.1.29.78 и выше).

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

← На главную