новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Работа с FTP-сервером в 1С:Предприятии 8.x

  • Добавить свою публикацию
  • для этого требуется регистрация

Использование

Изображение

Платформа 1С:Предприятие 8.x имеет в своем составе собственный FTP-клиент. Очень часто его используют для передачи файлов обмена между компьютерами по сети.

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

Обработка

Как уже говорилось ранее, обработка будет получать список файлов, а также загружать файлы на FTP-сервер и скачивать их.

Внешне форма обработки выглядит следующим образом:

Изображение

Структура метаданных обработки следующая:

Изображение

В табличной части "Файлы" записывается список файлов на FTP-сервере, а в реквизитах обработки вводится информация для аутентификации на FTP-сервере и его адрес. Перейдем к рассмотрению работы обработки.

Получение списка файлов

Листинг команды получения списка файлов следующий:

 	Если FTPКлиент = Неопределено Тогда
		FTPКлиент = Новый FTPСоединение(Сервер, 21, Логин, Пароль, , , 30);
	КонецЕсли;
	
	Результат = FTPКлиент.НайтиФайлы("/", "*.*");
	
	Файлы.Очистить();
	Для Каждого Стр Из Результат Цикл
		НовСтр = Файлы.Добавить();
		НовСтр.Файл = Стр.ПолноеИмя;
	КонецЦикла;

 В конструктор FTP-соединения передаются введенные в реквизиты данные для соединения с FTP-сервером. Метод "НайтиФайлы" получает список файлов в заданном каталоге (первый параметры). Второй параметр - строка шаблона для поиска файлов.

Загрузка файла на FTP-сервер

Программный код достаточно простой:

 	Если FTPКлиент = Неопределено Тогда
		FTPКлиент = Новый FTPСоединение(Сервер, 21, Логин, Пароль, , , 30);
	КонецЕсли;
	
	Режим = РежимДиалогаВыбораФайла.Открытие;
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
	ДиалогОткрытияФайла.Заголовок = "Загрузка файла";
	Если ДиалогОткрытияФайла.Выбрать() Тогда
		ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
	Иначе
		Текст = "Файл не выбран";
		Предупреждение(Текст);
		Возврат;
	КонецЕсли; 
	
	FTPКлиент.Записать(ПутьКФайлу, "/"+СтрЗаменить(ДиалогОткрытияФайла.ПолноеИмяФайла, 
						ДиалогОткрытияФайла.Каталог, ""));

 Выбирается файл на диске и с помощью метода "Записать" передается на сервер. Первый параметр - путь к файлу на диске, второй - имя файла на FTP-сервере.

Загрузка файла с сервера

Посмотрим программный код команды:

 	Если FTPКлиент = Неопределено Тогда
		FTPКлиент = Новый FTPСоединение(Сервер, 21, Логин, Пароль, , , 30);
	КонецЕсли;
	
	Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
	ДиалогОткрытияФайла.ПолноеИмяФайла = "";
	ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
	Если ДиалогОткрытияФайла.Выбрать() Тогда
		Каталог = ДиалогОткрытияФайла.Каталог;
	Иначе
		Текст = "Каталог не выбран";
		Предупреждение(Текст);
		Возврат;
	КонецЕсли; 
	
	FTPКлиент.Получить(ЭлементыФормы.Файлы.ТекущиеДанные.Файл, 
						Каталог + СтрЗаменить(ЭлементыФормы.Файлы.ТекущиеДанные.Файл, "/", "\"));

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

Задача решена

На этом задачу можно считать решенной. Обработку из примера Вы можете скачать по ссылке. 

 
0
Разработки
Программа Defy
"Программа поможет программисту синхронизировать директории с внешними обработками 1С8 и 7"
Еще от автора
≡ к списку статей