1С 8.3 FTP - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 FTP

В 1С 8.3 FTP используется для организации обмены файлами между компьютерами по локальной сети и интернету. FTP-сервер - это сервер, работающий по протоколу передачи файлов File Transfer Protocol (семейство TCP/IP), который часто используется разными клиентами и программами, в том числе и 1С 8.3 для выгрузки файлов для интернет-магазинов, корпоративных сайтов, прайс-листов, обмена документов, хранения архивов. Главная особенность протокола FTP в том, что он использует множественное (как минимум - двойное) подключение.

Отличие FTP от HTTP:
  • Основан на сессиях работы
  • Встроена аутентификация пользователей
  • Изначально предусмотрен для передачи
  • Модель соединения - двойное подключение
  • Поддерживает текстовый и двоичный режимы передачи
  • Поддерживает операции над файловой системой
Подключение к FTP серверу в 1С 8.3:
&НаСервере
Функция ПодключениеКFTPСерверу()

   
// Параметры: IP-адрес, порт, имя, пароль, прокси, пассивный режим, таймаут, незащищенное соединение
   
FTPСоединение = Новый FTPСоединение("192.168.1.100", 21, "user", "123", Неопределено, Истина, 0, Неопределено);
   
// Если у ftp сервера нет возможности обращаться к нам - следует использовать пассивный режим работы.

   
Возврат FTPСоединение;

КонецФункции

Поиск файлов по FTP в 1С 8.3:
&НаСервере
Процедура ПоискФайловПоFTP(Команда)

   
FTPСоединение = ПодключениеКFTPСерверу();// См.выше
   
FTPСоединение.УстановитьТекущийКаталог("/");

   
// Поиск файла по его полному адресу (используются прямые слеши!)
   
Файлы = FTPСоединение.НайтиФайлы("/BACKUP/05_04_2020.xml");
    Если
Файлы.Количество() > 0 Тогда

       
Файл = Файлы[0];

       
// Получение информации о файле:
       
Сообщить("Имя файла: " + Файл.ПолноеИмя);
       
Сообщить("Это файл: " + Файл.ЭтоФайл());
       
Сообщить("Это каталог: " + Файл.ЭтоКаталог());
       
Сообщить("Размер файла/каталога: " + Файл.Размер() + " байт");
       
Сообщить("...только чтение: " + Файл.ПолучитьТолькоЧтение());
       
Сообщить("...скрытый: " + Файл.ПолучитьНевидимость());
       
Сообщить("...время изменения: " + Файл.ПолучитьВремяИзменения());

    КонецЕсли;

   
// Поиск папок и файлов в корневом каталоге
    // Параметры: Каталог поиска "/"-корень, любые файлы (можно задать маску *)
   
Файлы = FTPСоединение.НайтиФайлы("/", "*");
    Для Каждого
Файл Из Файлы Цикл
       
Сообщить(Файл.ПолноеИмя);// Показ всех файлов в цикле
   
КонецЦикла;

   
// Поиск файлов с расширением .xml в папке BACKUP
   
Файлы = FTPСоединение.НайтиФайлы("/BACKUP","*.xml");

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

Скачивание файлов по FTP в 1С 8.3:
&НаСервере
Процедура СкачиваниеФайловПоFTP(Команда)

   
FTPСоединение = ПодключениеКFTPСерверу();// См.выше
   
FTPСоединение.УстановитьТекущийКаталог("/");

   
// Внимание: Используются прямые слеши!
   
ОткудаЧтоКачаем="BACKUP/05_04_2020.xml";
   
КудаЧтоКачаем=КаталогДокументов() + "/05_04_2020.xml";

   
FTPСоединение.Получить(ОткудаЧтоКачаем, КудаЧтоКачаем);
   
Сообщить("Файл скачан с FTP и сохранен в " + КудаЧтоКачаем);

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

Передача файлов по FTP в 1С 8.3:
&НаСервере
Процедура ПередачаФайловПоFTP(Команда)

   
FTPСоединение = ПодключениеКFTPСерверу();// См.выше
   
FTPСоединение.УстановитьТекущийКаталог("/");

   
// Создание  файла
   
ТекстФайл = Новый ТекстовыйДокумент;
   
ТекстФайл.УстановитьТекст("Тестирование работы с FTP");
   
ТекстФайл.Записать(КаталогДокументов() + "\Test_05_04_2020.txt",КодировкаТекста.UTF8);

   
// Внимание: Используются прямые слеши!
   
ОткудаЧтоКачаем=КаталогДокументов() + "/Test_05_04_2020.txt";
   
КудаЧтоКачаем="BACKUP/Test_05_04_2020.txt";

   
FTPСоединение.Записать(ОткудаЧтоКачаем, КудаЧтоКачаем);
   
Сообщить("Файл загружен на FTP и сохранен в " + КудаЧтоКачаем);

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

Выгрузка файлов по FTP в 1С 8.3:
&НаСервере
Процедура ВыгрузкаФайловПоFTP(Команда)

    // Параметры соединения;
    СерверFTP = "192.168.1.100";
    ПортFTP    = 21;
    ИмяПользователяFTP     = "user";
    ПарольПользователяFTP = "123";

    FTP_Cоединение = Новый FTPСоединение(СерверFTP, ПортFTP, ИмяПользователяFTP, ПарольПользователяFTP,,, 20);

    Попытка
        FTP_Cоединение.УстановитьТекущийКаталог(".");//строковый параметр означает корневой каталог, можно указать папку "\НазваниеПапки";
        // Отсюда сайт подгружает данные:
        FTP_Cоединение.Записать(КаталогДокументов(), "Test_05_04_2020.txt"); //второй параметр, название файла с расширением .txt, .csv, .xml

        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = ".txt файл, находящийся в каталоге: " + КаталогДокументов() + " был успешно загружен на FTP сервер!";
        Сообщение.Сообщить();
    Исключение
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Не удалось подключиться к FTP_серверу! Описание ошибки: " + ОписаниеОшибки();
        Сообщение.Сообщить();
    КонецПопытки;

КонецПроцедуры
Прочие функции FTP сервера в 1С 8.3:
&НаСервере
Процедура ПрочиеФункцииFTPСервера(Команда)

   
FTPСоединение = ПодключениеКFTPСерверу();// См.выше
   
FTPСоединение.УстановитьТекущийКаталог("/");

   
// Создание нового каталога по FTP
   
FTPСоединение.СоздатьКаталог("/Start");

   
// Удаление каталог по FTP (вместе с файлами)
   
FTPСоединение.Удалить("/BACKUP");

   
// Удаление одного файла по FTP (по его пути)
   
FTPСоединение.Удалить( "/BACKUP/Test_05_04_2020.xml");

   
// Удаление нескольких файлов по FTP (по маске)
   
FTPСоединение.Удалить("/BACKUP","*.txt");

   
// Переименование файла или каталога по FTP
    // Параметры: Старое имя. Новое мия
   
FTPСоединение.Переместить("/Start","/Finish");

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

Работа с FTP через bat-файл (пример от Jоhn):
Доступ:
Для того чтобы обратиться к ftp через bat-файл дополнительно нужен txt-файл с описанием ftp.

Создание ftp.bat:
содержание bat - файла:
ftp -i -s:D:\commands.txt

Описание commands.txt для выгрузки на ftp:
open ftp.test.ru
пользователь
пароль
put D:\выгружаемый_файл.txt
quit

Описание commands.txt для загрузки c ftp:
open ftp.test.ru
пользователь
пароль
lcd D:\
get загружаемый_файл.txt
quit
// В этом случае загружаемый_файл.txt выгрузиться из корня ftp в корень диска D:\

Описание commands.txt для удаления всех файлов c ftp:
open ftp.test.ru
пользователь
пароль
mdelete *
quit
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 06.04.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому