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

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

Ситуация, когда сотрудник уже уволен, но продолжает «преследовать» бухгалтера в расчетных листках и отчетах по анализу зарплаты, — одна из самых частых и досадных проблем в 1С:Зарплата и управление персоналом 3.1. При этом в самом листке могут отображаться пустые строки или нулевые суммы. Разберем детально, почему так происходит и какими способами можно навести порядок в базе.

Причина 1: Расхождения в аналитике взаиморасчетов

Проанализируем механизм формирования отчетов. Программа включает сотрудника в расчетный листок, если видит по нему остатки или обороты в регистрах взаиморасчетов. Чаще всего проблема кроется в том, что по сотруднику «зависли» копейки или нулевые обороты в разрезе разных аналитик. Взаиморасчеты в ЗУП 3.1 ведутся в разрезе организации, подразделения и статьи финансирования. Для автоматического выравнивания таких расхождений документом переноса данных можно использовать обработку для корректировки регистра «Зарплата к выплате».

Рассмотрим пример: если начисление прошло по «Подразделению А», а выплата — по «Подразделению Б», то общий баланс по сотруднику будет нулевым, но в разрезе подразделений останутся «хвосты». Программа увидит активность и включит сотрудника в отчет. Для проверки этой гипотезы выполним следующие действия:

  1. Сформируем отчет «Задолженность по зарплате» или «Анализ зарплаты по сотрудникам (помесячно)».
  2. В настройках отчета добавим группировку по Подразделению, Статье финансирования и Статье расходов.
  3. Если мы увидим положительные и отрицательные суммы, которые в итоге дают ноль, значит, нужно выровнять аналитику документом Перенос данных или перепровести документы выплаты и начисления.

Причина 2: Ошибки конкретного релиза и «фантомные» начисления

Иногда причина кроется в программных ошибках определенных версий конфигурации. Выясним причину на техническом уровне: в некоторых релизах расчетный листок подтягивает данные, если в регистре НачисленияУдержанияПоСотрудникам зафиксирован факт планового начисления, даже если итоговая сумма равна нулю. Посмотрим на алгоритм исправления:

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

Причина 3: Незакрытые периоды отсутствий

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

Причина 4: Механизм перерасчетов

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

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

Способ 5: Архивация сотрудника (практический обходной путь)

Если копаться в регистрах некогда, а отчеты нужно сдавать уже сейчас, воспользуемся проверенным методом «архивации». Посмотрим, как это сделать:

  1. Зайдем в справочник Сотрудники.
  2. Найдем нашего уволенного сотрудника.
  3. В карточке сотрудника установим флаг «Не отображать в списках. Все операции по сотруднику завершены».

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

Способ 6: Настройка фильтров в самом отчете

Если мы не хотим архивировать сотрудников, можно изменить настройки самого расчетного листка. Рассмотрим по шагам, как наложить фильтр через систему компоновки данных (СКД):

  1. В форме формирования расчетного листка нажмем кнопку «Настройки...».
  2. Перейдем в расширенный режим (кнопка «Расширенный»).
  3. На закладке «Отборы» добавим новое условие: Сотрудник.В архиве Равно Нет.
  4. Дополнительно можно добавить фильтр по сумме: Начислено Не равно 0.

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

Технический анализ через отладчик (для специалистов)

Для тех, кто хочет докопаться до истины программным путем, проанализируем, как формируется запрос отчета. Можно поставить точку останова в модуле менеджера отчета РасчетныйЛисток. Основной интерес представляет процедура инициализации данных. Посмотрим на примерный контекст:


// В процедуре ИнициализироватьОтчет после формирования временных таблиц
// можно проверить содержимое таблицы "НачисленияУдержания"
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ * ИЗ ВременнаяТаблицаНачислений";
Результат = Запрос.Выполнить().Выгрузить();
// Здесь мы увидим, какая именно запись заставляет отчет выводить строку

Чаще всего источником данных для СКД в данном отчете является функция ЗаполнятьОбщиеИсточникиДанных(). Исследуя ее результат через табло (выражение СхемаКомпоновкиДанных.НаборыДанных), мы сможем увидеть текст запроса и понять, по какому регистру накопления (ВзаиморасчетыСПользователями, НачисленияУдержанияПоСотрудникам и т.д.) проходит «фантомная» запись.

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

← На главную