При работе в программе 1С:Зарплата и управление персоналом 3.1 бухгалтеры часто сталкиваются с ситуацией, когда автоматический расчет удержания по исполнительному листу (ИЛ) не совпадает с ручными вычислениями. Особенно остро эта проблема проявляется в месяцах, когда сотрудник увольняется, а срок действия исполнительного документа заканчивается в середине этого же месяца. Рассмотрим ситуацию, когда программа вместо ожидаемых 683,95 руб. выдает сумму 54,9 руб., и разберем по шагам, как найти и устранить причину такого поведения системы.
Первым делом проанализируем, как программа определяет расчетную базу, если исполнительный лист действует не весь месяц. В нашем примере ИЛ действует до 15.07.2019, а сотрудник увольняется 29.07.2019. Начислена заработная плата за период работы и компенсация отпуска. Программа 1С:ЗУП 3.1 использует встроенный механизм пропорционального деления дохода и исчисленного НДФЛ.
Разберем алгоритм: программа делит доход и налог пропорционально календарным дням месяца. Если документ действует по 15-е число включительно, то в расчетную базу попадет коэффициент 15/31 от общей суммы начислений, входящих в базу ИЛ, и 15/31 от суммы НДФЛ. Даже если сотрудник отработал только до 15-го числа, а потом находился в отпуске без сохранения оплаты, календарный метод может дать результат, отличный от расчета по рабочим дням. Проверим расчетную базу в документе — если она совпадает с вашей (в примере это 7861,54 руб.), значит, проблема кроется в распределении сумм между документами.
Выясним причину, почему итоговая сумма в документе «Начисление зарплаты и взносов» оказывается заниженной. Одной из самых распространенных ошибок является разделение расчетов между двумя документами: Увольнение и НачислениеЗарплатыИВзносов. Рассмотрим, что происходит в системе:
Если в одном из документов была допущена ручная корректировка или сработал механизм ограничения взысканий, итоговая разница может быть непредсказуемой. Посмотрим на пример из практики: сумма 54,9 руб. часто является остатком, который программа «дотягивает» до определенного лимита, либо это результат некорректного сторнирования сумм между документами из-за разницы в датах выплаты.
Проанализируем настройки программы. Если в настройках расчета зарплаты установлен флаг «Ограничивать сумму удержаний процентом от заработной платы» (в соответствии со ст. 138 ТК РФ), программа начинает жестко контролировать, чтобы сотрудник не получил на руки меньше положенного. Для исполнительных листов второй очереди (например, задолженности по кредитам) лимит обычно составляет 50%, а в некоторых случаях 20%.
В документе ИсполнительныйЛист важно проверить поле «Очередность взыскания». Если установлена «Вторая очередь», программа будет проверять наличие взысканий первой очереди (алименты, возмещение вреда здоровью). Даже если других листов нет, сам алгоритм ограничения может «зарезать» сумму удержания, если посчитает, что общая база начислений в текущем документе недостаточна для полного покрытия долга. Программа делает записи в регистр накопления ЗадолженностьПоУдержаниям, чтобы удержать остаток в следующем месяце, но так как сотрудник увольняется, этот остаток просто «зависает».
Чтобы избежать путаницы и ошибок в распределении базы, рекомендуется использовать наиболее надежный способ — проведение всех расчетов в одном документе. Выполним следующие действия:
НачислениеЗарплатыИВзносов за текущий месяц.Увольнение. На вкладке «Начисления и удержания» установим флаг «Начислить зарплату».При таком подходе 1С видит всю картину доходов сотрудника целиком и применяет формулу (Доход - НДФЛ) * Процент корректно, не пытаясь вычитать результаты из других документов. Рассмотрим пример кода, описывающего логику сбора базы:
// Упрощенная схема сбора базы для ИЛ в ЗУП 3.1
БазаДляУдержания = СуммаНачисленийВходящихВБазу - ИсчисленныйНДФЛ;
Если ДатаОкончанияИЛ < КонецМесяца Тогда
КоэффициентВремени = КалендарныеДниДействия / КалендарныеДниМесяца;
БазаДляУдержания = БазаДляУдержания * КоэффициентВремени;
КонецЕсли;
Результат = БазаДляУдержания * ПроцентУдержания / 100;
Важно помнить о зарегистрированных ошибках релиза. В версиях 3.1.9.229 существовала проблема (ошибка №30168718), суть которой заключалась в том, что при оформлении увольнения «задним числом» программа могла игнорировать компенсацию отпуска при расчете базы удержания. Если вы столкнулись с тем, что компенсация упорно не попадает в расчет, проверьте дату документа и дату увольнения. В случае несовпадения периодов программа может считать начисления «перерасчетами прошлого периода» и требовать заполнения вкладки «Доначисления, перерасчеты».
Если объединение документов не помогло, проанализируем регистры. Программа хранит данные о том, сколько она «планирует» удержать, в технических таблицах. Посмотрим на следующие регистры:
Проанализировав эти данные, мы увидим, что сумма 54,9 руб. — это не случайное число, а математический остаток лимита или результат вычитания из предварительно рассчитанной базы суммы из документа «Увольнение», умноженной на некорректный коэффициент календарных дней. Используя метод «все начисления в одном документе Увольнение» и очистку регистров перерасчетов, мы добьемся правильного результата в 683,95 руб.