Как исправить задвоение северной надбавки в 1С:ЗУП 3?

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

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

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

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

Почему двоится начисление? Технический анализ ситуации

Прежде чем переходить к исправлению, проанализируем архитектуру хранения плановых начислений в системе. В отличие от старых версий программы (например, ЗУП 2.5), где действовал простой принцип вытеснения и замещения, в ЗУП 3 реализован более гибкий, но и более сложный механизм.

Основные данные хранятся в следующих регистрах сведений:

Ключевым фактором здесь выступает измерение ДокументОснование в регистре сведений ПлановыеНачисления. Когда мы назначаем сотруднику начисление, система делает запись в регистр, жестко привязывая ее к документу-регистратору. Если мы вводим документ «Начальная штатная расстановка» и указываем там северную надбавку, создается первая запись с соответствующим документом-основанием.

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

---

Способ 1. Корректировка исходного технического документа (Исправление «задним числом»)

Если ошибка тянется несколько месяцев, но период переноса данных еще доступен для редактирования, наиболее правильным решением с точки зрения логики базы данных будет корректировка первичного ввода.

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

Выполним следующие шаги для исправления:

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

Важное предупреждение! Проведение документов «задним числом» в 1С:ЗУП автоматически регистрирует необходимость перерасчетов. Программа предполагает, что раз изменились исходные плановые данные за прошлые месяцы, то необходимо пересчитать зарплату сотрудников за весь этот период. Чтобы избежать нежелательных сторно-строк в текущем месяце, выполним очистку зарегистрированных перерасчетов:

  1. Перейдем в раздел Зарплата — Сервис — Перерасчеты.
  2. Найдем записи по нашим сотрудникам, у которых мы только что скорректировали штатную расстановку.
  3. Выделим эти записи и нажмем кнопку Отменить (или удалим их из списка).
  4. Дополнительно рекомендуется запустить процедуру обновления ФОТ для этих сотрудников через их карточки, чтобы плановый фонд оплаты труда рассчитывался корректно.

---

Способ 2. Прекращение начисления без изменения первичных документов (Текущей датой)

Часто кадровые и расчетные службы категорически против изменения документов прошлых периодов (особенно если база находится на аудите или уже сдана годовая отчетность). Кроме того, кадровики могут возражать против создания фиктивных кадровых переводов с отменой начисления, чтобы не «мусорить» в журнале кадровых документов лишними приказами Т-5.

В таком случае мы воспользуемся специализированными документами изменения оплаты труда. Рассмотрим подробнее документ «Изменение плановых начислений». Этот документ не делает кадровых движений, не формирует приказов, а работает исключительно с регистрами расчета.

Разберем по шагам, как прекратить действие одной из надбавок:

  1. Перейдем в раздел Зарплата — Изменение оплаты сотрудников.
  2. Создадим новый документ Изменение плановых начислений.
  3. Установим дату документа (например, первое число текущего месяца, с которого мы хотим прекратить ручное удаление строк).
  4. С помощью кнопки Подбор или Добавить выберем сотрудников, у которых задвоилась надбавка.
  5. Нажмем на кнопку Еще над табличной частью сотрудников и выберем пункт Начисления -> Удалить начисление у всех сотрудников. В появившемся окне выберем «Северная надбавка».
  6. Программа установит действие Прекратить для северной надбавки.
  7. Важный нюанс: обратите внимание на колонку Документ-основание в строке прекращаемого начисления. Нам нужно прекратить действие именно того начисления, которое было создано ошибочным документом (например, «Начальной штатной расстановкой»). Вторая надбавка, созданная корректным «Кадровым переводом», должна остаться действующей.
  8. Проведем документ.

В качестве альтернативы для точечного исправления по одному сотруднику можно использовать документ «Изменение оплаты труда» (также находится в журнале изменений оплаты сотрудников). В нем достаточно поставить флаг «Изменить начисления» и для лишней надбавки выбрать действие «Отменить».

---

Способ 3. Программное прекращение действия надбавки (Для разработчиков)

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

Рассмотрим пример кода на встроенном языке 1С:


// Создаем новый документ изменения плановых начислений
НовыйДокумент = Документы.ИзменениеПлановыхНачислений.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "7701010101");
НовыйДокумент.ДатаИзменения = НачалоМесяца(ТекущаяДата());
НовыйДокумент.Комментарий = "Программное исправление задвоения Северной надбавки";

// Заполняем табличную часть сотрудников
Для Каждого СтрокаСотрудника Из СписокПроблемныхСотрудников Цикл
    НоваяСтрокаСотр = НовыйДокумент.Сотрудники.Добавить();
    НоваяСтрокаСотр.Сотрудник = СтрокаСотрудника.Ссылка;
    
    // Заполняем движения по начислениям
    НоваяСтрокаНачисл = НовыйДокумент.Начисления.Добавить();
    НоваяСтрокаНачисл.Сотрудник = СтрокаСотрудника.Ссылка;
    НоваяСтрокаНачисл.Начисление = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Северная надбавка");
    НоваяСтрокаНачисл.Действие = Перечисления.ДействияСНачислениями.Прекратить;
    // Указываем документ-основание, действие которого нужно закрыть
    НоваяСтрокаНачисл.ДокументОснование = СтрокаСотрудника.ОшибочныйДокументОснование; 
КонецЦикла;

НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);

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

---

Профилактика возникновения ошибок в будущем

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

← На главную