Работа с SFTP в системе программ 1С:Предприятие
-

Работа с SFTP в системе программ 1С:Предприятие

0
9187
11.04.2025 Елена Дубровина

Содержани

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""";

    Результат = ВыполнитьКомандуСистемы(Команда);

    Сообщить(Результат);

КонецПроцедуры

 

Специалист компании ООО "Кодерлайн"
Елена Дубровина

Обсудить статью в Telegram Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.