Отправка файлов по ftp из 1С

Предисловие

В некоторых случаях возникает необходимость отправить файлы по ftp. Например, закачать прайс на сайт. Или организовать обмен в УРБД. Или еще что-то экзотическое. Всегда можно сделать это руками, но очень хочется воспользоваться любимой программой, т.е. 1С :). Во всех этих случаях можно воспользоваться разнообразными внешними компонентами, но их сначала надо найти, потом договориться с автором об использовании и после всего этого научиться пользоваться. Но есть простой и работающий способ - воспользоваться системной командой ftp!

Отправка прайса на сайт

В качестве примера рассмотрим отправку прайса на сайт. Предполагается, что несколькими строками выше был сформирован прайс и ссылка на таблицу с ним хранится в переменной Таб. Осталось только отправить его.

	Таб.Записать("c:Price.xls","xls");
	//создаем скрипт для соединения и отправки
	Скрипт=СоздатьОбъект("Текст");
	Скрипт.ДобавитьСтроку("open ххх.ххх.ххх.ххх");
	Скрипт.ДобавитьСтроку("user");
	Скрипт.ДобавитьСтроку("имя_пользователя");
	Скрипт.ДобавитьСтроку("пароль");
	Скрипт.ДобавитьСтроку("binary");
	//при необходимости входим в каталог, возможно, таких команд будет несколько
	Скрипт.ДобавитьСтроку("cd public_html");
	Скрипт.ДобавитьСтроку("cd download");
	Скрипт.ДобавитьСтроку("put "+"c:Price.xls");
	Скрипт.ДобавитьСтроку("bye");
	//записываем скрипт на диск
	Скрипт.Записать("c:1.txt");
	//а теперь запускаем его выполнение
	КомандаСистемы("ftp -n -s:c:1.txt");

Отправка произвольного файла

Чтобы отправить произвольный файл, достаточно в предыдущем примере пропустить создание таблицы и запись ее в файл, а в строке "Скрипт.ДобавитьСтроку("put "+"c:Price.xls");" заменить "c:Price.xls" на полный путь и имя отправляемого файла.