При работе в российских конфигурациях 1С, таких как 1С:ERP Управление предприятием 2, пользователи часто сталкиваются с необходимостью загрузки банковских выписок из иностранных филиалов или зарубежных банков. Одной из наиболее частых проблем является попытка загрузить файл выписки из банка Республики Беларусь (РБ) в базу, настроенную под российское законодательство. При попытке импорта система выдает критическую ошибку: «Файл выписки не является файлом обмена, или неверно указана кодировка в настройках обмена банковского счета».
В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем структуру файлов и рассмотрим несколько способов решения данной задачи.
Разберем ситуацию детально. Российская версия 1С:ERP жестко ориентирована на стандарт 1CClientBankExchange. Этот стандарт был разработан фирмой «1С» для автоматизации обмена данными с российскими банками. Любая типовая обработка «Обмен с банком» в российской конфигурации при чтении файла ищет строго определенные маркеры.
Проанализируем представленный пользователем текст файла:
***** ^Type=4^ ^Acc=BY37ALFA30122316220020270000^ - Выписка по счету за период
[IN_PARAM]
^DateBegin=19.07.2018^
^DateEnd=19.07.2018^
...
^Name=ООО "ПАПИЛЛОНС БЕЛ"^
^UNN=193037831^
Выясним причину отказа системы. Как мы видим, файл использует разделители в виде символа каретки ^ и специфические заголовки секций, такие как [IN_PARAM] и [OUT_PARAM]. Это внутренний формат системы BS-Client (используется во многих банках РБ, включая Альфа-Банк). Российская же 1С ожидает, что первая строка файла будет выглядеть так: 1CClientBankExchange.
Помимо структуры, существуют фундаментальные различия в реквизитах:
^UNN=...^. УНН (Учетный номер налогоплательщика) в Беларуси состоит из 9 цифр, тогда как в РФ ИНН организации имеет 10 цифр, а физлица — 12.Это самый простой и правильный путь, который не требует программирования. Большинство крупных банков Беларуси («Альфа-Банк», «Приорбанк», «Белагропромбанк» и др.) имеют в своих системах дистанционного банковского обслуживания (ДБО) возможность выбора формата экспорта.
Рассмотрим шаги, которые необходимо предпринять в клиент-банке:
Если выбрать правильный формат, файл начнется со строки 1CClientBankExchange, и российская 1С:ERP сможет его прочитать. Однако будьте готовы к тому, что из-за разницы в длине счетов IBAN (28 знаков) программа может выдать предупреждение, но документ Поступление на расчетный счет или Списание с расчетного счета все равно будет создан в черновом варианте.
Если клиент-банк по какой-то причине не позволяет выгрузить данные в стандартном формате 1С, нам придется «написать или поискать готовое», как и советовали участники форума. Рассмотрим логику работы такой обработки.
Проанализируем ситуацию: нам нужно превратить белорусский формат ^...^ в российский текстовый файл. Для этого программисту 1С необходимо написать внешнюю обработку, которая будет выполнять следующие действия:
^.Пример кода для парсинга специфической строки из файла РБ:
// Пример функции для извлечения значения из строки с символами ^
Функция ИзвлечьЗначение(СтрокаФайла, Ключ)
ПозицияКлюча = Найти(СтрокаФайла, Ключ + "=");
Если ПозицияКлюча = 0 Тогда
Возврат "";
КонецЕсли;
НачалоЗначения = ПозицияКлюча + СтрДлина(Ключ) + 1;
ОстатокСтроки = Сред(СтрокаФайла, НачалоЗначения);
КонецЗначения = Найти(ОстатокСтроки, "^");
Возврат Лев(ОстатокСтроки, КонецЗначения - 1);
КонецФункции
После извлечения данных (дата, сумма, контрагент, назначение платежа) необходимо сформировать файл, структура которого начинается так:
1CClientBankExchange
ВерсияФормата=1.02
Кодировка=Windows
Отправитель=БухгалтерияПредприятия
ДатаСоздания=20.05.2023
...
СекцияДокумент=Платежное поручение
Номер=123
Дата=20.05.2023
Сумма=1500.00
...
КонецДокумента
КонецФайла
Если выписки загружаются ежедневно и в больших объемах, использование внешних конвертеров может быть неудобным. В этом случае целесообразно создать расширение конфигурации. В расширении можно переопределить модуль обработки ОбменСБанком.
Разберем, на что обратить внимание при разработке расширения:
БанковскиеСчетаОрганизаций и БанковскиеСчетаКонтрагентов.***** ^Type=4^, она должна переключаться на специальный алгоритм обработки, минуя стандартные проверки заголовка 1CClientBankExchange.Даже после успешной загрузки вы столкнетесь с тем, что контрагенты не будут подтягиваться автоматически. Выясним причину: поиск контрагента в 1С:ERP РФ идет по ИНН и КПП. Белорусский УНН (9 знаков) система может не найти.
Рекомендации по настройке:
Валюты загружены курсы Национального Банка Республики Беларусь (НБРБ), если учет ведется в белорусских рублях (BYN).Итог: Прямая загрузка файла в формате «Альфа-Бизнес Онлайн» в российскую ERP невозможна. Выбирайте в клиент-банке формат «1С» либо используйте внешнюю обработку-конвертер, которая переведет данные из формата с разделителями ^ в формат 1CClientBankExchange.