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

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

Обновление программного обеспечения — это всегда ответственный шаг, который, помимо новых возможностей, порой преподносит неприятные сюрпризы. Многие пользователи конфигурации «Зарплата и управление персоналом», редакция 3.1 (ЗУП), столкнулись с крайне неприятной ситуацией после перехода на релизы ветки 3.1.9 (в частности, 3.1.9.107). Из расчетных листков, полных сводов начислений и других зарплатных отчетов бесследно исчезли суммы доходов в натуральной форме. При этом НДФЛ и страховые взносы с этих доходов продолжали рассчитываться корректно, что создавало серьезный перекос в учете.

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

---

Суть технической проблемы и анализ регистров

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

  1. Регистры учета НДФЛ и страховых взносов (для правильного исчисления налогов и формирования отчетности 6-НДФЛ, ЕРСВ).
  2. Регистр накопления НачисленияУдержанияПоСотрудникам. Это ключевой регистр, на основании которого строятся все основные зарплатные отсчеты: «Расчетный листок», «Полный свод начислений, удержаний и выплат», «Анализ зарплаты по сотрудникам» и др.

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

---

Официальная ошибка № 30167116

Фирма «1С» зарегистрировала данное поведение системы как официальный баг под номером 30167116 со следующим описанием: «Оплата труда в натуральной форме перестала отражаться в отчетах». Данная ошибка была полностью локализована и исправлена в релизе 3.1.9.187.

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

---

«Оплата труда в натуральной форме» vs «Доход в натуральной форме»: принципиальная разница

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

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

---

Как решить проблему до обновления: временные обходные пути

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

Вариант 1. Корректировка назначения начисления (если применимо)

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

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

Вариант 2. Использование документа «Перенос данных»

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

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

---

Рефакторинг кадровых регистров в ЗУП 3.1.9: почему «ломаются» внешние обработки?

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

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

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


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	КадроваяИсторияСрез.Сотрудник КАК Сотрудник,
    |	КадроваяИсторияСрез.Подразделение КАК Подразделение,
    |	КадроваяИсторияСрез.Должность КАК Должность,
    |	КадроваяИсторияСрез.ВидСобытия КАК ВидСобытия
    |ИЗ
    |	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК КадроваяИсторияСрез
    |ГДЕ
    |	КадроваяИсторияСрез.Сотрудник В (&СписокСотрудников)";

Запрос.УстановитьПараметр("Период", РабочаяДата);
Запрос.УстановитьПараметр("СписокСотрудников", МассивСотрудников);
РезультатЗапроса = Запрос.Выполнить();

Использование актуальных регистров сведений, таких как КадроваяИсторияСотрудников (включая интервальные регистры), гарантирует стабильную работу ваших доработок на любых современных релизах 1С:ЗУП 3.1.

← На главную