Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Получить файлы с сервера
Дальше: Копировать файлы с сервера

Записать файлы на сервер

Теперь реализуем обратную операцию. Найдем файлы по заданной маске на локальном компьютере и запишем их в каталог на FTP-сервере. Для этого нужно создать FTP-соединение с сервером, используя имя FTP-сервера, а также имя и пароль пользователя на этом сервере. И затем записать найденные локальные файлы (объекты Файл) в каталог на сервере методом Записать() объекта FTPСоединение.

Обработчик команды для записи файлов на FTP-сервер может выглядеть следующим образом (листинг 1.144).

Листинг 1.144. Процедура «ЗаписатьФайлыНаСервер»

&НаКлиенте

Процедура ЗаписатьФайлыНаСервер(Команда)

 

// Найти файлы в локальном каталоге по указанной маске.

МаскаФайлов = "*.tif";

НачатьПоискФайлов(Новый ОписаниеОповещения("ЗаписатьФайлыНаСерверЗавершение", ЭтотОбъект),

ЛокальныйКаталог, МаскаФайлов);

 

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

Обратите внимание, что поиск файлов на компьютере пользователя мы будем выполнять с помощью немодального метода НачатьПоискФайлов() вместо модального НайтиФайлы(). Первым параметром в метод НачатьПоискФайлов() мы передаем описание оповещения, указывающее на экспортную процедуру ЗаписатьФайлыНаСерверЗавершение(), которая будет вызвана по окончании поиска файлов (листинг 1.145). А также мы передаем в эту процедуру локальный каталог, в котором будет производиться поиск, и маску для поиска файлов (например, "*.tif").

Листинг 1.145. Процедура «ЗаписатьФайлыНаСерверЗавершение»

&НаКлиенте

Процедура ЗаписатьФайлыНаСерверЗавершение(МассивФайлов, Дополнительно ) Экспорт

 

Сообщение = Новый СообщениеПользователю;

 

Попытка

// Установить соединение с FTP-сервером.

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

Исключение

// Вывести сообщение об ошибке соединения с сервером.

Сообщение.Текст = "Не удалось соединиться с сервером: " + Сервер;

Сообщение.Сообщить();

Сообщение.Текст = ОписаниеОшибки();

Сообщение.Сообщить();

Возврат;

КонецПопытки;

 

Для Каждого Файл Из МассивФайлов Цикл

// Записать файл в каталог на сервере.

Сообщение.Текст = "Записывается файл - " + Файл.Имя;

Сообщение.Сообщить();

 

FTPСервер.Записать(ЛокальныйКаталог + Файл.Имя, КаталогНаСервере + Файл.Имя);

КонецЦикла;

 

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

В этой процедуре мы создаем FTP-соединение, обходим в цикле массив найденных файлов, содержащихся в параметре МассивФайлов (объекты Файл) и записываем каждый файл в каталог на сервере методом Записать() объекта FTPСоединение.

Назад: Получить файлы с сервера
Дальше: Копировать файлы с сервера