При работе в решениях на платформе 1С периодически возникают ситуации, когда изменения в законодательстве требуют оперативного обновления конфигураций. Одним из таких знаковых изменений стало вступление в силу Указания Банка России от 14.10.2019 № 5286-У. Согласно этому документу, при выплате заработной платы и иных доходов физическим лицам работодатели обязаны указывать в платежных поручениях специальные коды видов доходов. Это позволяет судебным приставам корректно производить удержания по исполнительным листам.
В этой статье мы подробно разберем, начиная с какого релиза конфигурации «1С:Управление торговлей» редакции 10.3 (УТ 10.3) поддерживается данный функционал, почему при этом ломается обмен с банками («Клиент-Банк») и какими способами можно устранить эту проблему без экстренного и сложного обновления всей базы данных.
Выясним точную хронологию появления обновлений в УТ 10.3. Многие пользователи ожидали увидеть данные изменения в релизах 10.3.62.2 или в тестовой версии 10.3.63.1, однако там поддержка новых реквизитов еще отсутствовала. Официально поддержка новых требований законодательства была добавлена в релизе 10.3.64.1.
Рассмотрим, какие именно изменения вошли в данный релиз:
Проанализируем ситуацию, с которой столкнулись многие пользователи в начале июня 2020 года. При попытке загрузить выписку из банка в программу 1С старых релизов (до 10.3.64.1) процесс прерывался критической ошибкой вида: «Неверный реквизит платежного документа, строка ХХ: КодНазПлатежа=» или «КодВыплат=».
Выясним причину этого сбоя. Банковские организации перешли на обновленный формат обмена заблаговременно и начали добавлять в файлы выгрузки (обычно это файл kl_to_1c.txt) новые служебные теги: КодНазПлатежа и КодВыплат. Обработка обмена старых версий УТ 10.3 жестко контролирует структуру файла. Обнаружив неизвестные теги, она расценивает это как ошибку структуры данных и полностью прекращает разбор выписки.
Что делать, если база сильно кастомизирована и «накатывать» десятки пропущенных релизов прямо сейчас нет возможности? Разберем практические способы обхода этой ошибки.
Если платежей немного, и вам нужно срочно провести выписку, рассмотрим самый быстрый «костыль» без изменения кода программы:
kl_to_1c.txt) с помощью любого текстового редактора (Блокнот, Notepad++).КодНазПлатежа= и КодВыплат=, и заменим их на пустые строки (или просто удалим их).После удаления новых тегов старая обработка обмена успешно распознает структуру файла и загрузит документы.
Если у вас есть навыки работы в Конфигураторе или штатный программист, лучшим решением будет научить старую обработку игнорировать новые теги. Это позволит не прерывать процесс импорта и работать без ручной чистки файлов. Разберем по шагам, как внести изменения в код.
Откроем конфигурацию, найдем обработку КлиентБанк и перейдем в ее модуль объекта. Нам необходимо зарегистрировать новые теги как необязательные.
Найдем строку, где инициализируется переменная, содержащая список необязательных параметров платежного документа. Добавим в этот список наши новые теги. Код будет выглядеть следующим образом:
// Добавляем новые теги в список необязательных параметров
РеквизитыПлДок_НазначениеНеОбязательные = "КодВыплат,КодНазПлатежа," + РеквизитыПлДок_НазначениеНеОбязательные;
Далее найдем процедуру, отвечающую за создание структуры таблицы для загружаемых документов. Нам нужно зарегистрировать новые параметры как невидимые колонки таблицы, чтобы система не выдавала ошибку при попытке записать в них данные. Добавим следующие строки кода:
// Регистрируем новые колонки как невидимые в таблице импорта
СоздатьКолонкуВТаблице(Таб, ТабПоле, "КодВыплат", Т_Строка, "КодВыплат", НеВидимая);
СоздатьКолонкуВТаблице(Таб, ТабПоле, "КодНазПлатежа", Т_Строка, "КодНазПлатежа", НеВидимая);
После сохранения этих изменений старая конфигурация будет успешно считывать файлы любого формата. Она просто проигнорирует новые теги, не вызывая аварийного завершения работы.
Если вы не хотите вносить изменения в основную конфигурацию, можно пойти более простым путем. Возьмем файл обработки КлиентБанк.epf из нового релиза 10.3.64.1 (или аналогичных конфигураций КА 1.1 / УПП 1.3, где структура метаданных схожа) и сохраним ее как внешнюю обработку.
После этого пользователи смогут запускать ее через меню «Файл» — «Открыть» или зарегистрировать в справочнике «Внешние обработки». Новая версия обработки корректно обрабатывает формат обмена 1.03 и не будет вызывать ошибок при чтении выписок.