Администрирование · 10 мин
Как настроить FTP в 1С: подключение и обмен файлами
Пошаговая настройка FTP в 1С: подключение через FTPСоединение, обмен файлами, настройка каталога обмена, защита данных и решение типичных ошибок.
FTP в 1С используется в двух основных сценариях: программный обмен файлами через объект FTPСоединение встроенного языка и обмен данными между базами через каталог на FTP-сервере (например, при обмене «Управление торговлей» — «Бухгалтерия» или при выгрузке товаров на сайт). Оба сценария требуют заранее подготовленного FTP-сервера с выделенным пользователем и папкой с правами на запись.
Перед настройкой убедитесь, что у вас есть адрес сервера, порт (по умолчанию 21), логин и пароль пользователя FTP, а сам сервер доступен с компьютера или сервера, где работает 1С. Проверить доступность проще всего любым FTP-клиентом вроде FileZilla: если клиент подключается и видит каталоги, сеть и учётные данные в порядке, и проблему стоит искать уже на стороне 1С.
Важно понимать ограничение: протокол FTP передаёт логин, пароль и данные в открытом виде. Если обмен идёт через интернет, а не внутри локальной сети, используйте FTPS (FTP поверх TLS) либо туннель VPN. Объект FTPСоединение поддерживает защищённое соединение через параметр защищённого соединения.
Подготовка FTP-сервера и учётной записи
Сначала поднимите или проверьте сам FTP-сервер. На Windows это может быть служба FTP в IIS, FileZilla Server или аналог; на Linux — vsftpd или proftpd. Конкретный продукт не важен для 1С: ей нужен стандартный FTP-доступ.
Создайте отдельного пользователя специально для обмена из 1С. Не используйте административную учётную запись сервера: при утечке пароля из кода или настроек злоумышленник получит полный доступ. Пользователю для 1С достаточно прав на чтение и запись в одном выделенном каталоге, например /exchange или C:\ftp\1c_exchange.
Проверьте права на каталог на уровне файловой системы, а не только в настройках FTP-сервера. Частая ситуация: в панели FTP-сервера права выданы, но NTFS-права на папку их перекрывают, и 1С получает ошибку при записи файла.
Программное подключение через объект FTPСоединение
Во встроенном языке 1С работа с FTP выполняется через объект FTPСоединение. Минимальный вызов выглядит так: создаётся объект с указанием сервера, порта, логина и пароля, после чего вызываются методы передачи файлов.
Типовой фрагмент кода для отправки файла:
УстановитьПривилегированныйРежим(Истина);
Соединение = Новый FTPСоединение(
"ftp.example.local", // сервер
21, // порт
"1c_exchange", // пользователь
"Пароль", // пароль
, // прокси
, // пассивный режим
30 // таймаут в секундах
);
Соединение.Записать("C:\Temp\export.xml", "/exchange/export.xml");
Для получения файла используется метод Получить, для списка файлов — НайтиФайлы с указанием маски, для удаления — Удалить. Все операции стоит оборачивать в Попытка/Исключение с записью текста ошибки в журнал регистрации, иначе диагностировать сбои обмена будет нечем.
Попытка
Соединение = Новый FTPСоединение("ftp.example.local", 21, "user", "pass", , Истина, 30);
Соединение.Записать("C:\Temp\export.xml", "/exchange/export.xml");
Исключение
ЗаписьЖурналаРегистрации("ОбменFTP", УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки());
КонецПопытки;Пассивный и активный режимы
Параметр пассивного режима (шестой в конструкторе) критичен, если между 1С и сервером есть NAT или файрвол. В активном режиме сервер сам инициирует соединение для передачи данных, и файрвол клиента часто его блокирует: авторизация проходит, но передача файлов зависает или обрывается. Включите пассивный режим (значение Истина) — это решает большинство таких проблем.
Защищённое соединение FTPS
Для FTPS в конструктор передаётся объект ЗащищенноеСоединениеOpenSSL в качестве последнего параметра. Учтите, что сервер должен быть настроен на FTPS (обычно порт 990 для implicit или 21 с явным TLS), а самоподписанные сертификаты могут потребовать отключения проверки сертификата, что снижает защиту.
Настройка обмена данными через FTP-каталог
Второй сценарий — типовой обмен между конфигурациями без написания кода. В планах обмена (раздел «Синхронизация данных» в типовых конфигурациях) при создании настройки синхронизации выберите вариант подключения «Синхронизация данных через файл, FTP или электронную почту», а затем «Подключение через локальный или сетевой каталог / FTP-ресурс».
В форме настройки укажите адрес сервера, порт, имя пользователя, пароль и путь к каталогу обмена. Кнопка «Проверить подключение» позволяет сразу убедиться, что параметры верны: 1С попытается авторизоваться и обратиться к каталогу.
После сохранения настройки обмен запускается вручную или по расписанию через регламентное задание синхронизации. Файлы сообщений обмена будут автоматически выгружаться в FTP-каталог и загружаться оттуда второй стороной.
- 1Создайте на FTP-сервере пользователя и каталог обмена с правами записи
- 2Проверьте подключение сторонним FTP-клиентом с того же компьютера, где работает 1С
- 3В 1С откройте настройку синхронизации данных и выберите обмен через FTP-ресурс
- 4Укажите сервер, порт, логин, пароль и путь к каталогу
- 5Нажмите «Проверить подключение» и устраните ошибку, если проверка не прошла
- 6Выполните первую синхронизацию вручную и проверьте появление файла сообщения в каталоге
- 7Настройте расписание регламентного задания обмена
Выгрузка на сайт и другие прикладные сценарии
В конфигурациях с интеграцией с сайтом (например, обмен с CMS по протоколу CommerceML) файлы выгрузки каталога и заказов иногда передаются по FTP, если сайт не принимает прямое HTTP-подключение. В этом случае настройка сводится к тому же объекту FTPСоединение внутри обработки обмена либо к внешней обработке, которая забирает готовые XML-файлы из локальной папки и отправляет их на сервер.
Ещё один частый сценарий — резервное копирование выгрузок или файловых баз на FTP-хранилище регламентным заданием. Здесь важно контролировать успешность копирования: сверяйте размер переданного файла или выполняйте пробное чтение, иначе можно долго не замечать, что копии не создаются.
Типичные ошибки и их диагностика
Ошибка «Ошибка при вызове конструктора (FTPСоединение)» или таймаут соединения почти всегда означает сетевую проблему: закрыт порт, неверный адрес или файрвол режет трафик. Проверьте доступность командой telnet к серверу по порту 21 с той же машины, где работает 1С.
Ошибка авторизации (коды вида 530) указывает на неверный логин или пароль. Учтите, что некоторые FTP-серверы чувствительны к регистру и не принимают кириллицу или спецсимволы в пароле без корректной кодировки.
Ошибки при передаче файлов после успешной авторизации (коды 425, 426 или зависание) — классический признак проблемы активного/пассивного режима. Переключите пассивный режим и проверьте, что диапазон пассивных портов открыт на файрволе сервера.
Проверка результата и контроль работы обмена
После настройки выполните контрольный прогон: отправьте тестовый файл и убедитесь, что он появился на сервере с корректным размером и содержимым. Для обмена данными проверьте, что вторая база успешно загрузила сообщение и в журнале синхронизации нет ошибок.
Для постоянного контроля ведите журнал: записывайте в журнал регистрации факт, время и результат каждой передачи. Минимальный набор для проверки работающего обмена — наличие свежих файлов в FTP-каталоге, отсутствие ошибок в журнале регистрации и актуальность данных в принимающей системе.
Как проверить результат
Файл появился, размер совпадает с исходным
Файла нет, размер нулевой или файл обрезан
Нет ошибок по событию обмена
Ошибки авторизации, таймауты или обрывы передачи
Данные появились во второй базе
Файл лежит в каталоге, но не загружается
FAQ
Можно ли настроить FTP в 1С без программирования?
Да, если речь о типовом обмене данными: в планах обмена типовых конфигураций есть готовая настройка синхронизации через FTP-ресурс с указанием сервера, логина и каталога. Программирование требуется только для нестандартных сценариев передачи файлов.
Поддерживает ли 1С SFTP (по SSH)?
Объект FTPСоединение поддерживает FTP и FTPS (FTP поверх TLS), но не SFTP по SSH. Если сервер предоставляет только SFTP, используйте внешнюю утилиту (например, WinSCP в режиме командной строки), вызываемую из 1С через ЗапуститьПриложение, или настройте на сервере FTPS.
Почему подключение проходит, а файл не отправляется?
Чаще всего причина в активном режиме FTP за NAT или файрволом: канал авторизации работает, а канал передачи данных блокируется. Включите пассивный режим и убедитесь, что диапазон пассивных портов открыт на стороне сервера. Также проверьте права пользователя на запись в целевой каталог.
Где безопасно хранить пароль от FTP в 1С?
Не храните пароль в коде общих модулей. Практичные варианты: константа или регистр сведений с ограничением доступа правами, хранение в защищённом хранилище настроек либо во внешнем файле, доступном только учётной записи сервера 1С. Код обмена выполняйте в привилегированном режиме на сервере.
Обмен работает вручную, но не работает по расписанию. В чём причина?
Регламентные задания выполняются на сервере 1С под его служебной учётной записью. Проверьте, что FTP-сервер доступен именно с сервера 1С, что в файловой базе включено выполнение регламентных заданий, и что у задания корректно задано расписание. Ошибки смотрите в журнале регистрации по событию обмена.
Какой порт указывать для подключения?
Для обычного FTP — порт 21, для неявного FTPS — обычно 990, для явного FTPS — 21 с TLS. Если администратор сервера изменил порт, уточните его у него и убедитесь, что порт открыт на всех промежуточных файрволах.
Что важно запомнить
Настройка FTP в 1С сводится к подготовке сервера с выделенным пользователем и либо к программной работе через FTPСоединение, либо к типовой настройке синхронизации через FTP-каталог. Ключевые моменты: пассивный режим за NAT, защита пароля и трафика, проверка доступности с той машины, где реально выполняется обмен, и контроль результата по журналу регистрации.