Содержани
1. Основные задачи при работе с SFTP в системе программ 1С
2. Настройка подключения к SFTP
3. Подходы к реализации при работе в системе 1С
SFTP (Secure File Transfer Protocol) — это защищенный протокол передачи файлов, который используется для безопасного обмена данными между системами. В 1С:Предприятие работа с SFTP возможна с использованием встроенных средств платформы или внешних библиотек. Рассмотрим основные возможности и подходы.
1. Основные задачи при работе с SFTP в системе программ 1С
1. Загрузка файлов на сервер SFTP.
2. Скачивание файлов с сервера SFTP.
3. Удаление или перемещение файлов на сервере.
4. Получение списка файлов на сервере.
2. Настройка подключения к SFTP
Для работы с SFTP необходимы:
● Хост (адрес сервера SFTP): например, sftp.example.com.
● Порт: обычно используется порт 22.
● Имя пользователя и пароль или SSH-ключ для аутентификации.
Пример структуры подключения:
АдресСервера = "sftp.example.com";
Порт = 22;
Пользователь = "username";
Пароль = "password";
3. Подходы к реализации при работе в системе 1С
1. Использование встроенных средств 1С
В последних версиях платформы 1С добавлена поддержка работы с протоколами SFTP через объект HTTPСоединение.
Пример кода для скачивания файла:
Процедура СкачатьФайлSFTP(АдресСервера, Порт, Пользователь, Пароль, УдаленныйФайл, ЛокальныйФайл)
Соединение = Новый HTTPСоединение(АдресСервера, Порт, Пользователь, Пароль);
Ответ = Соединение.Получить(УдаленныйФайл);
Если Ответ.КодСостояния = 200 Тогда
ЗаписьФайла = Новый ЗаписьФайла(ЛокальныйФайл);
ЗаписьФайла.Записать(Ответ.ПолучитьТелоКакДвоичныеДанные());
ЗаписьФайла.Закрыть();
Сообщить("Файл успешно скачан!");
Иначе
Сообщить("Ошибка при скачивании файла: " + Ответ.КодСостояния);
КонецЕсли;
КонецПроцедуры
Пример кода для загрузки файла:
Процедура ЗагрузитьФайлSFTP(АдресСервера, Порт, Пользователь, Пароль, ЛокальныйФайл, УдаленныйФайл)
Соединение = Новый HTTPСоединение(АдресСервера, Порт, Пользователь, Пароль);
ДанныеФайла = Новый ЧтениеФайла(ЛокальныйФайл);
Ответ = Соединение.Отправить(УдаленныйФайл, ДанныеФайла.Прочитать(), "PUT");
Если Ответ.КодСостояния = 201 Тогда
Сообщить("Файл успешно загружен!");
Иначе
Сообщить("Ошибка при загрузке файла: " + Ответ.КодСостояния);
КонецЕсли;
КонецПроцедуры
2. Использование внешних библиотек
Если функциональности платформы недостаточно, можно подключить внешнюю библиотеку, например, WinSCP или SSH.NET.
Пример с использованием WinSCP:
1. Скачайте и установите WinSCP.
2. Настройте командный файл или используйте COM-объект для взаимодействия.
Процедура СкачатьФайлЧерезWinSCP()
Команда = "winscp.com /command ""open sftp://username:password@sftp.example.com"" ""get /remote/path/file.txt C:\local\path\file.txt"" ""exit""";
Результат = ВыполнитьКомандуСистемы(Команда);
Сообщить(Результат);
КонецПроцедуры
Специалист компании ООО "Кодерлайн"
Елена Дубровина