Работа бухгалтера в крупной компании или холдинге часто сопряжена с рутинным процессом: необходимо зайти в каждую информационную базу, выгрузить файлы из клиент-банков и загрузить их в 1С. Когда количество баз (например, 10 информационных баз Бухгалтерия предприятия) и банков (Альфа-Банк, ВТБ, Сбербанк, Росбанк) растет, ручной труд становится неэффективным. В этой статье мы разберем, как автоматизировать этот процесс, чтобы обмен происходил «по одной кнопке» или вовсе без участия пользователя.
Сервис 1С:ДиректБанк позволяет отправлять платежные поручения и получать выписки напрямую из банка без выгрузки в промежуточные файлы (txt, xml). Это стандартное решение, встроенное в большинство современных конфигураций, таких как 1С:ERP, 1С:КА и 1С:БП 3.0.
Рассмотрим подробнее механизм работы. Главная проблема, с которой сталкиваются пользователи — необходимость ввода СМС-кода для подтверждения запроса на выписку. Однако это ограничение можно обойти. Разберем по шагам, как это реализовать:
РегламентныеЗадания. Система будет по расписанию (например, каждые 30 минут) инициировать сессию с банком и загружать документы Поступление на расчетный счет.Проанализируем примерный программный вызов для инициации обмена в фоновом режиме (упрощенно):
// Пример вызова механизмов DirectBank из кода
ПараметрыОбмена = ОбменСБанками.ПодготовитьПараметрыОбмена(НастройкаДиректБанк);
ОбменСБанками.ВыполнитьОбменЗапросамиВыписок(ПараметрыОбмена);
Если компания обладает большим количеством транзакций, стандартного DirectBank может быть недостаточно. Рассмотрим технологию Host-to-Host. Это прямой зашифрованный канал связи между сервером предприятия и сервером банка.
Основные преимущества H2H:
Для реализации этого метода необходимо заключить договор с банком на обслуживание по протоколу H2H. После этого в 1С (чаще всего в 1С:ERP или 1С:Управление холдингом) настраивается интеграция через API банка. Это решение идеально подходит для ситуации, когда нужно собирать данные по всем организациям холдинга в одну «мастер-базу».
В конфигурации 1С:ERP реализован функционал «Централизованное казначейство». Выясним, как это помогает решить проблему десяти разных баз Бухгалтерии предприятия.
Вместо того чтобы настраивать обмен в каждой базе БП, мы создаем единый центр управления платежами в ERP:
Бухгалтерии через стандартный механизм Синхронизация данных (используя формат EnterpriseData).Такая архитектура позволяет бухгалтеру работать в режиме «одного окна». Ему не нужно переключаться между базами, так как все банковские операции аккумулируются в одной системе.
Если использование DirectBank невозможно (например, в старых версиях УПП или при специфических требованиях банка), рассмотрим вариант автоматизации через файловый обмен. Проанализируем ситуацию, когда бухгалтер сохраняет все выписки в одну папку.
Мы можем разработать внешнюю обработку, которая будет выполнять следующие действия:
Пример кода для перебора файлов в каталоге:
МассивФайлов = НайтиФайлы(ПутьККаталогу, "*.txt");
Для Каждого ФайлИзСписка Из МассивФайлов Цикл
// Чтение содержимого файла
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ФайлИзСписка.ПолноеИмя);
// Вызов стандартной обработки загрузки выписки
ПараметрыЗагрузки = Новый Структура("Файл", ФайлИзСписка.ПолноеИмя);
БанковскиеВыписки.ЗагрузитьФайл(ПараметрыЗагрузки);
КонецЦикла;
В случаях, когда банки не предоставляют API или DirectBank, а ручной труд слишком дорог, применяются программные роботы. Робот имитирует действия человека: запускает браузер, заходит в личный кабинет банка, вводит логин/пароль, скачивает файл и нажимает кнопку «Загрузить» в 1С.
Этот метод сложен в поддержке (при изменении интерфейса банка робота нужно перенастраивать), но он позволяет автоматизировать даже те участки, которые технически закрыты для прямой интеграции.
Выясним, какое решение лучше выбрать в зависимости от условий:
1С:ДиректБанк с хранением ключей ЭЦП на сервере. Это обеспечит бесшовную загрузку.1С:ERP как шлюз для сбора данных, а затем распределяйте их через EnterpriseData.Важно помнить, что автоматизация загрузки выписок — это только половина задачи. Контроль выгрузки платежных поручений всегда должен оставаться за ответственным лицом, чтобы избежать ошибочных транзакций. Однако автоматический сбор входящих остатков и оборотов значительно ускоряет закрытие периода и актуализацию данных в системе.