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

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

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

Анализируем причину расхождения дней

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

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

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

Как формируются сторно-строки: разбираем запрос 1С

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


ВЫБРАТЬ
    Начисления.Сотрудник,
    Начисления.Физлицо,
    Начисления.ВидРасчета,
    Начисления.ДатаНачала,
    Начисления.ДатаОкончания,
    Начисления.Показатель1,
    Начисления.Показатель2,
    Начисления.Показатель3,
    Начисления.Показатель4,
    Начисления.Показатель5,
    Начисления.Показатель6,
    Начисления.ПодразделениеОрганизации,
    -Начисления.Результат - ЕСТЬNULL(СУММА(СторноНачисления.Результат), 0) КАК Результат,
    -Начисления.ДополнительныйРезультат - ЕСТЬNULL(СУММА(СторноНачисления.ДополнительныйРезультат), 0) КАК ДополнительныйРезультат,
    -Начисления.ОплаченоДнейЧасов - ЕСТЬNULL(СУММА(СторноНачисления.ОплаченоДнейЧасов), 0) КАК ОплаченоДнейЧасов,
    -Начисления.ОтработаноДней - ЕСТЬNULL(СУММА(СторноНачисления.ОтработаноДней), 0) КАК ОтработаноДней,
    -Начисления.ОтработаноЧасов - ЕСТЬNULL(СУММА(СторноНачисления.ОтработаноЧасов), 0) КАК ОтработаноЧасов,
    -Начисления.ОтработаноДнейПоПятидневке - ЕСТЬNULL(СУММА(СторноНачисления.ОтработаноДнейПоПятидневке), 0) КАК ОтработаноДнейПоПятидневке,
    -Начисления.ОтработаноЧасовПоПятидневке - ЕСТЬNULL(СУММА(СторноНачисления.ОтработаноЧасовПоПятидневке), 0) КАК ОтработаноЧасовПоПятидневке,
    -Начисления.НормаДней - ЕСТЬNULL(СУММА(СторноНачисления.НормаДней), 0) КАК НормаДней,
    -Начисления.НормаЧасов - ЕСТЬNULL(СУММА(СторноНачисления.НормаЧасов), 0) КАК НормаЧасов,
    -Начисления.НормаДнейПоПятидневке - ЕСТЬNULL(СУММА(СторноНачисления.НормаДнейПоПятидневке), 0) КАК НормаДнейПоПятидневке,
    -Начисления.НормаЧасовПоПятидневке - ЕСТЬNULL(СУММА(СторноНачисления.НормаЧасовПоПятидневке), 0) КАК НормаЧасовПоПятидневке,
    Начисления.ПериодРасчетаСреднегоЗаработкаНачало,
    Начисления.ПериодРасчетаСреднегоЗаработкаОкончание,
    Начисления.ДатаНачалаСобытия,
    ИСТИНА КАК Сторно,
    &ПерерассчитываемыйДокумент КАК СторнируемыйДокумент
ИЗ
    Документ.НачислениеЗарплатыРаботникамОрганизаций.Начисления КАК Начисления
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК СторноНачисления
    ПО Начисления.Сотрудник = СторноНачисления.Сотрудник
        И Начисления.ВидРасчета = СторноНачисления.ВидРасчета
        И (СторноНачисления.ПериодДействияНачало МЕЖДУ Начисления.ДатаНачала И Начисления.ДатаОкончания)
        И (НАЧАЛОПЕРИОДА(СторноНачисления.ПериодДействияКонец, ДЕНЬ) МЕЖДУ Начисления.ДатаНачала И Начисления.ДатаОкончания)
        И (СторноНачисления.ПериодРегистрации > Начисления.Ссылка.ПериодРегистрации)
        И (СторноНачисления.ПериодРегистрации <= &ПериодРегистрации)
        И (СторноНачисления.СторнируемыйДокумент = Начисления.Ссылка)
ГДЕ
    Начисления.Ссылка = &ПерерассчитываемыйДокумент
    И (НЕ Начисления.Сторно)
    И (&ПоВсемСотрудникам ИЛИ Начисления.Сотрудник В (&Сотрудники))
    И Начисления.Ссылка.Проведен
СГРУППИРОВАТЬ ПО
    Начисления.Сотрудник,
    Начисления.Физлицо,
    Начисления.ВидРасчета,
    Начисления.ДатаНачала,
    Начисления.ДатаОкончания,
    Начисления.Показатель1,
    Начисления.Показатель2,
    Начисления.Показатель3,
    Начисления.Показатель4,
    Начисления.Показатель5,
    Начисления.Показатель6,
    Начисления.ПодразделениеОрганизации,
    Начисления.ПериодРасчетаСреднегоЗаработкаНачало,
    Начисления.ПериодРасчетаСреднегоЗаработкаОкончание,
    Начисления.ДатаНачалаСобытия,
    Начисления.Результат,
    Начисления.ДополнительныйРезультат,
    Начисления.ОплаченоДнейЧасов,
    Начисления.ОтработаноДней,
    Начисления.ОтработаноЧасов,
    Начисления.ОтработаноДнейПоПятидневке,
    Начисления.ОтработаноЧасовПоПятидневке,
    Начисления.НормаДней,
    Начисления.НормаЧасов,
    Начисления.НормаДнейПоПятидневке,
    Начисления.НормаЧасовПоПятидневке

Обратим внимание на условие соединения и поля выборки:

В выражении -Начисления.ОтработаноДней - ЕСТЬNULL(СУММА(СторноНачисления.ОтработаноДней), 0) платформа проверяет, сколько дней по данному виду расчета и периоду уже было отсторнировано с момента проведения исходного документа. Поскольку в регистре расчета поле СторнируемыйДокумент у записей больничного листа ссылается на первичное начисление оклада, сумма ранее проведенного сторно вычитается из исходных показателей. В итоге сторнируется только та часть начисления, которая еще фактически действует в учете.

Опасность ручной правки показателей

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

  1. Задвоение сторнирования: один и тот же рабочий день будет отсторнирован дважды — сначала документом Начисление по больничному листу, а затем документом-исправлением.
  2. Искажение среднего заработка: в регистрах расчета уменьшится норма и фактически отработанное время, что повлечет неверный расчет последующих отпусков, командировок и пособий.
  3. Ошибки во взаиморасчетах: с сотрудника будет излишне удержана сумма оплаты за один рабочий день.

Порядок действий в зависимости от цели корректировки

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

  1. Цель — отразить факт болезни: Если документ-исправление создавался только для того, чтобы убрать рабочий день из-за наступившей нетрудоспособности, вводить его не нужно вовсе. Документ Начисление по больничному листу уже выполнил необходимое сторнирование и перерасчет. Лишний документ-исправление следует удалить.
  2. Цель — изменить параметры начисления (оклад, график, подразделение): В этом случае документ-исправление необходим, но количество дней в нем (17) является полностью корректным. Проводим документ без ручной правки отработанного времени, так как 1 день законно замещен больничным.
  3. Больничный лист был введен ошибочно: Если период нетрудоспособности зарегистрирован по ошибке или с неверными датами, сначала необходимо отменить проведение или скорректировать сам больничный лист. Только после этого следует перезаполнить документ-исправление — тогда система заполнит полные 18 дней.

Контроль взаиморасчетов, налогов и перерасчетов

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

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

Следствия для НДФЛ и страховых взносов: Корректировка начислений прошлых месяцев уменьшает облагаемую базу. В зависимости от даты закрытия отчетного периода сумма уменьшения либо перекроется начислениями текущего месяца, либо потребует подачи уточненной отчетности по страховым взносам (РСВ). Образовавшаяся переплата по окладу формирует задолженность за сотрудником и автоматически зачитывается при формировании ближайшей зарплатной ведомости на выплату.

← На главную