Теперь реализуем обратную операцию. Найдем файлы по заданной маске на локальном компьютере и запишем их в каталог на FTP-сервере. Для этого нужно создать FTP-соединение с сервером, используя имя FTP-сервера, а также имя и пароль пользователя на этом сервере. И затем записать найденные локальные файлы (объекты Файл) в каталог на сервере методом Записать() объекта FTPСоединение.
Обработчик команды для записи файлов на FTP-сервер может выглядеть следующим образом (листинг 1.144).
Листинг 1.144. Процедура «ЗаписатьФайлыНаСервер»
&НаКлиенте
Процедура ЗаписатьФайлыНаСервер(Команда)
// Найти файлы в локальном каталоге по указанной маске.
МаскаФайлов = "*.tif";
НачатьПоискФайлов(Новый ОписаниеОповещения("ЗаписатьФайлыНаСерверЗавершение", ЭтотОбъект),
ЛокальныйКаталог, МаскаФайлов);
КонецПроцедуры
Обратите внимание, что поиск файлов на компьютере пользователя мы будем выполнять с помощью немодального метода НачатьПоискФайлов() вместо модального НайтиФайлы(). Первым параметром в метод НачатьПоискФайлов() мы передаем описание оповещения, указывающее на экспортную процедуру ЗаписатьФайлыНаСерверЗавершение(), которая будет вызвана по окончании поиска файлов (листинг 1.145). А также мы передаем в эту процедуру локальный каталог, в котором будет производиться поиск, и маску для поиска файлов (например, "*.tif").
Листинг 1.145. Процедура «ЗаписатьФайлыНаСерверЗавершение»
&НаКлиенте
Процедура ЗаписатьФайлыНаСерверЗавершение(МассивФайлов, Дополнительно ) Экспорт
Сообщение = Новый СообщениеПользователю;
Попытка
// Установить соединение с FTP-сервером.
FTPСервер = Новый FTPСоединение(Сервер, , ИмяПользователя, ПарольПользователя);
Исключение
// Вывести сообщение об ошибке соединения с сервером.
Сообщение.Текст = "Не удалось соединиться с сервером: " + Сервер;
Сообщение.Сообщить();
Сообщение.Текст = ОписаниеОшибки();
Сообщение.Сообщить();
Возврат;
КонецПопытки;
Для Каждого Файл Из МассивФайлов Цикл
// Записать файл в каталог на сервере.
Сообщение.Текст = "Записывается файл - " + Файл.Имя;
Сообщение.Сообщить();
FTPСервер.Записать(ЛокальныйКаталог + Файл.Имя, КаталогНаСервере + Файл.Имя);
КонецЦикла;
КонецПроцедуры
В этой процедуре мы создаем FTP-соединение, обходим в цикле массив найденных файлов, содержащихся в параметре МассивФайлов (объекты Файл) и записываем каждый файл в каталог на сервере методом Записать() объекта FTPСоединение.