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

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

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

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

Архитектурная суть проблемы: «Физическое лицо» против «Сотрудника»

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

  1. Справочник «Физические лица» — хранит персональные данные реального человека как физического объекта (его паспорт, ИНН, СНИЛС, дату рождения). На одного человека в информационной базе всегда должен быть строго один элемент в этом справочнике.
  2. Справочник «Сотрудники» — отражает конкретные трудовые отношения (договоры) с работодателем. Если один и тот же человек работает в организации на нескольких должностях (например, по основному месту работы и по внутреннему совместительству), в программе для него должно быть создано несколько разных элементов в справочнике «Сотрудники», каждый из которых привязан к одному общему «Физическому лицу».

Когда бухгалтер пренебрегает этим правилом и пытается назначить несколько основных начислений (например, две разные «Оплаты по окладу» по разным должностям) на одну и ту же карточку в справочнике Сотрудники, в системе возникает критическое противоречие.

Регистр сведений ПлановыеНачисления имеет ключевые поля (измерения), по которым система контролирует уникальность записей. К ним относятся:

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

Шаг 1. Глубокая диагностика и поиск дублирующих записей

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

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

В открывшемся дереве объектов найдем раздел Регистры сведений и откроем два технических регистра:

В открывшемся списке установим отбор по проблемному сотруднику. Проанализируем записи регистра. Нам нужно обратить внимание на документы-регистраторы, которые делали движения по данному сотруднику. Чаще всего дублирование возникает из-за следующих документов:

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


ВЫБРАТЬ
    ПлановыеНачисления.Сотрудник КАК Сотрудник,
    ПлановыеНачисления.Начисление КАК Начисление,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПлановыеНачисления.ДокументОснование) КАК КоличествоДокументов
ИЗ
    РегистрСведений.ПлановыеНачисления КАК ПлановыеНачисления
ГДЕ
    ПлановыеНачисления.Сотрудник.ФизическоеЛицо = &ФизическоеЛицо
СГРУППИРОВАТЬ ПО
    ПлановыеНачисления.Сотрудник,
    ПлановыеНачисления.Начисление
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПлановыеНачисления.ДокументОснование) > 1

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

Шаг 2. Исправление кадровой истории и разделение сотрудников

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

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

После этого система автоматически перестроит записи в регистрах сведений ПлановыеНачисления и ПлановыеНачисленияИнтервальный. Теперь у каждого уникального сотрудника будет числиться ровно одно основное начисление.

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

Другие возможные причины ошибки и методы их устранения

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

Наложение дат кадровых изменений

Иногда конфликт возникает из-за неверной последовательности ввода кадровых документов. Например, сотрудника увольняют 30 числа, а с 1 числа следующего месяца по нему уже зарегистрировано изменение плановых начислений (документом КадровыйПеревод, ИзменениеОплатыТруда или ИзменениеПлановыхНачислений).

В этом случае документ Увольнение пытается прекратить начисления с 1 числа, в то время как другой документ на эту же дату пытается их изменить или назначить заново. Происходит наложение периодов записи в регистре.

Решение:

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

Ошибки при автоматическом переносе данных

Если информационная база была создана путем переноса данных из старых версий (например, 1С:ЗУП 2.5), записи в регистрах сведений могут содержать технический «мусор». При этом в кадровых отчетах всё выглядит корректно, но на уровне базы данных в регистре ПлановыеНачисления присутствуют скрытые дублирующие записи без документов-оснований. Для исправления таких ошибок пригодится обработка для редактирования движений в регистрах документа «Перенос данных».

Решение:

  1. Найдите технический документ ПереносДанных, который сформировал записи по регистру плановых начислений на дату начала ведения учета в новой базе.
  2. Вручную удалите из таблицы регистра внутри документа дублирующую строку с начислением оклада по проблемному сотруднику.
  3. Проведите документ ПереносДанных и повторите попытку проведения увольнения.

Конфликт стандартных вычетов НДФЛ

В редких случаях похожая ошибка уникальности ключевых полей возникает не по плановым начислениям, а по регистру вычетов по НДФЛ. Это происходит, когда сотрудника увольняют одновременно с основного места работы и с совместительства одним числом, и в обоих документах увольнения ошибочно рассчитывается применение стандартных налоговых вычетов.

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

Рекомендации по ведению учета

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

← На главную