Ситуация, когда типовой отчет «Анализ зарплаты по сотрудникам» показывает суммы, ровно в два раза (или более) превышающие реальные начисления, является довольно распространенной в практике работы с 1С:Зарплата и управление персоналом 3.1. При этом в первичных документах (начисление зарплаты, расчет взносов) и в основных регистрах расчета цифры могут быть абсолютно корректными. Рассмотрим подробнее, почему возникает эта техническая коллизия и как ее устранить.
Для начала проанализируем, как работает отчет «Анализ зарплаты по сотрудникам». В отличие от простых списков, этот отчет строится на базе сложной системы компоновки данных (СКД), запрос которой может содержать десятки пакетов временных таблиц. Основная задача отчета — собрать данные не только из регистров накопления НачисленияУдержанияПоСотрудникам, но и сопоставить их с данными о выплатах и взаиморасчетах.
Задвоение чаще всего происходит в момент выполнения операции LEFT JOIN (левое соединение) в SQL-запросе. Если система пытается соединить таблицу начислений с таблицей выплат по определенным полям (физическое лицо, организация, статья финансирования, статья расходов), и в одной из таблиц эти поля заполнены не полностью или имеют дублирующие записи, возникает эффект «декартового произведения». Строка начисления находит две или более подходящих строки в таблице взаиморасчетов, и итоговая сумма в отчете умножается на количество этих связей.
Чтобы не копаться в сложном запросе типового отчета, который использует механизмы представлений, разберем более простой способ диагностики. Воспользуемся инструментом Универсальный отчет (раздел «Администрирование» — «Печатные формы, отчеты и обработки»).
Проанализируем регистр накопления Бухгалтерские взаиморасчеты с сотрудниками. Настроим отчет следующим образом:
Бухгалтерские взаиморасчеты с сотрудниками.Физическое лицо, Статья расходов, Регистратор.Если в результате мы увидим, что по документу Ведомость в банк (или ведомость в кассу) поле Статья расходов не заполнено (пустое значение), это и есть первопричина. Когда отчет «Анализ зарплаты» пытается «подтянуть» эту ведомость, отсутствие аналитики заставляет алгоритм распределения отрабатывать некорректно, дублируя строки начислений.
Выясним еще одну интересную деталь, упомянутую в практике: почему ведомость за декабрь (например, выплата аванса) может влиять на отчет за ноябрь? Дело в том, что отчет анализирует состояние взаиморасчетов в разрезе месяцев. Если в декабрьской ведомости указан месяц выплаты «Декабрь», но при этом в регистр попали записи, закрывающие долги за ноябрь, или если в ведомости допущена ошибка в периоде регистрации, отчет «притянет» эту информацию к ноябрьским данным.
Проверим движения документа Ведомость в банк. Для этого в документе нажмем кнопку «Еще» — «Показать движения документа». Нас интересует вкладка Взаиморасчеты по сотрудникам и Бухгалтерские взаиморасчеты с сотрудниками. Обратим внимание на колонку Статья расходов. Если она пуста, отчет не сможет однозначно сопоставить выплату с начислением.
Иногда причина кроется глубже — в так называемых интервальных регистрах. В ЗУП 3.1 данные о периодах работы, позициях штатного расписания и других кадровых изменениях хранятся в виде временных интервалов. Если в этих регистрах записи накладываются друг на друга (например, из-за исправлений документов «задним числом» без пересчета периодов), отчет может «видеть» одного сотрудника как две разные аналитические единицы в один и тот же момент времени.
Разберем, как это проверить:
ДанныеИнтервалы...).Как только причина (пустая Статья расходов) выявлена, необходимо привести данные в порядок. Рассмотрим варианты решения:
Вариант А. Ручное исправление документа.
Если документов немного, достаточно открыть проблемную ведомость, зайти в расшифровку суммы (кнопка «Изменить налог» или просто двойной клик по сумме выплаты) и убедиться, что аналитика заполнена. Если поле пустое — выберите нужное значение вручную и перепроведите документ.
Вариант Б. Групповое изменение реквизитов.
Если ведомостей много, воспользуемся обработкой «Групповое изменение реквизитов»:
Ведомость в банк.Статья расходов и установим нужное значение.Вариант В. Использование специализированных обработок. Например, может потребоваться редактирование движений в регистрах документа «Перенос данных».
В некоторых случаях (особенно при переходе с других версий или после переноса данных) требуется переформирование интервальных регистров. Для этого в программе предусмотрены скрытые процедуры. Например, можно запустить процедуру пересчета интервалов через консоль кода или воспользоваться встроенными помощниками обслуживания в разделе «Администрирование» — «Обслуживание» — «Корректировка данных».
Проанализировав ситуацию, мы пришли к выводу, что задвоение в «Анализе зарплаты» — это почти всегда сигнал о нарушении целостности аналитического учета в регистрах взаиморасчетов. Для предотвращения подобных проблем в будущем рекомендуем:
Статьи расходов и Статьи финансирования в платежных документах.