Работа с FTP в 1С 8.3, подключение и обмен по FTP
Меню

Работа с FTP в 1С 8.3

Содержание статьи
  1. Заложенные в платформу объекты для FTP
  2. Работа с файлами на FTP сервере

Мы часто пользуемся протоколом FTP при передаче файлов или загрузке страниц интернета. В системах 1С тоже достаточно часто используется этот механизм для обмена данными с другими приложениями или между конфигурациями. На практике вы не раз столкнетесь с необходимостью воспользоваться заложенными в платформе 1С 8.3 механизмами работы с FTP. К этому необходимо быть готовым и знать основные приемы и принципы.

Заложенные в платформу объекты для FTP

Для того чтобы работать с протоколом FTP в технологическую платформу уже заложены некоторые инструменты. Они доступны в любой конфигурации, если версия вашей платформы 8.3 и выше. Рассмотреть их подробнее, узнать их методы и возможности вы сможете с помощью синтакс-помощника, нажав клавиши CTRL + F1 в конфигураторе. Вот эти объекты:

  • FTPСоединение. Предназначен для соединения с серверами и выполнения основных действий – отправке данных через FTP;

Работа с FTP в 1С 8.3
Работа с FTP в 1С 8.3
  • FTPФайл. Получает информацию о структуре каталогов и файлов на сервере, но не позволяет читать содержимое или производить запись. Дает доступ к информации о реквизитах:
    • Имя;
    • Путь;
    • Расширение;
    • Размер и прочее.
  • ИнтернетПрокси – объект предназначен для настройки параметров соединения с сервером FTP через прокси;
  • ЗащищенноеСоединениеOpenSSL – создает специальное соединение по FTP с использованием сертификата для большей безопасности.

Перед тем как производить какие-либо действия с файлами, нам необходимо осуществить подключение к FTP-серверу или ресурсу в интернете. Для этого нам нужно узнать адрес, логин и пароль, под которыми можно зайти на ресурс, и рабочий каталог. По умолчанию объект FTPСоединение использует 21 порт для FTP и 990 для защищенных FTPS. Если у вас используются другие порты – придется их указывать вручную.


            Адрес= "172.16.83.22";
        	Логин = "administrator ";
        	Пароль = "pass123";
        	Каталог = "\testFTPConnect";
        	FTPСоединение = Новый FTPСоединение(Адрес,,Логин,Пароль);

По результатам выполнения этого кода должно произойти подключение 1С к указанному ресурсу. Зачастую на этом моменте появляется проблема с тем, что программа долго подключается к FTP серверу. С большой долей вероятности решить эту проблему поможет попытка запустить соединение в пассивном режиме. Для этого в момент создания объекта FTPСоединение задать параметр № 6 в значение «Истина».


               FTPСоединение = Новый FTPСоединение(Адрес,,Логин,Пароль,,Истина);

Работа с файлами на FTP сервере

После того как FTP соединение установлено, мы можем работать с файлами на удаленном ресурсе из 1С. Перед тем как что-то добавлять или удалять, необходимо посмотреть, какие файлы уже существуют на FTP-сервере. В этом нам поможет метод «НайтиФайлы», который помещает все найденные файлы в общий массив. После этого нам останется только обойти в цикле все элементы на FTP-сервере через 1С:


               ФайлыНаРесурсе = FTPСоединение.НайтиФайлы("/");
               Для каждого ФайлНаСервере из ФайлыНаРесурсе цикл
                       // требуемые действия с файлами
               КонецЦикла;

Перенести файл с локального компьютера, на котором запущена программа 1С, через FTP на сервер можно несколькими путями. Также вы можете создавать на ресурсе и новые файлы, формируя их программно – этот вариант отлично подойдет для ведения логов. Простые примеры алгоритма выгрузки данных из 1С на FTP создания файлов на сервере:

  • Перенос уже существующего файла:


               ФайлСЛокальногоПК = «D:\test1.txt»;
               Connect.Записать(ФайлСЛокальногоПК, «test1.txt»);

  • Создание файла и его запись через FTP:


               НовыйДокументFTP = Новый ТекстовыйДокумент;
               НовыйДокументFTP.ДобавитьСтроку(«Тестируем создание файла»);
               ВременныйФайлFTP = ПолучитьИмяВременногоФайла(«txt»);
               НовыйДокументFTP.Записать(ВременныйФайлFTP);
               FTPСоединение.Записать(ВременныйФайлFTP, «test1.txt»);

После того как выяснили, как отправить файл через FTP, займемся обратным алгоритмом. Чтобы скачать на свой компьютер файл с сервера, можно воспользоваться следующим алгоритмом:

  1. Сформировать имя временного файла;

    
             ВременноеХранДляФайла = ПолучитьИмяВременногоФайла(«txt»);
    

  2. Считать данные из файла на сервере во временный файл;

    
             FTPСоединение.Получить(«test.txt»,ВременноеХранДляФайла);
    

  3. Записать считанные данные в текстовый документ в нужное место;

    
             НовыйТекстДокумент = Новый ТекстовыйДокумент;
             НовыйТекстДокумент.Прочитать(ВременноеХранДляФайла,«windows-1251»);
             НовыйТекстДокумент.Записать(«C:\textFTP.txt»);
    

Также необходимо знать, как работать с каталогами на сервере через FTP. Существуют следующие основные операции:

  • Получение текущей папки:


                Сообщить(FTPСоединение.ТекущийКаталог());

  • Создание папки:


                FTPСоединение.СоздатьКаталог(«/1/new»);

  • Открытие нужного нам пути:


                FTPСоединение.УстановитьТекущийКаталог(«/1/new»);

  • Переименование папки или перемещение файла. Для последнего необходимо прописать путь вместе с именем и расширением файла:


               FTPСоединение.Переместить(«/1/new», «/1/new1»)
               FTPСоединение.Переместить(«/1/new1/ NewFile1.txt», «/1/old/NewFile1.txt»)

  • Удаление каталога:


                FTPСоединение.Удалить(«/1/old»);

  • Аналогично удаляются и файлы:


                FTPСоединение.Удалить(«/1/ new/ NewFile2.txt»);

В платформе 8.3 существуют все возможности, чтобы организовать обмен данными через FTP прямо из 1С. Помните, что для стабильной работы правильно написанного кода в 1С мало. Необходим доступ к серверу и настройка прав для учетной записи, от которой запускают 1С. После этих действий ничего не помешает вам настроить синхронизацию данных 1С через FTP-протокол.

Рассказать друзьям
Предыдущая статья статья
Отражение НДС к вычету в 1С 8.3
Следующая статья статья
1С:Управление торговлей 8 версия 11.5: обзор возможностей
Комментарии