Как исправить ошибку «Значение поля "Сотрудник" не может быть пустым» при проведении начислений и премий в 1С:ЗУП / 1С:ЗГУ

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

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

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

Почему возникает эта ошибка: разбираем логику работы системы

Для того чтобы понять природу ошибки, рассмотрим, как программа 1С обрабатывает проведение документов начисления. При проведении любого документа, влияющего на заработок (будь то Начисление зарплаты и взносов, Премия, Отпуск или Больничный лист), система делает записи во множество связанных регистров. Одним из ключевых является регистр накопления Данные о начислениях для расчета среднего заработка (ФСС).

В последних версиях программных продуктов на платформе 1С:Предприятие 8.3 разработчики перешли на новую двухрегистровую структуру учета среднего заработка. Теперь параллельно задействуются два регистра:

  1. Данные о начислениях для расчета среднего заработка (ФСС) (классический регистр).
  2. Данные для расчета среднего заработка по начислениям (ФСС) (новый детальный регистр, в котором суммы дополнительно расшифровываются в разрезе конкретных видов начислений).

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

Выделим основные причины возникновения этой ситуации:

---

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

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

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


ВЫБРАТЬ
    СреднийЗаработок.Период КАК Период,
    СреднийЗаработок.Регистратор КАК Регистратор,
    СреднийЗаработок.Сотрудник КАК Сотрудник,
    СреднийЗаработок.ФизическоеЛицо КАК ФизическоеЛицо
ИЗ
    РегистрНакопления.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаФСС КАК СреднийЗаработок
ГДЕ
    СреднийЗаработок.Сотрудник = ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)
    ИЛИ СреднийЗаработок.Сотрудник ЕСТЬ NULL

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

Аналогичную проверку рекомендуется провести по регистру Учет доходов для исчисления страховых взносов, так как пустые колонки начислений или сотрудников в нем также вызывают аналогичные сбои:


ВЫБРАТЬ
    СтраховыеВзносы.Период КАК Период,
    СтраховыеВзносы.Регистратор КАК Регистратор,
    СтраховыеВзносы.Сотрудник КАК Сотрудник,
    СтраховыеВзносы.Начисление КАК Начисление
ИЗ
    РегистрНакопления.УчетДоходовДляИсчисленияСтраховых Взносов КАК СтраховыеВзносы
ГДЕ
    СтраховыеВзносы.Сотрудник = ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)
    ИЛИ СтраховыеВзносы.Начисление = ЗНАЧЕНИЕ(Справочник.Начисления.ПустаяСсылка)

---

Способ 2. Установка официального исправления (патча) от фирмы 1С

Если ошибка возникает в момент проведения больничного листа или при сторнировании прошлых начислений в документе Начисление зарплаты и взносов, мы имеем дело с зарегистрированным программным багом конфигурации ЗУП/ЗГУ.

Проблема кроется в общем модуле УчетПособийСоциальногоСтрахованияРасширенный в процедуре ДанныеДляРасчетаСреднегоЗаработкаФСССотрудниковСлужебный. При определенных условиях компоновщик запроса неверно обрабатывает сторно-записи по физическим лицам, из-за чего теряется ссылка на объект сотрудника.

Для исправления этой ошибки не требуется снимать конфигурацию с поддержки. Фирма 1С выпустила официальный патч.

Выполним следующие шаги для установки исправления:

  1. Перейдем в раздел Администрирование — Обслуживание.
  2. Раскроем подраздел Обновление программы и выберем пункт Установка обновлений и исправлений (патчей).
  3. Если база подключена к интернету и настроен доступ к порталу 1С:ИТС, программа автоматически найдет необходимый патч. Ищите исправление с кодом EF_70100330_2 (или более актуальный аналог для вашего релиза).
  4. Установите патч и перезапустите сеанс работы с базой данных в режиме «1С:Предприятие».

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

---

Способ 3. Восстановление связей «Физическое лицо — Сотрудник» («Финт с приемом на работу»)

Часто ошибка проявляется на конкретных сотрудниках (например, уволенных в середине месяца или работающих по договорам ГПХ). Это происходит из-за рассинхронизации уникальных идентификаторов в регистре сведений Основные сотрудники физических лиц.

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

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

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

---

Способ 4. Проверка и устранение дублей физических лиц

Еще одна неочевидная причина кроется в засорении справочника физических лиц. Если в базе присутствуют две карточки одного и того же человека, при автозаполнении документов начисления табличная часть может заполниться по одному элементу справочника Сотрудники, а расчетная часть (связанная с НДФЛ или средним заработком) попытается обратиться к другому элементу, привязанному к дублирующемуся физлицу. В итоге программа теряет ссылку и выдает ошибку о пустом значении.

Выполним диагностику и слияние дублей по шагам:

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных.
  2. Откроем типовую обработку Поиск и удаление дублей.
  3. В поле «Искать в:» выберем справочник Физические лица.
  4. Зададим правила сравнения (например, по совпадению ФИО и СНИЛС или даты рождения).
  5. Нажмем кнопку Найти дубли.
  6. В появившемся списке внимательно изучим найденные соответствия. Назначим правильный элемент в качестве «оригинала», а дублирующие элементы пометим как «дубли».
  7. Нажмем кнопку Удалить дубли. Программа автоматически заменит все ссылки на неправильных физлиц во всех проведенных документах и регистрах, а дублирующие карточки удалит.

---

Подведем итоги

Мы подробно разобрали причины возникновения ошибки с пустым полем Сотрудник в регистре среднего заработка ФСС и рассмотрели четыре эффективных метода борьбы с ней. Наш опыт показывает, что в большинстве случаев проблема решается либо поиском пустых записей в документах переноса данных с помощью простых запросов, либо установкой официального исправления (патча) EF_70100330_2 от фирмы 1С.

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

← На главную