//_____________________________________________________________________________
процедура proВыгрузкаФТП(сзФТР) Экспорт
АдресСервера = сзФТР.Получить("АдресСервера");
Логин = сзФТР.Получить("Логин");
Пароль = сзФТР.Получить("Пароль");
ЛокальнаяПапка = сзФТР.Получить("ЛокальнаяПапка");
КаталогЗВ = сзФТР.Получить("КаталогЗВ");
файлвыгрузи = сзФТР.Получить("файлвыгрузи");
проблФТП = 0;
//подготавливаем файл с командами ftp
ВременныйСкриптФайл="InetFTP.tmp";
Т=СоздатьОбъект("Текст");
Т.ДобавитьСтроку("open "+Сокрлп(АдресСервера));
Т.ДобавитьСтроку(Сокрлп(Логин));
Т.ДобавитьСтроку(Сокрлп(Пароль));
Т.ДобавитьСтроку("prompt");
Т.ДобавитьСтроку("binary");
КаталогВыгрузкиФТП=СтрЗаменить(Сокрлп(КаталогЗВ),"\","/");
Для А=1 По СтрЧислоВхождений(КаталогВыгрузкиФТП,"/") Цикл
Рез=Найти(КаталогВыгрузкиФТП,"/");
ПодКаталогФТП=ЛЕВ(КаталогВыгрузкиФТП,Рез-1);
Если ПустоеЗначение(ПодКаталогФТП)=0 Тогда
Т.ДобавитьСтроку("cd "+ПодКаталогФТП);
КонецЕсли;
КаталогВыгрузкиФТП=Сред(КаталогВыгрузкиФТП,Рез+1);
КонецЦикла;
Если ПустоеЗначение(КаталогВыгрузкиФТП)=0 Тогда
Т.ДобавитьСтроку("cd "+КаталогВыгрузкиФТП);
КонецЕсли;
Т.ДобавитьСтроку("mput "+СокрЛП(файлвыгрузи));//get
Т.ДобавитьСтроку("quit");//выход
Т.Записать(СокрЛП(ЛокальнаяПапка)+"\"+ВременныйСкриптФайл);
Фс.УстТекКаталог(СокрЛП(ЛокальнаяПапка));
Команда="ftp -s:"""+ВременныйСкриптФайл+""">ftp_out.log";
КомандаСистемы(Команда);
Фс.УдалитьФайл(СокрЛП(ЛокальнаяПапка)+"\"+ВременныйСкриптФайл);
Фс.УдалитьФайл(файлвыгрузи);
Конецпроцедуры
//******************************************************************************
// proЗагрузитьФТР(спЗнач)
//
// Параметры:
// сзФТР
//
// Возвращаемое значение:
// Нет
//
// Описание:
// ТекстОписания
//
Процедура proЗагрузитьФТР(сзФТР) Экспорт
АдресСервера = сзФТР.Получить("АдресСервера");
Логин = сзФТР.Получить("Логин");
Пароль = сзФТР.Получить("Пароль");
ЛокальнаяПапка = сзФТР.Получить("ЛокальнаяПапка");
КаталогЗВ = сзФТР.Получить("КаталогЗВ");
файлЗагрузки = сзФТР.Получить("файлЗагрузки");
//подготавливаем файл с командами ftp
ВременныйСкриптФайл="InetFTP.tmp";
Т=СоздатьОбъект("Текст");
Т.ДобавитьСтроку("open "+Сокрлп(АдресСервера));
Т.ДобавитьСтроку(Сокрлп(Логин));
Т.ДобавитьСтроку(Сокрлп(Пароль));
Т.ДобавитьСтроку("prompt");
Т.ДобавитьСтроку("binary");
КаталогЗагрузкиФТП=СтрЗаменить(Сокрлп(КаталогЗВ),"\","/");
Для А=1 По СтрЧислоВхождений(КаталогЗагрузкиФТП,"/") Цикл
Рез=Найти(КаталогЗагрузкиФТП,"/");
ПодКаталогФТП=ЛЕВ(КаталогЗагрузкиФТП,Рез-1);
Если ПустоеЗначение(ПодКаталогФТП)=0 Тогда
Т.ДобавитьСтроку("cd "+ПодКаталогФТП);
КонецЕсли;
КаталогЗагрузкиФТП=Сред(КаталогЗагрузкиФТП,Рез+1);
КонецЦикла;
Если ПустоеЗначение(КаталогЗагрузкиФТП)=0 Тогда
Т.ДобавитьСтроку("cd "+КаталогЗагрузкиФТП);
КонецЕсли;
Т.ДобавитьСтроку("mget "+СокрЛП(файлЗагрузки));
Т.ДобавитьСтроку("quit");//выход
Т.Записать(СокрЛП(ЛокальнаяПапка)+"\"+ВременныйСкриптФайл);
Фс.УстТекКаталог(СокрЛП(ЛокальнаяПапка));
Команда="ftp -s:"""+ВременныйСкриптФайл+""">ftp_in.log";
КомандаСистемы(Команда);
ВременныйСкриптФайл="InetFTP.tmp";
Т=СоздатьОбъект("Текст");
Т.ДобавитьСтроку("open "+Сокрлп(АдресСервера));
Т.ДобавитьСтроку(Сокрлп(Логин));
Т.ДобавитьСтроку(Сокрлп(Пароль));
Т.ДобавитьСтроку("prompt");
Т.ДобавитьСтроку("binary");
КаталогЗагрузкиФТП=СтрЗаменить(Сокрлп(КаталогЗВ),"\","/");
Для А=1 По СтрЧислоВхождений(КаталогЗагрузкиФТП,"/") Цикл
Рез=Найти(КаталогЗагрузкиФТП,"/");
ПодКаталогФТП=ЛЕВ(КаталогЗагрузкиФТП,Рез-1);
Если ПустоеЗначение(ПодКаталогФТП)=0 Тогда
Т.ДобавитьСтроку("cd "+ПодКаталогФТП);
КонецЕсли;
КаталогЗагрузкиФТП=Сред(КаталогЗагрузкиФТП,Рез+1);
КонецЦикла;
Если ПустоеЗначение(КаталогЗагрузкиФТП)=0 Тогда
Т.ДобавитьСтроку("cd "+КаталогЗагрузкиФТП);
КонецЕсли;
Т.ДобавитьСтроку("mdelete "+СокрЛП(файлЗагрузки));
Т.ДобавитьСтроку("quit");//выход
Т.Записать(СокрЛП(ЛокальнаяПапка)+"\"+ВременныйСкриптФайл);
Команда="ftp -s:"""+ВременныйСкриптФайл+""">ftp_del.log";
КомандаСистемы(Команда);
Фс.УдалитьФайл(СокрЛП(ЛокальнаяПапка)+"\"+ВременныйСкриптФайл);
КонецПроцедуры // proЗагрузитьФТР()