Имя: Пароль:
1C
1С v8
Как программно скачать файл с авторизацией на сайте?
0 rankorev
 
24.10.13
13:14
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Фсо = Новый COMОбъект("Scripting.FileSystemObject");
    
    ИмяФайла = Фсо.BuildPath(КаталогВременныхФайлов(), "ExtProc.epf");
    
    СетверИсточник="8plus.ru";
    //СетверИсточник="http://8plus.ru";; // так пишет, что не может определить имя сервера. с www тоже не работает.
    ХттпСоединение = Новый HTTPСоединение(СетверИсточник,, "freebird", "zxcnbv",);
    //Сообщить(""+ХттпСоединение.Пользователь);
    
    Попытка
        ХттпСоединение.Получить("/wp-content/themes/vladimirshop/ajax/shopfile.php?id=883", ИмяФайла);
    Исключение
        Сообщить("Ошибка при получении файла!", СтатусСообщения.Внимание);
        Сообщить(""+ОписаниеОшибки(), СтатусСообщения.Внимание);
    КонецПопытки;
    
    Если Фсо.FileExists(ИмяФайла) Тогда
        Сообщить("Файл записан!", СтатусСообщения.Информация);
        Сообщить(ИмяФайла);
    Иначе
        Сообщить("Не удалось скачать файл!", СтатусСообщения.Внимание);
        Сообщить(ИмяФайла);
    КонецЕсли;
    
КонецПроцедуры
1 rankorev
 
24.10.13
13:15
Этот код пишет ошибку:
Ошибка при получении файла!
{Форма.Форма.Форма(26)}: Ошибка при вызове метода контекста (Получить): Ошибка при выполнении файловой операции  '/wp-content/themes/vladimirshop/ajax/shopfile.php?id=883': Ошибка работы с Интернет:  внутренняя ошибка сервера (500). <!DOCTYPE html>
<!-- Ticket #11289, IE bug fix: always pad the error page with enough characters such that it is greater than 512 bytes, even after gzip compression abcdefghijklmnopqrstuvwxyz1234567890aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz11223344556677889900abacbcbdcdcededfefegfgfhghgihihjijikjkjlklkmlmlnmnmononpopoqpqprqrqsrsrtstsubcbcdcdedefefgfabcadefbghicjkldmnoepqrfstugvwxhyz1i234j567k890laabmbccnddeoeffpgghqhiirjjksklltmmnunoovppqwqrrxsstytuuzvvw0wxx1yyz2z113223434455666777889890091abc2def3ghi4jkl5mno6pqr7stu8vwx9yz11aab2bcc3dd4ee5ff6gg7hh8ii9j0jk1kl2lmm3nnoo4p5pq6qrr7ss8tt9uuvv0wwx1x2yyzz13aba4cbcb5dcdc6dedfef8egf9gfh0ghg1ihi2hji3jik4jkj5lkl6kml7mln8mnm9ono
-->
<html xmlns="http://www.w3.org/1999/xhtml"; lang="ru-RU">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>WordPress &rsaquo; Ошибка</title>
    <style type="text/css">
        html {
            background: #f9f9f9;
        }
        body {
            background: #fff;
            color: #333;
            font-family: sans-serif;
            margin: 2em auto: Ошибка работы с Интернет:  внутренняя ошибка сервера (500)
Файл записан!
C:\Documents and Settings\korolev\Local Settings\Temp\internet_files\ExtProc.epf
2 rankorev
 
24.10.13
13:20
Можно как-то файл скачать с авторизацией через ПолеHTMLДокумента?
Никто не делал?
Зайти и авторизоваться через ПолеHTMLДокумента получается. Но надо скачать программно файл.
3 Asmody
 
24.10.13
13:24
обратиться к разработчикам 8plus, чтоб сделали API на сайте
4 rankorev
 
24.10.13
13:29
(3) Какой api?
Через браузер-то я могу скачать файл, причем через любой.
5 Повелитель
 
24.10.13
13:29
У меня такая процедура есть, глянь может поможет:

Функция сайтВыполнитьКомандуСайта(СсылкаЗапроса,ИмяОперации,Пользователь,Пароль) Экспорт
    

    
    //создаем объект "Microsoft.XMLHTTP"
    попытка
        XMLHttp = новый COMObject("Microsoft.XMLHTTP");
    исключение
                возврат Строка(ТекущаяДата()) + " Ошибка создания объекта 'Microsoft.XMLHTTP': " + ОписаниеОшибки();
    конецпопытки;    
    
    попытка
        XMLHttp.open("GET", СсылкаЗапроса, Ложь,Пользователь,Пароль);
    исключение
        возврат Строка(ТекущаяДата()) + " Ошибка инициализации запроса HTTP: " + ОписаниеОшибки();
    конецпопытки;
    
    //отправляем запрос
    попытка
        XMLHttp.send();
    исключение
        возврат Строка(ТекущаяДата()) + " Ошибка отправки запроса HTTP: " + ОписаниеОшибки();
    конецпопытки;
    
    //проверка и обработка ответа
    если XMLHttp.status = 200 тогда
        Ответ = XMLHttp.responsetext;
        //1 - Успех
        //-1 - Отказ
        //Текст - ТекстОшибки
        //Сообщить(Ответ);
                Возврат Ответ;
    иначе
        возврат Строка(ТекущаяДата()) + " Ошибка - статус: " + Строка(XMLHttp.StatusText);
    конецесли;
    
КонецФункции
6 rankorev
 
24.10.13
13:29
(3) Ссылку взял из браузера.
7 rankorev
 
24.10.13
13:30
(5) это любой файл или только XML/HTTP?
8 Повелитель
 
24.10.13
13:33
(7) Не могу ответить, не я писал, я с помощью нее только посылал команды нашему старому интернет магазину.
9 rankorev
 
24.10.13
13:36
(8) Применил. Пишет:
24.10.2013 13:35:48 Ошибка - статус: Internal Server Error
Похоже, что то же самое.
10 rankorev
 
24.10.13
13:37
+(9) В переменной СсылкаЗапроса указал полный адрес с http.
11 rankorev
 
24.10.13
14:43
нет больше идей? )
Ошибка? Это не ошибка, это системная функция.