Как исправить ошибку «Значение поля "Код вычета" не может быть пустым» при переносе данных из ЗиК 7.7 в ЗУП?

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

При выполнении типового переноса данных из конфигурации «1С:Зарплата и Кадры 7.7» в «1С:Зарплата и Управление Персоналом 8» пользователи нередко сталкиваются с аварийным завершением загрузки документа Перенос данных с префиксом НДФЛ. Процесс прерывается исключением платформы при попытке записи набора записей регистра накопления Предоставленные стандартные и социальные вычеты по НДФЛ.

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

Причины возникновения ошибки

Выясним причину поведения платформы при загрузке данных:

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

Способы локализации проблемных данных

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

Анализ XML-файла выгрузки

Посмотрим на самый быстрый способ локализации без необходимости написания программного кода в 1С:

  1. Откроем полученный файл обмена XML в продвинутом текстовом редакторе (например, Notepad++).
  2. Выполним поиск по названию регистра: ПредоставленныеСтандартныеИСоциальныеВычетыПоНДФЛ или по имени свойства КодВычета.
  3. Проанализируем найденные блоки строк движений. Найдем элемент, где тег кода вычета пуст (например, <КодВычета/> или отсутствует внутренняя ссылка на справочник).
  4. Поднимемся выше по иерархии XML-узлов к описанию объекта. В атрибутах или соседних тегах найдем реквизиты сотрудника (ФИО, табельный номер) и период расчета, в котором сформировалась ошибочная запись.

Поиск некорректных записей в базе-источнике (1С 7.7)

Проанализируем данные в исходной программе 1С:ЗиК 7.7:

  1. Сформируем отчет «Налоговая карточка 1-НДФЛ» или свод по НДФЛ за переносимый расчетный период с группировкой по кодам вычетов. Обратим внимание на строки, где зафиксированы суммы, но графа кода пуста.
  2. Откроем справочник Сотрудники, перейдем на вкладку «Налоги и доходы» у выявленных сотрудников и проверим историю применения стандартных вычетов на детей и личных вычетов.
  3. Проверим справочник Вычеты по НДФЛ на наличие помеченных на удаление или пустых элементов.

Варианты устранения проблемы

Разберем по шагам доступные способы исправления ошибки в зависимости от доступа к конфигуратору и срочности переноса.

Вариант 1. Исправление данных в 1С 7.7 и повторная выгрузка (рекомендуемый)

  1. У найденных сотрудников в базе 7.7 восстановим корректный код вычета в карточке или пересчитаем ошибочные записи по НДФЛ.
  2. Запустим режим «Конфигуратор» в базе 7.7 и выполним процедуру «Тестирование и исправление информационной базы» с обязательной проверкой ссылочной целостности.
  3. Повторно выгрузим данные с помощью типовой обработки и выполним загрузку в конфигурацию приемника.

Вариант 2. Ручная правка выгруженного XML-файла

Если требуется разово перенести данные, а ошибка содержится в единичных строках:

  1. В текстовом редакторе найдем некорректный узел строки таблицы движений регистра.
  2. Удалим ошибочный блок <Строка>...</Строка>, содержащий пустой код вычета, либо вручную укажем идентификатор корректного вычета по аналогии с соседними строками.
  3. Сохраним файл и повторим загрузку через обработку УниверсальныйОбменДаннымиXML.

Вариант 3. Корректировка правил обмена

Если планируется регулярный перенос или исправление данных в 7.7 невозможно, изменим правила конвертации в конфигурации «1С:Конвертация данных».

В правиле загрузки табличной части документа Перенос данных для регистра накопления Предоставленные стандартные и социальные вычеты по НДФЛ в обработчике Перед обработкой правила или При загрузке добавим проверку заполнения:


Если НЕ ЗначениеЗаполнено(СтрокаТабличнойЧасти.КодВычета) Тогда
    Отказ = Истина;
КонецЕсли;

Такая доработка позволит пропустить ошибочную запись без сбоя загрузки всего документа и остальных корректных регистров.

Рекомендации по переносу исторической информации

Перенос подробных движений по НДФЛ за закрытые предыдущие налоговые периоды часто приводит к ошибкам из-за различий в алгоритмах учета 7.7 и 8. Рекомендуется выполнять перенос остатков и учетных данных строго на начало текущего налогового периода (на 1 января переносимого года). Это исключает накопленные за прошлые годы ошибки в регистрах и упрощает выверку отчетности.

← На главную