В процессе работы с программами 1С:Зарплата и управление персоналом 3.1 или 1С:Зарплата и кадры государственного учреждения 3.1 пользователи иногда сталкиваются с неприятной ситуацией: при автоматическом заполнении документа Начисление зарплаты и взносов у некоторых сотрудников надбавка за выслугу лет (или любая другая плановая надбавка) отображается дважды. При этом в карточке сотрудника всё выглядит корректно, а лишних кадровых приказов в системе нет.
В этой статье мы подробно разберем, почему возникает такая ошибка, как проанализировать записи регистров и какими способами можно привести данные в порядок.
Для начала проанализируем внутреннюю архитектуру системы. В конфигурациях на базе 1С:ЗУП 3.1 для хранения сведений о плановых начислениях используется не один, а несколько регистров. Основной регистр — ПлановыеНачисления — хранит записи о том, какими документами и с какой даты назначены выплаты. Однако для ускорения работы отчетов и механизмов расчета система использует вспомогательный регистр — ПлановыеНачисленияИнтервальный.
Разберем ситуацию: если в основном регистре запись одна, а в интервальном по каким-то причинам (сбой при проведении документа, ошибка платформы, некорректный перенос данных) сформировалось две перекрывающиеся строки, документ Начисление зарплаты и взносов при заполнении «увидит» две действующие надбавки. Именно это мы и называем рассинхронизацией регистров.
Прежде всего, нам необходимо убедиться, что проблема действительно в интервалах. Для этого выполним следующие действия:
ПлановыеНачисленияИнтервальный.Используется. Если мы видим две строки на один и тот же период с установленной галочкой Используется, значит, мы нашли источник ошибки.Обратите внимание на колонку Регистратор. Часто обе записи ссылаются на один и тот же документ, например, Прием на работу или Изменение оплаты труда. Это явный признак технического сбоя в механизме формирования интервалов.
Рассмотрим самый простой и безопасный способ решения. Поскольку интервальные регистры заполняются автоматически при проведении кадровых документов, попробуем заставить систему пересчитать эти записи:
Прием на работу).ПлановыеНачисленияИнтервальный. В большинстве случаев после перепроведения система корректно перезаписывает интервалы, и лишние строки исчезают.Если обычное перепроведение не помогает и «фантомные» записи остаются в регистре, можно прибегнуть к программному методу очистки. Рассмотрим логику, которую применил автор темы: необходимо полностью удалить записи по конкретным сотрудникам из интервального регистра и заново провести документы-основания.
Для программиста это может выглядеть примерно так (пример для внешней обработки):
НаборЗаписей = РегистрыСведений.ПлановыеНачисленияИнтервальный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Сотрудник.Установить(ВыбСотрудник);
НаборЗаписей.Записать(); // Очищаем записи по сотруднику
После такой очистки необходимо обязательно перепровести кадровый документ, чтобы система создала правильные записи в пустом интервале.
Мало кто знает, что в ЗУП 3.1 есть скрытые механизмы для восстановления интервальных регистров. Если сотрудников с ошибками много, проанализируем возможность запуска обработки «Обновление интервальных регистров». В современных релизах она запускается автоматически регламентным заданием, но её можно вызвать принудительно. Это позволит системе «пересобрать» интервалы по всей организации, не заходя в каждый документ индивидуально.
Выясним важную деталь: даже если вы исправили данные в регистрах, в уже созданном и заполненном документе Начисление зарплаты и взносов задвоенные строки сами не исчезнут. Это происходит потому, что данные в таблицу Начисления подтягиваются в момент заполнения.
Чтобы исправить документ, выполните следующие действия:
Ctrl + A и используйте кнопку «Еще» — «Пересчитать сотрудников» в командной панели табличной части.Важно: Если и это не помогает, попробуйте полностью удалить сотрудника из документа и добавить его заново через кнопку «Подбор». Это принудительно инициализирует алгоритм сбора данных из актуальных (уже исправленных нами) регистров.
Проанализируем еще несколько причин, которые могут приводить к подобным симптомам:
Зарплата — Сервис — Перерасчеты. Если там висят записи по сотруднику, система может пытаться «доначислить» что-то из прошлого, создавая видимость задвоения. Удалите лишние записи перерасчетов, если они не актуальны.Таким образом, решение проблемы задвоения надбавок всегда сводится к трехуровневой проверке: Регистры -> Документы-основания -> Пересчет в начислении. Последовательное выполнение описанных шагов позволяет устранить ошибку даже в самых запущенных случаях после некорректного переноса данных или сбоев платформы.