Как исправить ошибку «Запись с такими ключевыми полями существует» при создании документа-исправления «Увольнение» в 1С:ЗУП 3.1?

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

В процессе ведения учета в программе 1С:Зарплата и управление персоналом 8 (редакция 3.1) бухгалтеры нередко сталкиваются с ситуацией, когда после фактического увольнения сотрудника и проведения окончательного расчета выясняется, что в периоде работы были допущены ошибки или пропущены важные начисления. Стандартным механизмом исправления таких ситуаций является создание документа-исправления для первичного «Увольнения». Однако на некоторых релизах (особенно ветки 3.1.5 и смежных) при попытке провести такое исправление возникает критическая ошибка: «Запись с такими ключевыми полями существует! ЗначениеРазовыхПоказателейРасчетаЗарплатыСотрудников...». Особенно часто это проявляется, если для сотрудника ведется суммированный учет рабочего времени.

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

Выясним причину возникновения ошибки

Проанализируем ситуацию: программа сообщает о дублировании записи в регистре сведений ЗначениеРазовыхПоказателейРасчетаЗарплатыСотрудников. Этот регистр предназначен для хранения значений показателей, которые используются при расчете зарплаты, но не имеют постоянного характера (например, часы переработок, сдельная выработка и т.д.).

Когда мы работаем с документом Увольнение для сотрудника на суммированном учете, система автоматически рассчитывает часы переработок за весь учетный период. Эти данные фиксируются в указанном регистре. При создании документа-исправления программа должна «затоваривать» (стонировать) движения старого документа и записывать новые. Однако из-за зарегистрированной программной ошибки (№10196417) механизм замещения записей в этом конкретном регистре дает сбой. Система пытается записать данные о переработках (показатель ПереработаноПоСуммированномуУчету) повторно, используя те же ключевые поля (сотрудник, период, документ-основание), что и приводит к конфликту уникальности.

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

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

  1. Если вы используете ветку 3.1.5, необходимо обновиться до версии 3.1.5.212 или выше.
  2. В более современных ветках (3.1.7, 3.1.8 и далее) данная ошибка уже отсутствует. Например, в релизе 3.1.7.61 механизм работы с разовыми показателями при исправлении документов переработан и функционирует корректно.

Если обновление по каким-то причинам невозможно в данный момент (например, база сильно кастомизирована или период отчетности не позволяет проводить технические работы), перейдем к альтернативным методам.

Способ 2. Временное удаление первичных начислений

Разберем методику, предложенную опытными пользователями, которая позволяет «обмануть» логику программы без вмешательства в код. Суть заключается в изменении последовательности ввода документов, чтобы избежать конфликта в регистре показателей.

Выполним следующие шаги:

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

Способ 3. Распроведение и последовательное проведение

Иногда ошибка возникает из-за того, что старые записи в регистре ЗначениеРазовыхПоказателейРасчетаЗарплатыСотрудников блокируют запись новых, даже если они должны их замещать. Попробуем следующую последовательность действий:

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

Способ 4. Вынос расчета переработок в отдельный документ

Поскольку корень проблемы кроется в показателе Переработано по суммированному учету, мы можем попробовать исключить расчет переработок непосредственно из документа Увольнение.

Рассмотрим, как это сделать:

  1. В настройках состава начислений (раздел Настройка — Расчет зарплаты — Настройка состава начислений и удержаний) на вкладке Почасовая оплата убедимся, что включена опция Переработки при суммированном учете.
  2. Вместо того чтобы полагаться на автоматический расчет внутри увольнения, создадим документ Регистрация переработок (раздел Зарплата) перед созданием исправления.
  3. В самом документе Увольнение (исправлении) на вкладке Оплата труда проверим, чтобы расчет переработок не дублировался. Если данные о переработках будут зафиксированы отдельным документом, Увольнение может перестать пытаться записать данные в проблемный регистр, что позволит провести его без ошибок.

Способ 5. Использование документа «Доначисление, перерасчет»

Если исправить само Увольнение категорически не удается, проанализируем возможность использования специализированного инструмента для прошлых периодов.

В разделе Зарплата имеется документ Доначисление, перерасчет. Разберем по шагам работу с ним:

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

Методологический нюанс: Средний заработок

Важно понимать, почему бухгалтер в Сообщении 4 настаивал именно на исправлении документа. В системе 1С:ЗУП 3.1 при расчете среднего заработка для компенсации при увольнении (которое произошло 28.02) в расчетную базу входят данные за 12 предшествующих месяцев. Если увольнение происходит в последний день месяца, то этот месяц (февраль) также включается в расчет.

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

Резюме

Мы рассмотрели техническую ошибку, связанную с дублированием записей в регистре ЗначениеРазовыхПоказателейРасчетаЗарплатыСотрудников. Подведем итоги наших действий:

Следуя этим инструкциям, вы сможете обойти программное ограничение и обеспечить корректность ведения учета и расчета налогов при увольнении сотрудников.

← На главную