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

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

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

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

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

Ключ записи в этом регистре (то есть набор полей, который делает строку уникальной) состоит из следующих измерений:

  1. Физическое лицо (Сотрудник).
  2. Документ-основание (Сам документ разового начисления).
  3. Показатель (Конкретный расчетный показатель).
  4. Начисление (Вид расчета, например, Премия или Районный коэффициент).

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

Шаг 1: Анализ настроек вида начисления

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

Проверим настройки начисления:

  1. Перейдем в меню Настройка — Начисления.
  2. Найдем используемый вид расчета.
  3. Проверим формулу. Если формула выглядит сложно, например: СуммаСтим + (СуммаСтим * Коэффициент), попробуем упростить её или проверить, не дублируется ли запись показателя в настройках самого показателя (раздел «Настройка — Показатели расчета зарплаты»).

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

Шаг 2: Работа с очередью перерасчетов

Наиболее вероятная причина кроется в «зацикливании» механизма перерасчетов. Рассмотрим алгоритм действий для очистки конфликтных записей:

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

Шаг 3: Очистка закладки «Перерасчет» в документе

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

Зайдем в проблемный документ Разовое начисление и перейдем на закладку Перерасчет. Если там присутствуют строки с зависимыми начислениями (Районный коэффициент, Северная надбавка и прочие), попробуем их удалить вручную. Как показывает практика, после удаления этих строк документ проводится без ошибок.

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

Шаг 4: Специфика релиза и техническое обслуживание

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

Если вышеописанные методы не помогают, проанализируем состояние базы данных с помощью встроенных инструментов:

  1. Запустим конфигуратор.
  2. Выберем пункт Администрирование — Тестирование и исправление.
  3. Установим флажки на пунктах «Реорганизация таблиц» и «Пересчет итогов». Это поможет, если в индексах таблиц произошел сбой, из-за чего система «видит» дубли там, где их нет. Регулярное выполнение таких технических работ сразу для группы баз упрощается при использовании программы для пакетного тестирования и обслуживания 1С.

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

← На главную