Как организовать защищенный обмен данными РИБ в 1С:Управление торговлей 10.3 при нестабильном интернете?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

При организации распределенной информационной базы (РИБ) в конфигурациях предыдущих поколений, таких как 1С:Управление торговлей 10.3, разработчики часто сталкиваются с проблемами доставки сообщений обмена. Типовой обмен через электронную почту часто дает сбои из-за ограничений почтовых серверов по размеру вложений, спам-фильтров и разрывов соединения. Переход на защищенный протокол передачи файлов FTPS (FTP over TLS) наталкивается на то, что типовой функционал конфигурации изначально создавался под обычный незашифрованный FTP, а удаленные торговые точки нередко подключены через сотовые модемы (USB-свистки) с динамическими IP-адресами операторов.

Разберем по шагам, какие технические варианты существуют для решения этой задачи: от прямой доработки встроенного механизма подключения к FTPS на уровне платформы 1С 8.3 до применения альтернативных сетевых архитектур.

Вариант 1. Программная поддержка FTPS в коде 1С через FTPСоединение

Проанализируем возможности платформы 1С:Предприятие 8.3. Начиная с версии 8.3.9, в конструктор объекта FTPСоединение была добавлена штатная поддержка защищенных протоколов TLS. Типовой код конфигурации «Управление торговлей 10.3» вызывает конструктор без параметров безопасности, однако при работе на современной платформе его можно доработать точечно.

Посмотрим на пример инициализации безопасного соединения FTPES (явный TLS, порт 21) или неявного FTPS (порт 990):


ЗащитаOpenSSL = Новый ЗащищенноеСоединениеOpenSSL();
УровеньЗащиты = УровеньИспользованияЗащищенногоСоединенияFTP.Требовать;

// Создаем защищенное соединение:
// Сервер, Порт, Пользователь, Пароль, Прокси, ПассивныйРежим, Таймаут, ЗащищенноеСоединение, УровеньЗащиты
СоединениеFTP = Новый FTPСоединение(
    СерверFTP,
    ПортFTP,
    ЛогинFTP,
    ПарольFTP,
    Неопределено,
    Истина, // Обязательно используем пассивный режим
    60,
    ЗащитаOpenSSL,
    УровеньЗащиты
);

Рассмотрим важные нюансы при работе с FTPS через мобильные USB-модемы:

  1. Блокировка каналов передачи данных NAT/CGNAT. В протоколе FTPS управляющий канал зашифрован, поэтому роутеры мобильных операторов не могут отследить команду PASV и динамический порт, который открывает сервер для передачи файла. Это часто приводит к зависанию на этапе чтения каталога или отправки сообщения обмена.
  2. Настройка сервера. На стороне FTP-сервера необходимо жестко ограничить диапазон портов для пассивного режима (Passive Port Range), открыть их на внешнем фаерволе и явно прописать внешний IP-адрес сервера в конфигурации FTP-службы.

Вариант 2. Схема «Локальный каталог + P2P-синхронизация» (BTSync / Resilio / Syncthing)

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

Разберем архитектуру данного решения:

  1. В настройках узлов РИБ в 1С:Управление торговлей 10.3 указывается стандартный транспорт обмена — Обмен через локальный/сетевой каталог (например, C:\1C_Exchange\).
  2. На рабочем компьютере точки и на главном сервере устанавливается сервис распределенной синхронизации файлов (например, BTSync / Resilio Sync, Syncthing).
  3. Утилита работает в фоновом режиме как системная служба, отслеживает появление файлов в папке обмена и выполняет их синхронизацию по защищенному протоколу TLS/P2P.

Преимущества такого подхода:

  1. Устойчивость к разрывам связи. При обрыве соединения процесс передачи возобновляется ровно с того места, где он прервался, без повторной передачи всего пакета РИБ.
  2. Отсутствие зависаний интерфейса 1С. Выгрузка и загрузка сообщения обмена в локальную папку происходят мгновенно, кассир или оператор не блокируются при нестабильной связи.
  3. Обход ограничений CGNAT. Протоколы P2P успешно работают через NAT сотовых операторов без необходимости выделения белых статических IP-адресов на точках.

Вариант 3. Переход на обмен по протоколу HTTPS

Рассмотрим еще один современный вариант модернизации узлов РИБ — передачу файлов через веб-сервер с использованием объекта платформы HTTPСоединение.

Для реализации этого метода:

  1. Центральная база 1С публикуется на веб-сервере (IIS или Apache) с настроенным SSL-сертификатом.
  2. В конфигурации создается собственный HTTP-сервис с методами POST и GET для приема и отдачи zip-пакетов узлов РИБ.
  3. На стороне подчиненных баз дорабатывается процедура выполнения обмена: сформированный zip-файл отправляется HTTP-запросом по стандартному порту 443.

Посмотрим на пример отправки файла через HTTPСоединение:


Защита = Новый ЗащищенноеСоединениеOpenSSL();
СоединениеHTTP = Новый HTTPСоединение("server.domain.ru", 443, Логин, Пароль, , 60, Защита);

Запрос = Новый HTTPЗапрос("/trade_base/hs/rib_exchange/upload?node=" + КодУзла);
Запрос.УстановитьИмяФайлаТела(ПутьКФайлуВыгрузки);

Ответ = СоединениеHTTP.ОтправитьДляОбработки(Запрос);
Если Ответ.КодСостояния = 200 Тогда
    // Пакет успешно доставлен и принят сервером
КонецЕсли;

Использование HTTPS позволяет полностью решить проблему сотовых операторов, так как трафик передается по единому TCP-соединению без динамического открытия дополнительных портов, свойственного протоколам семейства FTP.

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

Подведем итоги и выберем оптимальный путь модернизации:

  1. Если требуется минимальное вмешательство в инфраструктуру и бюджет ограничен, доработайте типовой модуль обмена УТ 10.3, добавив ЗащищенноеСоединениеOpenSSL в конструктор FTPСоединение, и настройте на FTP-сервере пассивные порты.
  2. Если сотовый интернет на точках регулярно дает сбои и пакеты обмена превышают несколько мегабайт, лучшим выбором будет перевод обмена на локальный каталог с фоновой утилитой синхронизации (Syncthing / BTSync).
  3. Если планируется дальнейшее развитие системы и отказ от устаревших транспортов, реализуйте обмен через HTTP-сервисы по защищенному каналу HTTPS.
← На главную