При работе в программе 1С:Зарплата и кадры государственного учреждения (или ЗУП 3.1) пользователи нередко сталкиваются с ситуацией, когда документ Разовое начисление, введенный за прошлый период, отказывается проводиться. Система выдает критическую ошибку: «Запись с такими ключевыми полями существует. Значение показателя начисления, расчетная база (регистр сведений: Значения показателей начисления)». Рассмотрим подробно, почему возникает этот конфликт и как правильно настроить систему для его устранения.
Для начала проанализируем, что именно происходит в базе данных в момент проведения документа. Ошибка указывает на регистр сведений Значения показателей начисления. Этот регистр является техническим инструментом программы для хранения данных о том, какие именно показатели (например, СуммаСтим, ПроцентДоплаты и т.д.) были использованы при расчете конкретного начисления в конкретном документе.
Ключ записи в этом регистре (то есть набор полей, который делает строку уникальной) состоит из следующих измерений:
Конфликт возникает тогда, когда программа пытается записать в этот регистр две абсолютно одинаковые строки. Чаще всего это случается из-за механизма автоматических перерасчетов. Когда мы вводим начисление за «прошлый период», система видит, что база для зависимых начислений (таких как Районный коэффициент или Северная надбавка) изменилась, и пытается тут же, на закладке Перерасчет, доначислить эти суммы.
Разберем ситуацию с настройками показателей. Проанализируем, как используется показатель, на который ссылается ошибка (в нашем примере это может быть СуммаСтим). Если в формуле начисления один и тот же показатель указан дважды или если он используется в нескольких начислениях, которые рассчитываются одновременно в одном документе, система может запутаться в формировании ключей записей.
Проверим настройки начисления:
СуммаСтим + (СуммаСтим * Коэффициент), попробуем упростить её или проверить, не дублируется ли запись показателя в настройках самого показателя (раздел «Настройка — Показатели расчета зарплаты»).Особое внимание уделим настройке «Назначение показателя». Если показатель настроен как «Во всех месяцах после ввода значения (постоянное использование)», а мы пытаемся ввести его разовым документом, это может вызвать логический сбой в регистрах.
Наиболее вероятная причина кроется в «зацикливании» механизма перерасчетов. Рассмотрим алгоритм действий для очистки конфликтных записей:
Разовое начисление самостоятельно выполнить ту же работу.Если нам необходимо срочно провести документ, а время на детальный аудит настроек ограничено, применим следующий метод:
Зайдем в проблемный документ Разовое начисление и перейдем на закладку Перерасчет. Если там присутствуют строки с зависимыми начислениями (Районный коэффициент, Северная надбавка и прочие), попробуем их удалить вручную. Как показывает практика, после удаления этих строк документ проводится без ошибок.
Важно понимать последствия: удалив эти строки, мы фактически отказываемся от автоматического доначисления надбавок в этом конкретном документе. Чтобы сотрудник не потерял в деньгах, нам нужно будет:
Доначисление, перерасчет в конце месяца.В релизах ветки 3.1.10 наблюдались зарегистрированные ошибки платформы и конфигурации, связанные с тем, что документ некорректно определял необходимость записи в регистры, если в документе не было данных о времени (только суммы), а зависимые начисления требовали учета времени. Посмотрим на дату документа и период. Рекомендуется вводить документ текущим месяцем, но указывать в поле «Месяц начисления» или в периоде показателей именно тот прошлый месяц, за который полагается выплата. Программа сама отследит ретроспективные изменения.
Если вышеописанные методы не помогают, проанализируем состояние базы данных с помощью встроенных инструментов:
Подводя итог, отметим, что ошибка Запись с такими ключевыми полями существует — это всегда сигнал о том, что программа пытается дважды выполнить одну и ту же расчетную операцию в рамках одного регистра. Удаление записей из очереди перерасчетов и проверка уникальности используемых показателей в формулах являются наиболее эффективными способами решения данной проблемы.