Почему задваиваются надбавки за выслугу лет в 1С:ЗУП 3.1 и как это исправить

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

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

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

Причина проблемы: интервальные регистры

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

Разберем ситуацию: если в основном регистре запись одна, а в интервальном по каким-то причинам (сбой при проведении документа, ошибка платформы, некорректный перенос данных) сформировалось две перекрывающиеся строки, документ Начисление зарплаты и взносов при заполнении «увидит» две действующие надбавки. Именно это мы и называем рассинхронизацией регистров.

Шаг 1. Анализ регистра «Плановые начисления (интервальный)»

Прежде всего, нам необходимо убедиться, что проблема действительно в интервалах. Для этого выполним следующие действия:

  1. Перейдем в функции для технического специалиста (или через «Все функции»).
  2. Найдем регистр сведений ПлановыеНачисленияИнтервальный.
  3. Установим отбор по проблемному сотруднику.
  4. Проверим колонку Используется. Если мы видим две строки на один и тот же период с установленной галочкой Используется, значит, мы нашли источник ошибки.

Обратите внимание на колонку Регистратор. Часто обе записи ссылаются на один и тот же документ, например, Прием на работу или Изменение оплаты труда. Это явный признак технического сбоя в механизме формирования интервалов.

Шаг 2. Исправление через перепроведение документов

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

  1. Найдем документ-регистратор, который указан в «плохих» записях регистра (например, Прием на работу).
  2. Снимем его с проведения и проведем заново.
  3. Снова проверим регистр ПлановыеНачисленияИнтервальный. В большинстве случаев после перепроведения система корректно перезаписывает интервалы, и лишние строки исчезают.

Шаг 3. Программная очистка регистра (для сложных случаев)

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

Для программиста это может выглядеть примерно так (пример для внешней обработки):


НаборЗаписей = РегистрыСведений.ПлановыеНачисленияИнтервальный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Сотрудник.Установить(ВыбСотрудник);
НаборЗаписей.Записать(); // Очищаем записи по сотруднику

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

Шаг 4. Использование типовых инструментов обновления

Мало кто знает, что в ЗУП 3.1 есть скрытые механизмы для восстановления интервальных регистров. Если сотрудников с ошибками много, проанализируем возможность запуска обработки «Обновление интервальных регистров». В современных релизах она запускается автоматически регламентным заданием, но её можно вызвать принудительно. Это позволит системе «пересобрать» интервалы по всей организации, не заходя в каждый документ индивидуально.

Шаг 5. Работа с документом «Начисление зарплаты и взносов»

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

Чтобы исправить документ, выполните следующие действия:

  1. Выделите проблемного сотрудника в списке.
  2. Нажмите правой кнопкой мыши и выберите «Пересчитать сотрудника».
  3. Если групповой пересчет через правую кнопку не срабатывает (что бывает в некоторых версиях платформы), выделите всех сотрудников через Ctrl + A и используйте кнопку «Еще» — «Пересчитать сотрудников» в командной панели табличной части.

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

Дополнительные факторы влияния

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

Таким образом, решение проблемы задвоения надбавок всегда сводится к трехуровневой проверке: Регистры -> Документы-основания -> Пересчет в начислении. Последовательное выполнение описанных шагов позволяет устранить ошибку даже в самых запущенных случаях после некорректного переноса данных или сбоев платформы.

← На главную