helpf.pro
Регистрация
 0 
Распечатать

Обмен файлами с FTP сервером средствами Windows

Код 1C v 8.х
  // Передать файл по FTP
Процедура ПередатьПоFTP(ИмяФайла,ПутьФТП=Неопределено) Экспорт
    Если ПутьФТП = Неопределено Тогда
        ТекПутьФТП = ПараметрыСеанса.FTPПуть;
    Иначе
        ТекПутьФТП = ПутьФТП;
    КонецЕсли;    
    
    //создаем скрипт для соединения и отправки
    Скрипт=Новый ТекстовыйДокумент;
    Скрипт.ДобавитьСтроку("open "+ПараметрыСеанса.FTP);
    Скрипт.ДобавитьСтроку("user");
    Скрипт.ДобавитьСтроку(ПараметрыСеанса.FTPЛогин);
    Скрипт.ДобавитьСтроку(ПараметрыСеанса.FTPПароль);
    Скрипт.ДобавитьСтроку("binary");
    
   //при необходимости входим в каталог, возможно, таких команд будет несколько
    Скрипт.ДобавитьСтроку("cd "+ТекПутьФТП);
    Скрипт.ДобавитьСтроку("put "+ПараметрыСеанса.ПутьКФайлуОбраза+"\"+ИмяФайла);
    Скрипт.ДобавитьСтроку("bye");
    
    //записываем скрипт на диск
    Файл = Новый Файл(ПараметрыСеанса.ПутьКФайлуОбраза+"\"+"ftp.txt");
    Скрипт.Записать(ПараметрыСеанса.ПутьКФайлуОбраза+"\"+"ftp.txt", "windows-1251");

    //а теперь запускаем его выполнение
    КомандаСистемы("ftp -n -s:"+ПараметрыСеанса.ПутьКФайлуОбраза+"\ftp.txt");
КонецПроцедуры

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

    //при необходимости входим в каталог, возможно, таких команд будет несколько
    Скрипт.ДобавитьСтроку("cd "+ТекПутьФТП);
    Скрипт.ДобавитьСтроку("get");
    Скрипт.ДобавитьСтроку(ИмяФайла);
    Скрипт.ДобавитьСтроку(ПараметрыСеанса.ПутьКФайлуОбраза+"\"+ИмяФайла);
    Скрипт.ДобавитьСтроку("bye");
 
   //записываем скрипт на диск
    Файл = Новый Файл(ПараметрыСеанса.ПутьКФайлуОбраза+"\"+"ftp.txt");
    Скрипт.Записать(ПараметрыСеанса.ПутьКФайлуОбраза+"\"+"ftp.txt", "windows-1251");

    //а теперь запускаем его выполнение
    КомандаСистемы("ftp -n -s:"+ПараметрыСеанса.ПутьКФайлуОбраза+"\ftp.txt");
КонецПроцедуры   


Код 1C v 7.x
 // Пример от 0xFFFFFF
// Может быть проблема в том, что 1С естественно не дожидается окончания перемещения файлов (movehere) 
// и пока копируются файлы, код продолжает выполняться далее.

Функция ОтправитьФайлыЧерезFTP()          
    //подключаемся, отправляем
    Попытка
        Шел=СоздатьОбъект("shell.application");
        ПапкаФТП=Шел.namespace("ftp://" +СокрЛП(ФТП_Пользователь)+ ":" +СокрЛП(ФТП_Пароль)+ "@" + СокрЛП(ФТП_УРЛ) + "/" +СокрЛП(ФТП_ПутьИсходящих));
         ПапкаИсточник=Шел.namespace(КаталогИсходящих);
        ПапкаЗагруженных = Шел.namespace(КаталогЗагруженных);
        Предупреждение("Подключение к FTP серверу...",1);    
        Темы=ПапкаИсточник.items();
        ПапкаЗагруженных.copyhere(Темы);
        //Темы.filter(64,"*.txt"); 
         ПапкаФТП.movehere(Темы);
    Исключение                  
        Предупреждение("Внимание! Не удалось передать файлы адресату через FTP! Возможно, параметры FTP заданы неверно, либо отсутствует связь.");
        Возврат 0;
    КонецПопытки;  
    
    //проверяем
     ФС.УстТекКаталог(КаталогИсходящих);
    ПопытокПроверки = 3;
    Для Сч = 1 По ПопытокПроверки Цикл
        Если НЕ ((СокрЛП(ФС.НайтиПервыйФайл("*.*"))="") или (СокрЛП(ФС.НайтиПервыйФайл("*.*"))=".")) Тогда
            Если Сч = ПопытокПроверки Тогда
                Предупреждение("Внимание! Не удалось передать файлы адресату через FTP! Попробуйте совершить обмен позже.");
                Возврат 0;
            КонецЕсли;
            Предупреждение("Передача файлов....", 3);
        КонецЕсли;
    КонецЦикла;
    
    Возврат 1;
КонецФункции

Функция ПолучитьФайлыЧерезFTP()          
    //подключаемся
     Попытка
        Шел=СоздатьОбъект("shell.application");
        ПапкаФТП=Шел.namespace("ftp://" +СокрЛП(ФТП_Пользователь)+ ":" +СокрЛП(ФТП_Пароль)+ "@" + СокрЛП(ФТП_УРЛ) + "/" +СокрЛП(ФТП_ПутьВходящих));
 
        ПапкаПриемник=Шел.namespace(КаталогВходящих);   
        ПапкаЗагруженных = Шел.namespace(КаталогЗагруженных);
        Предупреждение("Подключение к FTP серверу...",1);
        Темы=ПапкаФТП.items();
        ПапкаЗагруженных.copyhere(Темы);
        //Темы.filter(64,"*.txt");                             
         ПапкаПриемник.movehere(Темы);
    Исключение                  
        Предупреждение("Внимание! Не удалось получить файлы через FTP! Возможно, параметры FTP заданы неверно, либо отсутствует связь.");
        Возврат 0;
    КонецПопытки;  
    
    //проверяем
    ПопытокПроверки = 3;
    Для Сч = 1 По ПопытокПроверки Цикл
        Если ПапкаФТП.items().count>0 Тогда
            Если Сч = ПопытокПроверки Тогда
                Предупреждение("Внимание! Не удалось получить файлы через FTP! Попробуйте совершить обмен позже.");
                Возврат 0;
            КонецЕсли;
            Предупреждение("Получение файлов....", 3);
        КонецЕсли;
    КонецЦикла;
    
    Возврат 1;             
КонецФункции


Код 1C v 7.x
  //БЛОК ВЫГРУЗКИ НА ФТП 
    ТекстВыгрузки.Записать(КаталогПользователя()+(ИмяПрайса+".csv"));
    ТекстВыгрузки = "";
    ТекстВыгрузки = СоздатьОбъект("Текст");
    ТекстВыгрузки.ДобавитьСтроку("open " + "192.168.0.1"); //адрес
    ТекстВыгрузки.ДобавитьСтроку("****"); //логин
    ТекстВыгрузки.ДобавитьСтроку("*****"); //пароль
    ТекстВыгрузки.ДобавитьСтроку("put " + КаталогПользователя() + (ИмяПрайса+".csv"));
    ТекстВыгрузки.ДобавитьСтроку("bye");
    ТекстВыгрузки.Записать(КаталогПользователя() + "ftp.txt");
    ТекстВыгрузки = "";
    
    КомандаСистемы("ftp -s:" + КаталогПользователя() + "Ftp.txt>> " + (КаталогПользователя() + "report.txt"));
    ФС.УдалитьФайл(КаталогПользователя() + "ftp.txt");
    
    ТекстВыгрузки = СоздатьОбъект("Текст");
    ТекстВыгрузки.Открыть(КаталогПользователя() + "report.txt");
    КС = ТекстВыгрузки.КоличествоСтрок()-4; //если все нормально - то в этой строке файла должно быть соотв.сообщение
 
   //проверим его 
    Попытка 
        строкаКомплете = ТекстВыгрузки.ПолучитьСтроку(КС);
        Если  Найти(Нрег(строкаКомплете),"226 transfer complete") = 0
        Тогда а=1; а=а/0;
        КонецЕсли;
        тПротокол = ТекущееВремя()+" файл данных успешно отправлен на сервер интернет-магазина"+РазделительСтрок+тПротокол;
        Форма.Обновить();
        ТекстВыгрузки = "";
        ФС.УдалитьФайл(КаталогПользователя() + (ИмяПрайса+".csv"));
        ФС.УдалитьФайл(КаталогПользователя() + "report.txt");
    Исключение
        тПротокол = ТекущееВремя()+" ПРОИЗОШЛА ОШИБКА ВО ВРЕМЯ ЗАГРУЗКИ СФОРМИРОВАННОГО ФАЙЛА НА СЕРВЕР ИНЕТРНЕТ-МАГАЗИНА"+РазделительСтрок+тПротокол;
        тПротокол = ТекущееВремя()+ИмяПрайса+РазделительСтрок+тПротокол;
        Форма.Обновить();
        ТекстВыгрузки.Показать();
        ТекстВыгрузки = "";
    КонецПопытки; 
Разместил:   Версии: | 7.x | 8.x |  Дата:   Прочитано: 32857
 0 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и
1C медленно работает по сети с базой на SQL Server 23
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 2
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э
HTML5 Canvas в 1С 8.3 или Google нам поможет 0
Добрался я для написания маленьких тестов для 1С в плане web графики. Версии 1С 8.2.61 и 8.3.3.641. Зайдем на http://www.w3schools.com/html/html5_canvas.asp и перенесем примеры в обработку 1С. Скачать обработку: Результаты не радуют. 1С в Intern
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!