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