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

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

Каждый расчетчик заработной платы в программе 1С:Зарплата и управление персоналом (ЗУП) 3.1 или 1С:Зарплата и кадры государственного учреждения (ЗГУ) 3.1 сталкивался с ситуацией, когда программа «самовольно» пытается сторнировать или доначислить огромные суммы за прошлые периоды. Кажется, что стоит один раз очистить регистр перерасчетов, как в следующем месяце лавина сторно-строк возвращается в двойном или тройном размере.

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

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

Многие пользователи считают, что если зайти в сервис Зарплата — Сервис — Перерасчеты и очистить (удалить) зарегистрированные записи, то программа забудет о необходимости что-то пересчитывать. Однако это лишь временная мера.

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

Если в базе данных остались логические коллизии (например, наложение периодов вытеснения, незакрытые кадровые переводы или проведение расчетных документов в неверной хронологической последовательности), программа при первом же удобном случае (например, при расчете зарплаты за текущий месяц) заново проанализирует эти данные. Как результат — в регистре сведений РегистрСведений.ПерерасчетыЗарплаты снова появятся записи, а в документах начисления возникнут огромные сторнирующие суммы.

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

Рассмотрим классический сценарий, который часто приводит к катастрофическим последствиям в учете. В феврале сотрудникам была начислена квартальная премия списком (документ Премия). В июне выясняется, что одному из сотрудников сумма была рассчитана неверно. Расчетчик нажимает ссылку Исправить в исходном документе премии за февраль. Создается новый документ-исправление.

Желая сэкономить время и «не загромождать» документ, расчетчик удаляет из табличной части документа-исправления всех сотрудников, кроме того единственного, у которого меняется сумма. Это критическая ошибка!

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

  1. Документ-исправление полностью замещает собой исходный документ за указанный период регистрации.
  2. Для программы удаление сотрудника из табличной части документа-исправления означает буквально следующее: «Этому сотруднику премия в феврале была начислена ошибочно, ее нужно полностью отменить (сторнировать)».
  3. При проведении такого «куцего» документа-исправления система автоматически сформирует сторно-записи по всем удаленным сотрудникам на полную сумму ранее выплаченной премии.

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

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


Если СотрудникЕстьВДокументеИсправления Тогда
    Разница = НовыйРезультат - ИсходныйРезультат;
    Если Разница <> 0 Тогда
        ЗаписатьВРегистры(Разница);
    КонецЕсли;
Иначе // Сотрудник удален из списка исправлений
    ЗаписатьВРегистры(-ИсходныйРезультат); // Полное сторно!
КонецЕсли;

Переносим перерасчеты в отдельный документ (настройка программы)

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

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

  1. Перейдем в раздел меню Настройки — Расчет зарплаты.
  2. Найдем и установим флаг Выполнять доначисление и перерасчет зарплаты отдельным документом.

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

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

Штатный механизм удаления ошибочных сторно-строк в современных релизах

Если в прошлых версиях программы сторнирующие строки в табличных частях расчетных документов были заблокированы для изменения, то в современных релизах 1С:ЗУП (начиная с 3.1.18.546 / 3.1.23.20) разработчики добавили штатную возможность ручной корректировки сторно.

Если вы видите ошибочно начисленное сторно, выполните следующие действия:

  1. Перейдите на вкладку с перерасчетами в документе (например, вкладка Доначисления, перерасчеты в документе начисления зарплаты).
  2. Нажмите кнопку Еще над табличной частью.
  3. Выберите команду Разрешить редактирование сторнирующих строк.
  4. Выделите ошибочную строку и удалите ее с помощью клавиши Delete (Del).

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

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

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

  1. Жесткое использование даты запрета изменения данных. Это самый мощный барьер против кадрового хаоса. Перейдите в раздел Администрирование — Поддержка и обслуживание — Дата запрета изменения данных. Установите дату запрета на конец прошлого отчетного периода (месяца или квартала). Как только период закрыт, никто (даже кадровик с правами администратора) не сможет случайно перепровести старый документ или провести новый документ отклонения «задним числом». Любые исправления будут вноситься строго текущим периодом.
  2. Соблюдение последовательности ввода документов. Расчет зарплаты должен выполняться только после того, как в базу введены абсолютно все кадровые приказы, табели учета рабочего времени и документы отклонений (больничные, отпуска, командировки, неявки). Если расчет выполнен до внесения отклонений, то последующий ввод больничного неизбежно породит записи в регистре перерасчетов.
  3. Контроль за избыточными перерасчетами. Периодически анализируйте рабочее место Зарплата — Сервис — Перерасчеты. Если вы видите там записи, которые заведомо не требуют перерасчета (например, встречные перерасчеты с нулевым итогом), своевременно удаляйте их из списка до начала расчета заработной платы за текущий месяц.

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

← На главную