Как загрузить выписку белорусского банка в российскую 1С:ERP: решение проблемы несовместимости форматов

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Бухгалтерский учет Финансы и профессиональные услуги
← На главную

При работе в российских конфигурациях 1С, таких как 1С:ERP Управление предприятием 2, пользователи часто сталкиваются с необходимостью загрузки банковских выписок из иностранных филиалов или зарубежных банков. Одной из наиболее частых проблем является попытка загрузить файл выписки из банка Республики Беларусь (РБ) в базу, настроенную под российское законодательство. При попытке импорта система выдает критическую ошибку: «Файл выписки не является файлом обмена, или неверно указана кодировка в настройках обмена банковского счета».

В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем структуру файлов и рассмотрим несколько способов решения данной задачи.

Почему 1С:ERP (РФ) не принимает файл из банка Беларуси?

Разберем ситуацию детально. Российская версия 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.

Помимо структуры, существуют фундаментальные различия в реквизитах:

  1. Номер счета (IBAN): В Беларуси используются счета формата IBAN, состоящие из 28 символов. В России расчетные счета состоят из 20 цифр. Типовая российская конфигурация может просто «не впустить» в поле ввода номер такой длины или обрезать его.
  2. Идентификатор налогоплательщика: В файле мы видим тег ^UNN=...^. УНН (Учетный номер налогоплательщика) в Беларуси состоит из 9 цифр, тогда как в РФ ИНН организации имеет 10 цифр, а физлица — 12.
  3. БИК банка: Структура БИК (BIC) также отличается, что мешает автоматическому поиску банка в классификаторе РФ.

Решение 1: Смена формата выгрузки в клиент-банке

Это самый простой и правильный путь, который не требует программирования. Большинство крупных банков Беларуси («Альфа-Банк», «Приорбанк», «Белагропромбанк» и др.) имеют в своих системах дистанционного банковского обслуживания (ДБО) возможность выбора формата экспорта.

Рассмотрим шаги, которые необходимо предпринять в клиент-банке:

  1. Перейдем в раздел «Выписки» или «Отчеты» в личном кабинете банка.
  2. При выборе параметров экспорта найдем выпадающий список «Формат файла».
  3. Нам нужно найти вариант, который называется «1С (стандартный)», «Текстовый формат 1С» или «1CClientBankExchange».
  4. Если банк предлагает выбор версии (1.01, 1.02, 1.03), выберем наиболее свежую для лучшей совместимости с ERP.

Если выбрать правильный формат, файл начнется со строки 1CClientBankExchange, и российская 1С:ERP сможет его прочитать. Однако будьте готовы к тому, что из-за разницы в длине счетов IBAN (28 знаков) программа может выдать предупреждение, но документ Поступление на расчетный счет или Списание с расчетного счета все равно будет создан в черновом варианте.

Решение 2: Использование внешней обработки-конвертера

Если клиент-банк по какой-то причине не позволяет выгрузить данные в стандартном формате 1С, нам придется «написать или поискать готовое», как и советовали участники форума. Рассмотрим логику работы такой обработки.

Проанализируем ситуацию: нам нужно превратить белорусский формат ^...^ в российский текстовый файл. Для этого программисту 1С необходимо написать внешнюю обработку, которая будет выполнять следующие действия:

  1. Считывать текстовый файл построчно.
  2. Парсить (разбирать) значения между символами ^.
  3. Заполнять структуру данных, соответствующую российскому стандарту.
  4. Записывать новый текстовый файл, понятный для ERP.

Пример кода для парсинга специфической строки из файла РБ:


// Пример функции для извлечения значения из строки с символами ^
Функция ИзвлечьЗначение(СтрокаФайла, Ключ)
    ПозицияКлюча = Найти(СтрокаФайла, Ключ + "=");
    Если ПозицияКлюча = 0 Тогда
        Возврат "";
    КонецЕсли;
    
    НачалоЗначения = ПозицияКлюча + СтрДлина(Ключ) + 1;
    ОстатокСтроки = Сред(СтрокаФайла, НачалоЗначения);
    КонецЗначения = Найти(ОстатокСтроки, "^");
    
    Возврат Лев(ОстатокСтроки, КонецЗначения - 1);
КонецФункции

После извлечения данных (дата, сумма, контрагент, назначение платежа) необходимо сформировать файл, структура которого начинается так:


1CClientBankExchange
ВерсияФормата=1.02
Кодировка=Windows
Отправитель=БухгалтерияПредприятия
ДатаСоздания=20.05.2023
...
СекцияДокумент=Платежное поручение
Номер=123
Дата=20.05.2023
Сумма=1500.00
...
КонецДокумента
КонецФайла

Решение 3: Модификация через расширение (для продвинутых пользователей)

Если выписки загружаются ежедневно и в больших объемах, использование внешних конвертеров может быть неудобным. В этом случае целесообразно создать расширение конфигурации. В расширении можно переопределить модуль обработки ОбменСБанком.

Разберем, на что обратить внимание при разработке расширения:

Практические советы по работе с белорусскими выписками в РФ-базе

Даже после успешной загрузки вы столкнетесь с тем, что контрагенты не будут подтягиваться автоматически. Выясним причину: поиск контрагента в 1С:ERP РФ идет по ИНН и КПП. Белорусский УНН (9 знаков) система может не найти.

Рекомендации по настройке:

  1. В карточке контрагента в поле ИНН записывайте белорусский УНН. Система может выдать предупреждение о неверном формате, но позволит сохранить данные.
  2. Поле КПП оставляйте пустым, так как в Беларуси этого реквизита нет.
  3. Для корректной работы валютных платежей убедитесь, что в справочнике Валюты загружены курсы Национального Банка Республики Беларусь (НБРБ), если учет ведется в белорусских рублях (BYN).

Итог: Прямая загрузка файла в формате «Альфа-Бизнес Онлайн» в российскую ERP невозможна. Выбирайте в клиент-банке формат «1С» либо используйте внешнюю обработку-конвертер, которая переведет данные из формата с разделителями ^ в формат 1CClientBankExchange.

← На главную