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

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

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

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

Выясняем причину: системная ошибка СКД и регистры взаиморасчетов

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

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

В релизах ветки 3.1.5 (до версии 3.1.5.212) и ветки 3.1.6 (до версии 3.1.6.37) присутствовала зарегистрированная техническая ошибка № 30160453. Суть ее заключалась в некорректной работе запроса в Схеме компоновки данных (СКД) самого отчета «Расчетный листок».

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

---

Способ решения №1: Обновление конфигурации (рекомендуемый)

Если ваша организация имеет действующий договор информационно-технологического сопровождения (ИТС), самым надежным и правильным решением будет обновление конфигурации. Ошибка расчета задолженности за период была официально устранена разработчиками фирмы «1С».

Проанализируем, какие релизы конфигурации гарантированно содержат исправление данной ошибки:

Важное примечание по последовательности обновлений: Если ваша текущая версия программы сильно устарела (например, вы работаете на релизе 3.1.5.99), крайне не рекомендуется обновляться сразу на актуальный релиз «в один шаг» (например, сразу на 3.1.6.6 или 3.1.6.38). При перепрыгивании через несколько промежуточных релизов могут некорректно отработать обработчики обновления данных, из-за чего ошибка в отчете не исчезнет, а база приобретет дополнительные сбои. Обновление нужно выполнять строго последовательно, соблюдая цепочку релизов, рекомендованную фирмой «1С» в таблице обновлений на портале техподдержки.

---

Способ решения №2: Обходные пути без обновления программы

Что делать, если ваша компания находится, например, в стадии банкротства, подписка ИТС отсутствует, ИТ-специалиста в штате нет, а сдавать отчетность и выдавать сотрудникам корректные расчетные листки за год необходимо прямо сейчас? Рассмотрим несколько эффективных обходных путей.

Вариант А: Помесячное формирование расчетных листков

Поскольку ошибка в запросе СКД проявляется только при выборе периода более одного месяца, самым простым решением будет формировать расчетные листки строго помесячно. Если выбрать в поле «Период» один конкретный месяц (например, Январь), сальдо на начало и конец периода рассчитается идеально.

Вариант Б: Пакетная печать с группировкой по периоду

Если у вас в штате более 100 или 600 сотрудников, формировать и печатать листки вручную за каждый из 12 месяцев по каждому работнику отдельно физически невозможно. Чтобы автоматизировать этот процесс без обновления базы, мы можем изменить настройки структуры самого отчета:

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

Вариант В: Изменение настроек выплаты зарплаты

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

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

---

Способ решения №3: Устранение накопленной пересортицы в регистрах

Иногда даже после обновления конфигурации до нужного релиза долг в расчетном листке продолжает отображаться неверно. Это сигнализирует о том, что проблема кроется не в ошибке отчета, а в реальном искажении данных внутри регистров накопления. Часто это происходит из-за ручных правок сумм и дат в ведомостях на выплату зарплаты.

Выясним, как диагностировать и исправить такую пересортицу с помощью технических инструментов программы.

Шаг 1: Диагностика проблемы с помощью Универсального отчета

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

  1. Перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Универсальный отчет.
  2. В поле «Тип объекта» выберем Регистр накопления, в поле «Имя объекта» укажем ВзаиморасчетыССотрудниками, выберем таблицу Остатки и обороты.
  3. В настройках отчета добавим группировку по полям: Физическое лицо и Месяц взаиморасчетов.
  4. Сформируем отчет. Если мы увидим картину, когда по одному и тому же сотруднику за Январь висит долг за предприятием (+10 000 руб.), а за Февраль — долг за сотрудником (-10 000 руб.), это означает наличие пересортицы. Взаиморасчеты «не видят» перекрытия этих сумм, так как они записаны на разные месяцы взаиморасчетов.

Шаг 2: Исправление пересортицы «технической» ведомостью

Проводить документы прошлых закрытых периодов крайне опасно — это может привести к искажению учета НДФЛ и страховых взносов, а также поплывут данные в сданных отчетах 6-НДФЛ. Мы можем закрыть эту пересортицу в текущем периоде с помощью «нулевой» ведомости:

  1. Создадим новый документ Ведомость в кассу (или Ведомость в банк) текущей датой.
  2. В шапке документа укажем текущий месяц выплаты.
  3. Нажмем кнопку Подобрать и выберем нашего проблемного сотрудника.
  4. Программа перенесет сотрудника в табличную часть. При этом общая сумма к выплате может рассчитаться как «0» (или встанет реальная текущая сумма долга).
  5. Дважды кликнем левой кнопкой мыши по сумме в колонке К выплате. Откроется окно расшифровки платежа.
  6. В открывшемся окне мы увидим строки с разными месяцами взаиморасчетов — положительные и отрицательные суммы, которые в сумме дают ноль.
  7. Оставим эти строки в документе и нажмем ОК. Проведем ведомость.

Это техническое проведение «схлопнет» зависшие остатки по разным месяцам взаиморасчетов в регистре ЗарплатаКВыплате и ВзаиморасчетыССотрудниками. После этого в расчетных листках за последующие месяцы сальдо будет рассчитываться без искажений.

---

Резюме

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

← На главную