Многие пользователи программных продуктов «1С» сталкиваются с ситуацией, когда привычный процесс импорта банковской выписки внезапно прерывается ошибкой: «Неверный реквизит платежного документа, строка: Код=». Эта проблема имеет исторические корни, связанные с изменениями в российском законодательстве, но она остается актуальной для пользователей, работающих в необновленных или кастомизированных конфигурациях.
В этой статье мы подробно разберем, почему возникает эта ошибка, какие законодательные акты за ней стоят, и рассмотрим несколько способов решения — от простых «лайфхаков» до профессиональных системных подходов.
Проанализируем ситуацию с технической и юридической сторон. В начале 2014 года вступил в силу Приказ Минфина России № 107н. Согласно этому документу, при осуществлении платежей в бюджетную систему Российской Федерации стало обязательным указание УИН (Уникального идентификатора начисления).
Для реализации этого требования фирма «1С» совместно с банковским сообществом обновила стандарт обмена данными «1С:Предприятие – Клиент-Банк». В текстовом файле обмена (обычно это kl_to_1c.txt) появилось новое поле — тег Код=. Именно в этой строке банк передает 20- или 25-значный цифровой код УИН. Если идентификатор не назначен, банк передает значение Код=0 или просто пустую строку Код=.
Конфликт возникает из-за того, что банковское программное обеспечение начало массово добавлять этот тег во все выгрузки, а внутренний парсер (обработчик текста) в старых релизах «1С» не содержит этого слова в списке «разрешенных» реквизитов. Как только программа встречает неизвестное ей ключевое слово Код, она прекращает чтение файла и выдает ошибку.
Наиболее правильным и надежным методом решения является приведение вашей программы в соответствие с актуальным законодательством. Рассмотрим этот процесс подробнее:
Код появилась в релизах, начиная с 2.0.56.3.После обновления обработка загрузки выписки начнет корректно распознавать строку Код= и записывать данные из нее в соответствующее поле документа Поступление на расчетный счет (обычно это поле «Идентификатор платежа»).
Если вам нужно срочно загрузить выписку, а возможности обновить программу прямо сейчас нет, разберем по шагам, как «обмануть» парсер 1С, удалив конфликтную строку.
Вариант А: Использование стандартного блокнота
kl_to_1c.txt).Ctrl + H (или меню «Правка» -> «Заменить»).Код=.Вариант Б: Использование Notepad++ (для продвинутых пользователей)
Если файл очень большой, стандартный блокнот может зависнуть. В таком случае воспользуемся Notepad++:
Ctrl + F, перейдем во вкладку «Заменить».Код=.* (если хотим удалить всю строку целиком вместе со значениями) и нажмем «Заменить все». Внимание: для этого должен быть включен режим регулярных выражений.Важный нюанс: Помните, что при удалении строки Код= вы теряете информацию об УИН. Для входящих платежей это чаще всего не критично, но для налоговых платежей крайне важно иметь этот код в системе, чтобы правильно формировать ответные платежные поручения.
Проанализируем настройки вашего личного кабинета в банке. Многие современные банки позволяют пользователю самостоятельно выбирать версию формата обмена с «1С»:
Код= отсутствует.Попробуйте зайти в настройки экспорта в Клиент-Банке и установить версию 1.02. В этом случае файл будет сформирован без «проблемной» строки, и старая «1С» примет его без лишних вопросов.
Бывают ситуации, когда конфигурация сильно доработана или находится на поддержке сторонних специалистов, и быстрое обновление невозможно. Разберем, как решить проблему с помощью внешних файлов:
Фирма «1С» для старых конфигураций (таких как «Управление торговлей 10.3» или «Зарплата и управление персоналом 2.5») выпускала обновленные внешние обработки загрузки. Вы можете:
ПредприятиеКлиентБанк.epf (название может варьироваться)..epf.Если вы обладаете навыками программирования в среде «1С:Предприятие 7.7» или «8.2», проанализируем, где именно в коде происходит проверка реквизитов. В старых версиях (особенно в 7.7) список допустимых реквизитов жестко задан в коде обработки.
Например, в конфигурации «Бухгалтерия 7.7» за это отвечает файл 1c_to_kl.ert. Найдите в коде процедуру, которая обходит строки текстового файла, и добавьте слово Код в список разрешенных ключей. Примерно так выглядит структура, которую нужно найти:
Если (КлючевоеСлово = "СекцияДокумент") Тогда
// обработка начала секции
ИначеЕсли (КлючевоеСлово = "Код") Тогда
// Просто игнорируем или записываем в переменную УИН
ИдентификаторПлатежа = ЗначениеРеквизита;
КонецЕсли;
Добавление такого условия позволит программе не выдавать ошибку «Неверный реквизит», даже если конфигурация не была обновлена целиком.
Рассмотренная проблема является классическим примером того, как изменения в форматах обмена данными влияют на стабильность работы учетных систем. Самым правильным решением остается обновление конфигурации, так как оно не только убирает ошибку загрузки, но и обеспечивает правильное хранение идентификаторов УИН, необходимых для корректного взаимодействия с налоговыми органами. Если же обновление невозможно, используйте метод с правкой текстового файла через Блокнот или Notepad++ как временную меру.