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

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

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

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

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

Для начала давайте разберем, почему эта ошибка вообще стала возникать. Начиная с 1 июня 2020 года, в соответствии с Указанием Банка России от 14.10.2019 № 5286-У и требованиями Положения ЦБ РФ № 383-П, в платежных поручениях в поле 20 «Наз. пл.» (Назначение платежа) стало обязательным указывать специальные коды видов доходов. Эти коды необходимы для того, чтобы судебные приставы и банковские организации могли корректно определять, с каких выплат (например, заработная плата, алименты, компенсации) можно производить удержание по исполнительным листам, а какие доходы обладают иммунитетом.

В связи с этим коммерческие банки обновили свои форматы информационного обмена с бухгалтерскими программами. В текстовые файлы выгрузки (обычно это формат kl_to_1c.txt) были добавлены новые служебные теги:

В современных типовых конфигурациях 1С на управляемых формах (таких как «Бухгалтерия предприятия, ред. 3.0» или «1С:ERP») парсер входящих файлов спроектирован гибко: все неизвестные или новые теги, которые не используются текущей логикой программы, просто игнорируются при чтении файла. Однако в устаревших механизмах обработки «Клиент-Банк», которые используются в обычных формах (УПП 1.3, УТ 10.3, КА 1.1), разработчики заложили жесткий контроль структуры файла. При считывании каждой строки система проверяет, входит ли встреченный тег в строго предопределенный список разрешенных реквизитов. Если парсер натыкается на строку вида КодНазПлатежа=1, работа обработки аварийно прерывается с выводом упомянутого сообщения об ошибке.

Давайте рассмотрим подробнее, какими путями можно решить эту проблему в зависимости от ваших возможностей и требований бизнеса.

Вариант 1. Быстрое временное решение без изменения конфигурации

Если вам необходимо срочно провести выписку и сдать отчетность, а программиста 1С нет на месте, вы можете воспользоваться ручным обходом. Для этого достаточно удалить проблемные строки из текстового файла выписки перед его загрузкой в систему.

Выполним следующие шаги:

  1. Откройте текстовый файл выгрузки (kl_to_1c.txt), полученный из личного кабинета банка, с помощью любого текстового редактора (например, стандартного «Блокнота» или Notepad++). Также вы можете открыть его прямо внутри 1С через меню «Файл» — «Открыть».
  2. Вызовите окно поиска и замены клавишами Ctrl + H.
  3. В поле «Найти» введите текст: КодНазПлатежа=
  4. Поле «Заменить на» оставьте абсолютно пустым. Нажмите кнопку «Заменить все». Все вхождения данного тега вместе с его значениями будут очищены.
  5. Аналогичным образом выполните замену для тега КодВыплат=, так как он также часто вызывает аналогичную ошибку.
  6. Сохраните файл и заново запустите загрузку в обработке «Клиент-Банк». Импорт данных пройдет успешно, так как «незнакомые» для старой обработки параметры исчезли из файла.

Вариант 2. Программное исправление в Конфигураторе (Рекомендуется)

Чтобы избавить пользователей от необходимости каждый раз вручную править файлы выгрузки, мы можем доработать код обработки обмена. Эта процедура занимает не более 15 минут даже на нетиповой или сильно измененной конфигурации.

Давайте разберем по шагам, какие изменения нужно внести в Конфигуратор:

Шаг 1. Добавление реквизитов в список разрешенных.

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


РеквизитыПлДок_НазначениеНеОбязательные = "НазначениеПлатежа1,НазначениеПлатежа2,НазначениеПлатежа3,НазначениеПлатежа4,НазначениеПлатежа5,НазначениеПлатежа6";

Отредактируйте эту строку, добавив в нее через запятую наши новые реквизиты. Строка должна принять следующий вид:


РеквизитыПлДок_НазначениеНеОбязательные = "НазначениеПлатежа1,НазначениеПлатежа2,НазначениеПлатежа3,НазначениеПлатежа4,НазначениеПлатежа5,НазначениеПлатежа6,КодВыплат,КодНазПлатежа";

Шаг 2. Объявление невидимых колонок в таблице разбора данных.

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


СоздатьКолонкуВТаблице(Таб,  ТабПоле, "НазначениеПлатежа6", Т_Строка, "Назначение платежа, стр. 6", НеВидимая);

Сразу под этой строкой добавьте еще две строчки программного кода для инициализации колонок под новые теги:


СоздатьКолонкуВТаблице(Таб,  ТабПоле, "КодВыплат",        Т_Строка, "Код выплаты",               НеВидимая);
СоздатьКолонкуВТаблице(Таб,  ТабПоле, "КодНазПлатежа",    Т_Строка, "Код назначения платежа",    НеВидимая);

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

Вариант 3. Обновление конфигурации

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

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

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

← На главную