Как исправить ошибку «Неверный реквизит платежного документа: КодНазПлатежа» при загрузке выписки в 1С:УПП?

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

При работе в конфигурации «Управление производственным предприятием» (УПП) многие пользователи столкнулись с критической ошибкой при попытке загрузить банковскую выписку. Программа прерывает чтение файла и выдает сообщение вида: «Неверный реквизит платежного документа, строка... : КодНазПлатежа=». Эта проблема возникла из-за перехода банков на формат обмена 1.03, который был дополнен новыми реквизитами в соответствии с изменениями в законодательстве об исполнительном производстве (Федеральный закон № 229-ФЗ).

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

Рассмотрим детально несколько способов решения этой проблемы: от оперативного вмешательства в код до обновления системы.

Способ 1: Полноценная программная доработка обработки (Рекомендуется)

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

Разберем по шагам необходимые правки в коде:

  1. Откроем модуль обработки и найдем процедуру СформироватьСтруктуруТаблицыИмпорта. Нам нужно зарегистрировать новую колонку КодНазПлатежа в таблице, куда загружаются данные. В районе строки 1246 добавим следующий код:
    
    СоздатьКолонкуВТаблице(Таб, ТабПоле, "КодНазПлатежа", Т_Строка02, "КодНазПлатежа", Видимая);
    
  2. Далее перейдем к процедуре ЗаполнитьСтрокиРеквизитовПлДокументовДляИмпорта. Здесь определяется список тегов, которые программа ищет в текстовом файле выписки. Найдем переменную РеквизитыПлДок_Дополнительные и добавим наше поле в конец строки. Это будет выглядеть примерно так:
    
    РеквизитыПлДок_Дополнительные = "СрокАкцепта,ВидАккредитива,ПлатежПоПредст,ДополнУсловия,НомерСчетаПоставщика,ДатаОтсылкиДок,КодНазПлатежа";
    

После этих правок обработка начнет корректно распознавать строку КодНазПлатежа= в файле и загрузка будет проходить без ошибок.

Способ 2: Программное «игнорирование» неизвестного тега

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

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


СтрокаРазбора = ПолучитьСтрокуИмпорта; 

// Начало вставки
Если СтрНайти(СтрокаРазбора, "КодНазПлатежа=") > 0 Тогда 
    СтрокаРазбора = ПолучитьСтрокуИмпорта; // Просто считываем следующую строку, пропуская текущую
КонецЕсли;
// Конец вставки

Этот код позволяет «проглотить» неизвестный тег и перейти к следующему реквизиту документа, не прерывая процесс загрузки всей выписки.

Способ 3: Ручная корректировка файла выгрузки

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

Посмотрим на пример файла выписки. Он представляет собой обычный текстовый документ. Если открыть его через Блокнот или любой текстовый редактор, можно воспользоваться функцией «Найти и заменить» (Ctrl+H):

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

Способ 4: Официальное обновление конфигурации

Проанализируем ситуацию с поддержкой продукта. Фирма «1С» выпустила официальное исправление данной ошибки в релизе 1.3.141.2 конфигурации «Управление производственным предприятием». В этом обновлении функционал обработки «Клиент-банк» был полностью адаптирован под формат 1.03.

Важные рекомендации при обновлении:

  1. Перед обновлением обязательно создайте резервную копию информационной базы.
  2. Проверьте, не является ли ваша обработка «Клиент-банк» внешней (подключенной через справочник «Дополнительные отчеты и обработки»). Если она внешняя, обновление конфигурации может не затронуть ее, и файл обработки придется заменять вручную.
  3. Убедитесь, что в настройках обмена с банком выбрана актуальная версия формата (в некоторых случаях система определяет ее автоматически по заголовку файла ВерсияФормата=1.03).

Итог: Если вы используете версию ниже 1.3.141.2, наиболее стабильным решением будет внесение правок из Способа 1. Это позволит не только избежать ошибок, но и заложит фундамент для дальнейшей работы с кодами доходов в платежных документах.

← На главную