Синхронизация распределенных информационных баз (РИБ) или обмен данными между локальной 1С и внешними системами (например, интернет-магазином) традиционно требует промежуточного файлового хранилища. Долгое время стандартом для этой задачи оставался протокол FTP. Однако процесс развертывания полноценного FTP-сервера часто пугает системных администраторов и программистов необходимостью устанавливать сторонний софт (вроде FileZilla Server), пробрасывать порты на роутерах и следить за безопасностью.
В этой статье мы подробно разберем, как решить задачу обмена файлами наиболее простым, быстрым и безопасным способом — от настройки встроенных средств Windows до использования современных облачных альтернатив.
Если на сервере или рабочем компьютере установлена операционная система Windows (как серверная, так и обычная клиентская версия Pro), нам не нужно скачивать сторонние утилиты. В систему уже встроен мощный веб-сервер IIS (Internet Information Services), который включает в себя и службу FTP.
Разберем по шагам, как активировать и настроить этот компонент:
После этого служба запустится автоматически. Нам останется лишь настроить брандмауэр Windows, разрешив входящие подключения для службы FTP.
Если настройка IIS кажется избыточной, а FileZilla Server пугает обилием вкладок, можно воспользоваться специализированным мини-сервером. Одним из самых простых и не требующих установки решений является утилита Baby FTP Server.
Рассмотрим особенности этого инструмента:
Этот вариант идеально подходит для быстрой организации временного обмена, проведения тестов или работы в локальной сети небольшого офиса. Для постоянной промышленной эксплуатации крупных баз лучше использовать более отказоустойчивые методы.
Часто администрирование собственного сервера обходится дороже, чем аренда готового ресурса. Как отмечают специалисты на форумах, гораздо проще заплатить символическую сумму в месяц за специализированное облачное хранилище или простейший виртуальный хостинг с поддержкой FTP.
Выясним основные преимущества такого подхода:
Обычный протокол FTP морально устарел, поскольку передает логины, пароли и коммерческие данные в открытом, незашифрованном виде. Вместо него современные стандарты требуют использования защищенного протокола SFTP. Начиная с Windows 10 и Windows Server 2019, в операционную систему по умолчанию интегрирован сервер OpenSSH.
Проанализируем, почему этот вариант считается одним из лучших:
Для небольших компаний или распределенных баз (РИБ) существует гениальное по своей простоте решение, которое вообще избавляет от необходимости настраивать сетевые протоколы обмена в самой 1С.
Разберем по шагам суть этого метода:
В результате процесс выглядит следующим образом: 1С на первом компьютере просто записывает файл обмена на локальный диск C:\YandexDisk\Exchange. Облачный клиент мгновенно замечает новый файл и закачивает его в облако. Облачный клиент на втором компьютере тут же скачивает этот файл к себе в аналогичную папку, откуда его успешно забирает вторая база 1С. Никаких настроек роутеров, проброса портов и покупки статических IP-адресов не требуется!
Если вы хотите идти в ногу со временем и использовать наиболее стабильные технологии, обратите внимание на WebDAV и S3-хранилища.
WebDAV позволяет подключать облачные хранилища напрямую к операционной системе или работать с ними из 1С через защищенный протокол HTTPS (порт 443). Этот порт всегда открыт в любых сетях, поэтому у вас никогда не возникнет проблем с блокировкой трафика брандмауэрами.
Объектные хранилища S3 (которые предоставляют такие провайдеры, как Yandex Cloud, Selectel или Cloud.ru) являются стандартом де-факто для хранения бэкапов и файлов обмена. Начиная с версии платформы 8.3.15, в 1С реализована встроенная поддержка работы с S3-совместимыми хранилищами, что позволяет осуществлять обмен напрямую через API, минуя любые промежуточные FTP-серверы.
Если вы все же остановили свой выбор на классическом FTP-соединении, обязательно учитывайте технические особенности работы этого протокола, из-за которых чаще всего ломается обмен в 1С.
FTP-протокол использует два режима передачи данных:
При написании кода или интерактивной настройке обмена в 1С всегда следите за тем, чтобы был включен пассивный режим.
Посмотрим на пример инициализации безопасного и корректного подключения в коде 1С:
// Создаем параметры подключения с обязательным указанием пассивного режима
ПассивныйРежим = Истина;
Порт = 21;
Таймаут = 30; // Время ожидания ответа сервера в секундах
Соединение = Новый FTPСоединение("ftp.example.com", Порт, "Логин1С", "Пароль1С", , ПассивныйРежим, Таймаут);
// Выполняем выгрузку файла обмена
Соединение.Записать("C:\Exchange\Message_001_002.xml", "Message_001_002.xml");
Использование параметра ПассивныйРежим = Истина в конструкторе объекта FTPСоединение гарантирует, что ваше подключение успешно преодолеет защитные экраны и маршрутизаторы на стороне клиента.