Закачка файла по ссылке из Web на диск в 1С 7.7

База знаний
  1. 11 г. назад
    Функция СкачатьФайлПоСсылке(Ссылка,ИмяФайла)
        
        Попытка
            JS=СоздатьОбъект("MSScriptControl.ScriptControl");
            JS.Language="jscript";
            JS.Timeout=-1;
        Исключение
            ТекстОшибки=ОписаниеОшибки();
            Сообщить("Не удалось создать объект MSScriptControl.ScriptControl","!");
            Сообщить("Описание ошибки: "+ТекстОшибки,"!");
            Возврат 0;
        КонецПопытки;
        
        Попытка
            
            СтрКода="function DwnFile(FileLink,FileName)
            |{
            |   Stream=new ActiveXObject(""ADODB.Stream"");
            |   Stream.Mode=3;
            |   Stream.Type=1;
            |   Stream.Open();
            |   Req=new ActiveXObject(""Microsoft.XMLHTTP"");
            |   Req.Open(""GET"",FileLink,0,"""","""");
            |   Req.Send();
            |   Stream.Write(Req.responseBody);
            |   Stream.SaveToFile(FileName,2);
            |   Stream.Close();
            
            | return(0);
            |}
            |";
        
        JS.AddCode(СтрКода);
        Рез=JS.Modules("Global").CodeObject.DwnFile(Ссылка,ИмяФайла);
        Исключение
            ТекстОшибки=ОписаниеОшибки();
            Сообщить("Произошла ошибка при закачке файла!","!");
            Сообщить("Описание ошибки: "+ТекстОшибки,"!");
            Возврат 0;
        КонецПопытки;
        Возврат 1;
    КонецФункции
    
    

    Возвращает 1 в случае успеха, 0 в случае неудачи

  2. А HTTPСоединение уже не модно использовать? (или v7plus, если речь о 7-ке)?

    Ответы: (2)
  3. (1) v7plus - глючная вещица. а в 8-ке - да. топик для 7.7

    Ответы: (3)
  4. (2) Кстати, сделал бы поудобнее деление на 7-ку и 8-ку. А то сразу не сообразишь, что к чему относится (не, теоретически-то всегда понять можно, глянув "шапку"; но в длинной ветке - это ж лишний раз скроллить).

    Ответы: (4)
  5. (3) готов выслушивать идеи в Обновление движка форума

или зарегистрируйтесь чтобы ответить!