В практике работы с продуктами 1С на обычных формах (например, 1С:УПП или 1С:КА 1.1) пользователи часто сталкиваются с ситуацией, когда привычный процесс обмена данными с банком внезапно прерывается. Особенность системы BS-Client (которую активно использует ВТБ и ряд других крупных банков) заключается в том, что при обновлении банковского программного обеспечения могут измениться внутренние алгоритмы формирования текстового файла выгрузки. Рассмотрим ситуацию, когда файл выписки успешно выгружается из банка, 1С видит его содержимое, но при нажатии кнопки «Прочитать данные из файла» список документов остается пустым без каких-либо сообщений об ошибках.
Для того чтобы понять, почему документы не попадают в список «К загрузке», нам необходимо проанализировать работу встроенного алгоритма обработки файлов обмена. В конфигурациях на базе 1С 8.3 (и более ранних версиях для обычных форм) разбор файла происходит последовательно. Проанализируем логику, которую выполняет система при чтении каждой секции документа в текстовом файле формата 1.03. Для пользователей Комплексной автоматизации 1.1 решением подобных проблем с разбором формата 1.03 может стать обновленная обработка Банк-клиент для КА 1.1.
Проблема часто скрывается в жесткой проверке соответствия расчетных счетов. Программа считывает номер счета организации из настроек банковского счета в 1С и сверяет его с данными внутри каждой транзакции в файле. Выясним причину, по которой строки могут помечаться к удалению. В коде обработки это выглядит примерно так:
Если СтрокаДокумента.ПлательщикСчет = БанковскийСчет.НомерСчета
ИЛИ СтрокаДокумента.ПолучательСчет = БанковскийСчет.НомерСчета Тогда
// Документ считается корректным и относится к нашей организации
Иначе
// Документ помечается к удалению из временной таблицы загрузки
Т.Удалить(СтрокаДокумента);
КонецЕсли;
Разберем, почему это условие перестает выполняться. В формате обмена 1.03 для каждой операции должны присутствовать теги ПлательщикСчет и ПолучательСчет. Если при обновлении системы BS-Client банк изменил настройки экспорта, эти поля могут либо отсутствовать, либо называться иначе (например, ПлательщикРасчСчет). Если 1С не находит точного совпадения номера счета в этих полях с номером счета, выбранным в обработке, она считает, что транзакция не относится к данной выписке, и просто игнорирует её. При этом системное сообщение об ошибке не выводится, так как формально файл прочитан корректно, просто «подходящих» данных в нем не обнаружено.
Как показывает практика взаимодействия с технической поддержкой банка ВТБ, проблема зачастую решается на их стороне. Система BS-Client использует специальные модули или библиотеки (скрипты экспорта), которые отвечают за формирование файла в стандарте 1С. Рассмотрим шаги, которые необходимо предпринять:
.dll или специфические конфигурационные файлы для модуля экспорта BS-Client).Важный момент: убедитесь, что в самом клиент-банке выбран правильный профиль экспорта. Иногда после технических работ настройки сбрасываются на «Стандартный», в то время как требуется профиль «1С (расширенный)» или «1С 1.03», который гарантированно включает все необходимые реквизиты контрагентов.
Если обновление банковского компонента недоступно или не помогло, проанализируем настройки на стороне 1С. В конфигурации УПП (Управление производственным предприятием) версии 1.3 настройки обмена хранятся в справочнике настроек обмена с банками. Пройдем по шагам для проверки:
1.03.ДБО BS-Client. В некоторых случаях помогает переключение на универсальный тип 1С:Предприятие - Клиент Банка, так как он имеет более гибкие алгоритмы поиска тегов.UTF-8 без метки BOM, а 1С ожидает Windows-1251 (ANSI), то кириллические символы и служебные заголовки могут распознаваться некорректно, что приведет к пустому результату.Чтобы окончательно убедиться, что виноват банк, а не настройки 1С, проанализируем содержимое файла выгрузки вручную. Рассмотрим этот процесс по шагам:
kl_to_1c.txt).СекцияДокумент=Платежное поручение).ПолучательСчет=... и ПлательщикСчет=....Если эти строки отсутствуют или вместо них указаны пустые значения, значит, 1С физически не может привязать эти платежи к вашему расчетному счету. В этом случае аргументы поддержки банка о том, что «файл же выгрузился», являются несостоятельными, так как нарушен стандарт структуры данных 1.03.
Посмотрим на ситуацию с точки зрения обновлений конфигурации. Несмотря на то, что в описании релизов (например, 145 или 146 для УПП) может не быть явного упоминания форматов ВТБ, разработчики 1С периодически вносят изменения в общие модули обработки текстовых файлов. Рассмотрим возможность временного обхода проблемы через отладчик:
Если вы обладаете навыками программирования, можно временно модифицировать условие проверки в обработке КлиентБанк, чтобы она игнорировала отсутствие номера счета, если в заголовке файла (секция РасчСчет) указан верный счет организации. Однако помните, что это «костыль», который может привести к ошибочному зачислению платежей не на те счета, если у вашей организации их несколько в одном банке. При необходимости можно воспользоваться исправленной обработкой Клиент-Банк для УПП 1.3, которая корректно разбирает реквизиты выгрузки без вмешательства в код конфигурации.
В долгосрочной перспективе рекомендуется рассмотреть переход на технологию DirectBank (прямой обмен), если ваш банк и версия конфигурации это поддерживают. Это избавит вас от проблем с промежуточными текстовыми файлами и несовместимостью версий BS-Client. При переходе с устаревшей программы на новую систему актуален перенос данных из УПП 1.3 в ERP 2 для сохранения документов, остатков и истории учета.