Работа с ftp в языке 1С 8.3, 8.2 (в примерах)

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

<<< XML ZIP WORD DBF HTTP FTP ТекстовыйДокумент ТабличныйДокумент

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)

/// Как подлючиться к FTP серверу из 1с 8.3, 8.2
 
&НаКлиенте
Функция ПодключитьсяКFTPСерверу()
 
    Соединение = Новый FTPСоединение(
        "0.0.0.0", // адрес ftp сервера
        21, // порт сервера
        "user", // имя пользователя
        "123", // пароль пользователя
        Неопределено, // прокси не используется
        Истина, // пассивный режим работы
        0, // таймаут (0 - без ограничений)
        Неопределено // незащищенное соединение
    );
 
    // Для случаев, когда у ftp сервера нет возможности
    // обращаться к нам (мы находимся за межсетевым экраном)
    // следует использовать пассивный режим работы.
 
    Возврат Соединение;
 
КонецФункции
 
/// Как искать файлы по FTP из 1с 8.3, 8.2
 
&НаКлиенте
Процедура ПоискФайловПоFTP(Команда)
 
    // Функция подключения определена выше.
    Соединение = ПодключитьсяКFTPСерверу();
 
    // Установим текущий каталог.
    Соединение.УстановитьТекущийКаталог("/");
 
    // Найдём конкретный файл по его полному адресу.
    // Внимание! Используем прямые слеши.
    НайденныеФайлы = Соединение.НайтиФайлы("/data/1.txt");
 
    Если НайденныеФайлы.Количество() > 0 Тогда
        Файл = НайденныеФайлы[0];
        // и получим следующую информацию о нём:
        Сообщить("Имя: " + Файл.ПолноеИмя);       
        Сообщить("Это файл: " + Файл.ЭтоФайл());
        Сообщить("Это каталог: " + Файл.ЭтоКаталог());        
        Сообщить("Размер: " + Файл.Размер() + " байт");
        Сообщить("Атрибут только чтение: " + Файл.ПолучитьТолькоЧтение());
        Сообщить("Атрибут скрытый: " + Файл.ПолучитьНевидимость());
        Сообщить("Атрибут время изменения: " + Файл.ПолучитьВремяИзменения());
    КонецЕсли;
 
    // Найдём все папки и файлы в корневом каталоге
    НайденныеФайлы = Соединение.НайтиФайлы(
        "/", // ищём в корневом каталоге
        "*" // любые файлы (здесь можно задать маску)
    );
    Для Каждого Файл Из НайденныеФайлы Цикл
        Сообщить(Файл.ПолноеИмя);
    КонецЦикла;
 
    // Найдём все файлы с расширением .txt в папке data
    НайденныеФайлы = Соединение.НайтиФайлы(
        "/data", // ищём в определенной папке
        "*.txt" // по определенной маске
    );
 
КонецПроцедуры
 
/// Как скачивать файлы по FTP из 1с 8.3, 8.2
 
&НаКлиенте
Процедура ПолучениеФайловПоFTP(Команда)
 
    // Функция подключения определена выше.
    Соединение = ПодключитьсяКFTPСерверу();
 
    // Установим текущий каталог.
    Соединение.УстановитьТекущийКаталог("/");
 
    ПапкаДляСохранения = СлужебныйНаКлиенте.СоздатьПапкуДляЭкспериментов();    
 
    // Скачаем "trade_exchange/01.01.2017.xml"
    // Внимание! Используем прямые слеши.
    Соединение.Получить(
         "trade_exchange/01.01.2017.xml", // что качаем
         ПапкаДляСохранения + "/01.01.2017.xml" // куда качаем
    );
 
    Сообщить("Сохранили файл в " + ПапкаДляСохранения);
 
КонецПроцедуры
 
/// Как передавать файлы по FTP из 1с 8.3, 8.2
 
&НаКлиенте
Процедура ПередачаФайловПоFTP(Команда)
 
    // Функция подключения определена выше.
    Соединение = ПодключитьсяКFTPСерверу();
 
    // Установим текущий каталог.
    Соединение.УстановитьТекущийКаталог("/");
 
    // Создадим случайный текстовый файл.
    Папка = СлужебныйНаКлиенте.СоздатьПапкуДляЭкспериментов();
    Служебный.СоздатьПроизвольныйТекстовыйФайл(
        Папка + "/info.txt");
 
    // Запишем этот файл на сервер по ftp в папку trade_exchange
    // Внимание! Используем прямые слеши.
    Соединение.Записать(
        Папка + "/info.txt", // что записываем
        "/trade_exchange/info.txt" // куда записываем
    );
 
    Сообщить("Передали файл по FTP.");
 
КонецПроцедуры
 
&НаКлиенте
Процедура ДругиеОперацииПоFTP(Команда)
 
    // Функция подключения определена выше.
    Соединение = ПодключитьсяКFTPСерверу();
 
    // Установим текущий каталог.
    Соединение.УстановитьТекущийКаталог("/");
 
        /// Как создать новый каталог по FTP из 1с 8.3, 8.2
 
    Соединение.СоздатьКаталог("/NewBin");
 
        /// Как удалить каталог по FTP вместе с содержимым из 1с 8.3, 8.2
 
    Соединение.Удалить("/trade_exchange");
 
        /// Как удалить файлы по FTP из 1с 8.3, 8.2    
 
    Соединение.Удалить(
        "/trade_exchange/01.01.2017.xml"
    ); // удаляем один файл по его адресу
 
    Соединение.Удалить(
        "/trade_exchange", // путь к удаляемым файлам
        "*.xml" // маска для выбора
    ); // или несколько файлов поиском по маске
 
        /// Как переименовать файл или каталог по FTP из 1с 8.3, 8.2
 
    Соединение.Переместить(
        "/NewBin", // старое имя
        "/OldBin" // новое имя
    );
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)

Работа с ftp в языке 1С 8.3, 8.2 (в примерах)

<<< XML ZIP WORD DBF HTTP FTP ТекстовыйДокумент ТабличныйДокумент

С уважением, (преподаватель школы 1С программистов и разработчик обновлятора).



Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться: