Обмен файлами через FTP-протокол остаётся востребованным инструментом для интеграции 1С:Предприятия с внешними системами, банками или контрагентами. Несмотря на появление современных API и облачных сервисов, многие организации по-прежнему используют FTP для передачи выписок, отчётности, прайс-листов или архивов. В этой статье разберём все актуальные способы отправки файлов на FTP-сервер непосредственно из 1С 8.3 — от стандартных механизмов до внешних компонент и программного кода.
Особенность работы с FTP в 1С заключается в отсутствии встроенной графической утилиты для загрузки файлов: всё реализуется либо через внешние обработки, либо через программный код на встроенном языке. Это требует от пользователя базовых знаний конфигурирования или умения работать с готовыми решениями. Мы рассмотрим варианты для разных уровней подготовки — от простых до продвинутых, с учётом нюансов аутентификации, шифрования и обработки ошибок.
Важно: если ваша задача связана с обменом данными между базами 1С (например, синхронизацией складов или заказов), то FTP — не всегда оптимальное решение. В таких случаях лучше изучить возможности планов обмена, распределённых информационных баз или веб-сервисов. FTP целесообразен именно для передачи готовых файлов (XML, CSV, TXT, ZIP) во внешние системы.
1. Подготовка к отправке файлов: что нужно знать до начала
Прежде чем приступать к настройке, убедитесь, что у вас есть все необходимые данные для подключения к FTP-серверу. Без них любые попытки загрузки файлов обречены на ошибки. Вот минимальный набор параметров, которые должны быть у вас на руках:
- 🔹 Адрес FTP-сервера — может выглядеть как
ftp.example.comили IP-адрес (например,192.168.1.100). - 🔑 Логин и пароль — учётные данные для доступа. Иногда серверы поддерживают анонимный доступ (логин
anonymous), но это редкость для корпоративных систем. - 📁 Путь к целевой папке — например,
/incoming/или/upload/2026/. Уточните, нужно ли создавать папку заранее. - 🔒 Тип соединения — обычный FTP (порт 21), FTPS (FTP через SSL, порт 990) или SFTP (SSH, порт 22). Последние два обеспечивают шифрование.
- 📡 Пассивный/активный режим — большинство современных серверов требует пассивный режим (PASV).
Если вы работаете с 1С:Предприятием в файловом варианте или на сервере 1С:Предприятия, проверьте, нет ли ограничений на исходящие соединения в настройках брандмауэра или антивируса. Корпоративные политики безопасности часто блокируют FTP-порты, что приводит к ошибкам типа «Не удалось установить соединение». Также убедитесь, что на сервере 1С установлены актуальные корневые сертификаты (если используется FTPS).
⚠️ Внимание: Некоторые хостинг-провайдеры ограничивают количество одновременных FTP-подключений с одного IP. Если вы планируете отправлять файлы из 1С в фоновом режиме (например, по расписанию), уточните лимиты у администратора сервера.
Для тестирования подключения можно использовать стандартные FTP-клиенты вроде FileZilla или WinSCP. Это поможет убедиться, что проблема не в сервере, а в настройках 1С. Если подключение через внешний клиент работает, но не работает из 1С — ищите ошибку в коде или настройках платформы.
2. Способ 1: Отправка через встроенную обработку «ЗагрузкаФайлаНаFTP»
Самый простой способ для пользователей без навыков программирования — использовать готовые обработки, которые идут в комплекте с некоторыми типовыми конфигурациями (например, 1С:Бухгалтерия или 1С:Управление торговлей). Одна из таких обработок — ЗагрузкаФайлаНаFTP.epf. Она позволяет загружать файлы без написания кода, через графический интерфейс.
Чтобы найти и запустить обработку:
- Откройте 1С:Предприятие в режиме 1С:Предприятие (не конфигуратор!).
- Перейдите в меню
Файл → Открыть.... - Выберите файл обработки
ЗагрузкаФайлаНаFTP.epf(обычно он лежит в папке с шаблонами или в каталоге 1С). - Заполните поля:
- 📌 Адрес FTP-сервера — например,
ftp.example.ru. - 👤 Пользователь и Пароль.
- 📂 Путь на сервере — папка, куда будет загружен файл (например,
/incoming/). - 📄 Локальный файл — путь к файлу на вашем компьютере или сервере 1С.
- 📌 Адрес FTP-сервера — например,
- Нажмите Загрузить.
- 🔧
ИнтернетПрокси— указываем адрес сервера и порт (21 для FTP, 990 для FTPS). - 🔐
FTPСоединение— создаём соединение с логином/паролем. Последний параметрИстинавключает пассивный режим. - 📁
ЗагрузитьФайл— метод для отправки файла. Первый параметр — локальный путь, второй — путь на сервере. - 🔐 Поддержка SFTP и современных методов шифрования.
- 📈 Возможность работы с большими файлами (более 2 ГБ).
- 🔄 Реализация рекурсивной загрузки папок.
- 🛡️ Поддержка прокси-серверов и сложных сетевых конфигураций.
- 💰 Дополнительные затраты на покупку компоненты.
- 🔧 Необходимость регистрации DLL/COM-объектов на сервере 1С.
- 📚 Потребность в изучении документации (хотя большинство поставляется с примерами для 1С).
- Создайте обработку с кодом загрузки файла на FTP (см. раздел 3).
- В конфигураторе откройте ветку
Общие → Регламентные задания. - Создайте новое задание, укажите:
- 📅 Расписание (например, «Каждый день в 23:00»).
- 🔄 Метод выполнения — выберите вашу обработку.
- 👤 Пользователь — от имени кого будет выполняться (должен иметь права на доступ к FTP и файлам).
- Сохраните и запустите задание в тестовом режиме.
- 🕒 Задания выполняются на сервере 1С, поэтому все пути к файлам должны быть доступны с сервера (не локальные пути пользователя!).
- 🔒 Если FTP-сервер требует взаимодействия (например, подтверждение сертификата), регламентное задание не сможет его обработать — нужна полная автоматизация.
- 📤 Для отслеживания ошибок настройте журнал регистрации в 1С или отправку уведомлений на email.
- Неверный адрес или порт сервера.
- FTP-сервер недоступен.
- Брандмауэр блокирует исходящие соединения.
- Проверьте адрес и порт через FileZilla.
- Уточните у администратора, не блокируется ли FTP трафик.
- Попробуйте отключить брандмауэр временно для теста.
- Неверный логин/пароль.
- Учётная запись заблокирована на сервере.
- Проверьте регистр в логине/пароле (особенно если сервер на Linux).
- Сбросьте пароль через панель управления хостингом.
- Не хватает прав на запись в папку.
- Неверный путь (папка не существует).
- Проверьте права доступа к папке через FTP-клиент.
- Убедитесь, что путь указан относительно корневой директории пользователя.
- Сервер не отвечает в установленное время.
- Медленное интернет-соединение.
- Увеличьте таймаут в коде:
FTP.Таймаут = 60; - Проверьте стабильность сети.
- 🔒 Используйте FTPS или SFTP вместо обычного FTP. Даже если сервер поддерживает только FTP, настаивайте на переходе на защищённый протокол.
- 🔑 Храните пароли в безопасном месте:
- Не вписывайте пароли прямо в код обработки.
- Используйте хранилище паролей 1С (
ПолучениеПароля()) или внешние системы типа 1С:ДиректБанк.
- 📜 Логируйте только необходимую информацию — не записывайте в лог содержимое передаваемых файлов, особенно если это персонифицированные данные.
- 🚪 Ограничивайте доступ к папкам на FTP-сервере:
- Настройте права так, чтобы пользователь 1С имел доступ только к своей папке.
- Отключите возможность просмотра чужих файлов (
chmod 750для Linux).
- 🔐 Шифруйте файлы перед отправкой (например, в архив с паролем).
- 📋 Ведите журнал передачи данных (кто, когда и какие файлы отправил).
- 📄 Заключите с контрагентом соглашение о конфиденциальности (NDA).
- Переименуйте файл перед отправкой, используя транслит (например,
отчет.xml→otchet.xml). - Используйте внешние компоненты (например, AddIn.FTP), которые корректно обрабатывают кодировку.
- Если сервер поддерживает UTF-8, укажите кодировку явно в настройках соединения.
- 🔑 Используйте ключи SSH вместо пароля (для SFTP). Большинство внешних компонент (например, SecureBlackbox) поддерживают аутентификацию по ключу.
- 🤖 Автоматизируйте ввод второго фактора через сторонние сервисы (например, AutoIt или Python-скрипт, который будет эмулировать действия пользователя).
- 📧 Попросите администратора FTP-сервера создать отдельного пользователя без 2FA специально для автоматизированных задач (с ограниченными правами).
- Написать собственную обработку с использованием
FTPСоединение(см. раздел 3). - Или подключить внешнюю компоненту (например, для отправки отчётности в ПФР или ФНС).
- 📤 Выгрузки реестров для банков (зарплатные проекты).
- 📊 Передачи отчётности в госорганы (если не используется 1С:Отчётность).
- 🔄 Обмена данными с бухгалтерией (например, передача проводок по зарплате).
Если обработка отсутствует в вашей конфигурации, её можно скачать с портала 1С:ИТС или из открытых источников (например, Инфостарт). Обратите внимание, что некоторые обработки требуют доработки под конкретные версии платформы. Например, в 1С 8.3.20+ могут возникнуть проблемы с шифрованием при использовании FTPS.
Имя файла не содержит кириллицу или пробелы|
Путь на FTP-сервере указан с учётом регистра (Linux чувствителен к этому)|
Пароль не содержит специальные символы, которые могут конфликтовать с URL-кодировкой|
Файл не заблокирован другим процессом (например, антивирусом)-->
3. Способ 2: Программная отправка через встроенный язык 1С
Если вам нужно автоматизировать загрузку файлов (например, по расписанию или после проведения документа), придётся писать код на встроенном языке. 1С:Предприятие 8.3 предоставляет объекты для работы с FTP через ИнтернетПрокси и FTPСоединение. Ниже приведён универсальный пример кода, который подходит для большинства сценариев.
Пример кода для загрузки файла на FTP:
// Создаём объект FTP-соединения
Прокси = Новый ИнтернетПрокси("ftp.example.com", 21, "", "");
FTP = Новый FTPСоединение(Прокси, "username", "password",,, Истина); // Последний параметр - пассивный режим
// Указываем локальный файл и путь на сервере
ЛокальныйФайл = "C:\Temp\report.xml";
УдаленныйПуть = "/incoming/report_20260520.xml";
// Загружаем файл
Попытка
FTP.ЗагрузитьФайл(ЛокальныйФайл, УдаленныйПуть);
Сообщить("Файл успешно загружен на FTP-сервер!");
Исключение
Сообщить("Ошибка загрузки: " + ОписаниеОшибки());
КонецПопытки;
Разберём ключевые параметры:
Для FTPS (FTP через SSL) код будет немного отличаться:
Прокси = Новый ИнтернетПрокси("ftp.example.com", 990, "", "", Новый ЗащищенноеСоединениеOpenSSL());
FTP = Новый FTPСоединение(Прокси, "username", "password",,, Истина);
Обратите внимание: для работы с FTPS на сервере 1С должны быть установлены корневые сертификаты. Если сервер использует самоподписанный сертификат, его нужно добавить в хранилище сертификатов 1С через конфигуратор.
⚠️ Внимание: При использовании SFTP (SSH) встроенные объекты 1С не подходят — потребуется внешняя компонента (см. следующий раздел).
Если файл загружается долго, добавьте в код отображение прогресса с помощью метода УстановитьОбработчикОжидания(). Это предотвратит зависание интерфейса 1С.
4. Способ 3: Использование внешних компонент для SFTP и расширенных возможностей
Встроенные средства 1С не поддерживают SFTP (FTP через SSH) и имеют ограничения по работе с FTPS. Если ваш сервер требует SFTP или вам нужны дополнительные функции (например, рекурсивная загрузка папок, проверка контрольных сумм), придётся подключать внешние компоненты. Наиболее популярные решения:
| Компонента | Поддерживаемые протоколы | Особенности | Стоимость |
|---|---|---|---|
| AddIn.FTP (от 1С-Битрикс) | FTP, FTPS, SFTP | Простая интеграция, документация на русском | Платная (от 5 000 руб.) |
| SecureBlackbox | FTP, FTPS, SFTP, SCP | Широкие возможности шифрования, поддержка прокси | Платная (от 10 000 руб.) |
| Rebex Tiny SFTP | SFTP, SCP | Бесплатная для некоммерческого использования | Условно-бесплатная |
| 1С:SFTP-клиент (от партнёров) | SFTP | Оптимизирована для 1С 8.3, есть примеры кода | Платная (от 3 000 руб.) |
Пример кода для загрузки файла через AddIn.FTP:
// Подключаем компоненту (предварительно её нужно установить)
FTPClient = Новый AddInObject("AddIn.FTPClient");
// Настраиваем соединение
FTPClient.Host = "sftp.example.com";
FTPClient.Port = 22;
FTPClient.Username = "user";
FTPClient.Password = "password";
FTPClient.Protocol = 2; // 2 - SFTP
// Загружаем файл
Результат = FTPClient.UploadFile("C:\Temp\file.xml", "/upload/file.xml");
Если Результат = 0 Тогда
Сообщить("Файл загружен успешно!");
Иначе
Сообщить("Ошибка: " + FTPClient.ErrorMessage);
КонецЕсли;
Преимущества внешних компонент:
Недостатки:
⚠️ Внимание: При использовании внешних компонент на сервере 1С:Предприятия (например, в клиент-серверном варианте) убедитесь, что компонента установлена на серверной части, а не только на клиентском компьютере. Иначе код будет работать в 1С:Предприятии, но не будет выполняться в фоновых задачах.
5. Способ 4: Автоматизация через регламентные задания
Если файлы нужно отправлять регулярно (например, ежедневно в 23:00), удобно настроить регламентное задание. Это позволит избежать ручного запуска и минимизирует риск ошибок из-за человеческого фактора. Алгоритм настройки:
Пример кода для регламентного задания (с логированием):
Процедура ВыполнитьЗадание() Экспорт
Попытка
// Код загрузки файла (см. раздел 3)
FTP.ЗагрузитьФайл(ЛокальныйФайл, УдаленныйПуть);
// Логируем успех
ЗаписьЛога("FTP", , , "Файл " + УдаленныйПуть + " загружен успешно");
Исключение
ЗаписьЛога("FTP", , , "Ошибка загрузки: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Нюансы работы регламентных заданий:
Как проверить, что регламентное задание работает?
Откройте журнал регистрации (Администрирование → Журнал регистрации) и отфильтруйте события по имени вашего задания. Если задание не запускается, проверьте:
1. Права пользователя, от имени которого выполняется задание.
2. Настройки расписания (возможно, указано неверное время или дата).
3. Доступность сервера 1С в указанное время (некоторые хостеры выключают серверы ночью для экономии ресурсов).
6. Типичные ошибки и их решения
При работе с FTP из 1С пользователи часто сталкиваются с типичными ошибками. Мы собрали наиболее распространённые случаи и способы их устранения.
| Ошибка | Возможная причина | Решение |
|---|---|---|
Не удалось установить соединение с сервером |
|
|
Ошибка аутентификации (530) |
|
|
Не удалось создать файл на сервере (550) |
|
|
Timeout при соединении |
|
|
Ошибка сертификата (при FTPS) |
Сервер использует самоподписанный сертификат. | Добавьте сертификат в хранилище 1С через конфигуратор (Администрирование → Сертификаты). |
Критическая ошибка: Если при загрузке большого файла (>100 МБ) 1С «зависает» без ошибок, проблема может быть в ограничении памяти для фоновых задач. В таком случае увеличьте параметр /MaxMemory в файле запуска 1С или разбейте файл на части.
Для диагностики ошибок полезно включать логирование FTP-соединения. Например, в коде перед подключением добавьте:
FTP.Журналировать = Истина;
FTP.ИмяФайлаЖурнала = "C:\Temp\ftp_log.txt";
Это создаст файл с подробным протоколом обмена данными, что поможет выявить проблему.
7. Безопасность при работе с FTP из 1С
Передача файлов по FTP без шифрования — это риск утечки данных. Особенно если речь идёт о конфиденциальной информации (выписки банка, данные клиентов, финансовая отчётность). Следующие меры помогут повысить безопасность:
Если вы передаёте файлы с персональными данными (ФИО, паспортные данные, СНИЛС), обязательно:
⚠️ Внимание: С 1 сентября 2026 года в России действуют обновлённые требования к защите персональных данных (ФЗ-152). Передача таких данных по незащищённому FTP может считаться нарушением, если не приняты дополнительные меры шифрования. Уточните актуальные требования у юриста вашей компании.
FAQ: Частые вопросы по отправке файлов на FTP из 1С
Можно ли отправить файл на FTP из 1С:Бухгалтерии 8.3 без программирования?
Да, если в вашей конфигурации есть обработка ЗагрузкаФайлаНаFTP.epf. Она позволяет загружать файлы через графический интерфейс без написания кода. Если обработки нет, её можно скачать с портала 1С:ИТС или Инфостарт.
Для 1С:Бухгалтерии также доступна стандартная обработка «Выгрузка данных в электронном виде» (меню Файл → Выгрузить данные), которая поддерживает отправку на FTP для некоторых форматов (например, выписок банка).
Как отправить файл на FTP с кириллическим именем?
Встроенные объекты 1С (FTPСоединение) плохо работают с кириллицей в именах файлов. Рекомендации:
Пример кода для транслитерации имени файла:
Функция Транслит(Строка)
Замена = Новый Соответствие;
Замена.Вставить("а", "a"); Замена.Вставить("б", "b"); // ... добавьте все буквы
Результат = "";
Для каждого Символ Из Строка Цикл
Если Замена.СодержитКлюч(НижнийРег(Символ)) Тогда
Результат = Результат + Замена[НижнийРег(Символ)];
Иначе
Если Символ <> " " Тогда
Результат = Результат + Символ;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Как отправить файл на FTP из 1С, если сервер требует двухфакторную аутентификацию (2FA)?
Встроенные средства 1С не поддерживают двухфакторную аутентификацию (например, по SMS или через Google Authenticator). Варианты решений:
Если 2FA обязательна, рассмотрите альтернативные способы передачи файлов: REST API, электронная почта или облачные хранилища (Yandex Диск, Google Drive) с поддержкой 2FA.
Можно ли отправить файл на FTP из 1С:Зарплата и Управление Персоналом?
Да, в 1С:ЗУП также можно отправлять файлы на FTP, но стандартных обработок для этого нет. Вам потребуется:
Часто в ЗУП FTP используется для:
Пример: отправка реестра на выплату зарплаты в банк:
// Формируем файл реестра
Реестр = ПолучитьРеестрЗарплаты();
Реестр.Записать("C:\Temp\salary_202605.xml");
// Отправляем на FTP банка
FTP = Новый FTPСоединение(Прокси, "bank_user", "bank_pass",,, Истина);
FTP.ЗагрузитьФайл("C:\Temp\salary_202605.xml", "/upload