Как организовать автоматическую выгрузку и загрузку банковских выписок в нескольких базах 1С?

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

Работа бухгалтера в крупной компании или холдинге часто сопряжена с рутинным процессом: необходимо зайти в каждую информационную базу, выгрузить файлы из клиент-банков и загрузить их в 1С. Когда количество баз (например, 10 информационных баз Бухгалтерия предприятия) и банков (Альфа-Банк, ВТБ, Сбербанк, Росбанк) растет, ручной труд становится неэффективным. В этой статье мы разберем, как автоматизировать этот процесс, чтобы обмен происходил «по одной кнопке» или вовсе без участия пользователя.

Вариант 1. Использование сервиса 1С:ДиректБанк и его автоматизация

Сервис 1С:ДиректБанк позволяет отправлять платежные поручения и получать выписки напрямую из банка без выгрузки в промежуточные файлы (txt, xml). Это стандартное решение, встроенное в большинство современных конфигураций, таких как 1С:ERP, 1С:КА и 1С:БП 3.0.

Рассмотрим подробнее механизм работы. Главная проблема, с которой сталкиваются пользователи — необходимость ввода СМС-кода для подтверждения запроса на выписку. Однако это ограничение можно обойти. Разберем по шагам, как это реализовать:

  1. Использование электронной подписи (ЭЦП) вместо СМС. Многие банки позволяют настроить работу по сертификату. В этом случае подпись хранится либо на токене, либо устанавливается на сервер 1С. При запросе выписки система программно подписывает запрос сертификатом, и банк отдает данные без СМС-подтверждения.
  2. Настройка регламентных заданий. Если используется клиент-серверный вариант работы 1С, мы можем настроить объект РегламентныеЗадания. Система будет по расписанию (например, каждые 30 минут) инициировать сессию с банком и загружать документы Поступление на расчетный счет.

Проанализируем примерный программный вызов для инициации обмена в фоновом режиме (упрощенно):


// Пример вызова механизмов DirectBank из кода
ПараметрыОбмена = ОбменСБанками.ПодготовитьПараметрыОбмена(НастройкаДиректБанк);
ОбменСБанками.ВыполнитьОбменЗапросамиВыписок(ПараметрыОбмена);

Вариант 2. Технология Host-to-Host (H2H) для крупных холдингов

Если компания обладает большим количеством транзакций, стандартного DirectBank может быть недостаточно. Рассмотрим технологию Host-to-Host. Это прямой зашифрованный канал связи между сервером предприятия и сервером банка.

Основные преимущества H2H:

Для реализации этого метода необходимо заключить договор с банком на обслуживание по протоколу H2H. После этого в 1С (чаще всего в 1С:ERP или 1С:Управление холдингом) настраивается интеграция через API банка. Это решение идеально подходит для ситуации, когда нужно собирать данные по всем организациям холдинга в одну «мастер-базу».

Вариант 3. Централизованное казначейство в ERP

В конфигурации 1С:ERP реализован функционал «Централизованное казначейство». Выясним, как это помогает решить проблему десяти разных баз Бухгалтерии предприятия.

Вместо того чтобы настраивать обмен в каждой базе БП, мы создаем единый центр управления платежами в ERP:

  1. Все платежные поручения создаются в ERP.
  2. Выписки из всех банков (Сбер, ВТБ, Альфа и др.) загружаются только в ERP.
  3. После загрузки и разнесения выписок в ERP, данные автоматически транслируются в дочерние базы Бухгалтерии через стандартный механизм Синхронизация данных (используя формат EnterpriseData).

Такая архитектура позволяет бухгалтеру работать в режиме «одного окна». Ему не нужно переключаться между базами, так как все банковские операции аккумулируются в одной системе.

Вариант 4. Пакетная загрузка файлов через внешнюю обработку

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

Мы можем разработать внешнюю обработку, которая будет выполнять следующие действия:

  1. Сканировать определенный каталог на наличие файлов выписок (обычно формата .txt).
  2. Определять по ИНН организации и номеру счета, к какой базе или какой организации относится файл.
  3. Программно инициировать чтение файла и создание документов.

Пример кода для перебора файлов в каталоге:


МассивФайлов = НайтиФайлы(ПутьККаталогу, "*.txt");
Для Каждого ФайлИзСписка Из МассивФайлов Цикл
    // Чтение содержимого файла
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ФайлИзСписка.ПолноеИмя);
    
    // Вызов стандартной обработки загрузки выписки
    ПараметрыЗагрузки = Новый Структура("Файл", ФайлИзСписка.ПолноеИмя);
    БанковскиеВыписки.ЗагрузитьФайл(ПараметрыЗагрузки);
КонецЦикла;

Вариант 5. Роботизация (RPA)

В случаях, когда банки не предоставляют API или DirectBank, а ручной труд слишком дорог, применяются программные роботы. Робот имитирует действия человека: запускает браузер, заходит в личный кабинет банка, вводит логин/пароль, скачивает файл и нажимает кнопку «Загрузить» в 1С.

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

Рекомендации по выбору решения

Выясним, какое решение лучше выбрать в зависимости от условий:

Важно помнить, что автоматизация загрузки выписок — это только половина задачи. Контроль выгрузки платежных поручений всегда должен оставаться за ответственным лицом, чтобы избежать ошибочных транзакций. Однако автоматический сбор входящих остатков и оборотов значительно ускоряет закрытие периода и актуализацию данных в системе.

← На главную