Добрый день
Есть ссылка https://pro1c.org.ua/redirect.php?http://sait2/pls/info/REESTR_PERSONS_TO_1C.run?rep_user=IVANOV&p_com=30274&p_reestr_format=xls&p_action=Пуск
При выполнении в браузере по ней открывается форма отчета и сразу формируется Exel файл
СерверИсточник = "sait2";
Адрес = Новый HTTPЗапрос("/pls/info/REESTR_PERSONS_TO_1C.run?rep_user=IVANOV&p_com=30274&p_reestr_format=xls&p_action=Пуск");
ИмяВходящегоФайла = C:\1\1.xls;
НТТР = Новый HTTPСоединение(СерверИсточник);
НТТР.Получить(Адрес, ИмяВходящегоФайла);
ВходящийФайл = Новый Файл(ИмяВходящегоФайла);
Надо более конкретно смотреть что по конкретной ссылке происходит, потому что просто по описанию сложно понять.
Vofka @ Сегодня, 11:41
,
Вставляю ссылку в интернет эксплоер и сразу идет формирование файла
если пытаюсь сделать из 1С то в файл сохраняются только параметры для выполнения
Это ссылка на получение отчета из базы оракл и
и в базе так же происходит работа через internet explorer
может надо другим способом запускать формирование файла отчета?
Так в самой ссылке заполнены все параметры и команда запуска формирования отчета в файл
А что вы имеете ввиду под
Vofka @ Вчера, 16:21
,
если вручную делать нажимаешь ПУСК формируется файл и сохраняется(в експлоере выходит предложение сохранить или сохранить как)
а по ссылке сразу формируется файл и сохраняется(в експлоере выходит предложение сохранить или сохранить как)
Vofka @ Сегодня, 11:01
,
Открыл в браузере страницу формирования отчета
URL-адрес запроса: https://pro1c.org.ua/redirect.php?http://sait2/pls/info/REESTR_PERSONS_TO_1C.run?rep_user=IVANOV
Метод запроса: GET
Код состояния: 200 / OK
- Заголовки запроса
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, */*
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU
Connection: Keep-Alive
Host: sait2
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; InfoPath.3)
- Заголовки ответа
Connection: Keep-Alive
Content-Type: text/html; charset=WINDOWS-1251
Date: Thu, 16 Jul 2020 09:35:20 GMT
Keep-Alive: timeout=150, max=99
Server: Oracle HTTP Server Powered by Apache/1.3.12 (Win32) ApacheJServ/1.1 mod_ssl/2.6.4 OpenSSL/0.9.5a
Transfer-Encoding: chunked
X-DB-Content-length: 9975
Поставил нужный формат файла XLS и Нажал ПУСК
URL-адрес запроса: https://pro1c.org.ua/redirect.php?http://sait2/pls/info/reestr_persons_to_1C.run
Метод запроса: POST
- Заголовки запроса
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, */*
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU
Cache-Control: no-cache
Connection: Keep-Alive
Content-Length: 110
Content-Type: application/x-www-form-urlencoded
Host: sait2
Referer: https://pro1c.org.ua/redirect.php?http://sait2/pls/info/REESTR_PERSONS_TO_1C.run?rep_user=IVANOV
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; InfoPath.3)
Сформировался файл нажал сохранить
- Заголовки ответа
Connection: Keep-Alive
Content-Disposition: attachment; filename="%D0%A1%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B6%D0%B8%D0%B2% D0%B0%D1%8E%D1%89%D0%B8%D1%85%20%D0%B2%20%D0%B6%D0%B8%D0%BB%D0%BE%D0%BC%20%D1%84%D0%BE%D0%BD%D0%B4%D0%B5.xls"
Content-Type: application/vnd.ms-excel
Date: Thu, 16 Jul 2020 09:38:37 GMT
Keep-Alive: timeout=150, max=100
Server: Oracle HTTP Server Powered by Apache/1.3.12 (Win32) ApacheJServ/1.1 mod_ssl/2.6.4 OpenSSL/0.9.5a
Transfer-Encoding: chunked
X-DB-Content-length: 91614751
Вместо
НТТР.Получить(Адрес, ИмяВходящегоФайла);
НТТР.ОтправитьДляОбработки(Адрес, ИмяВходящегоФайла);
Vofka @ Вчера, 17:13
,
Делал
2 способ не помог
ИмяВходящегоФайла1 = "\\192.168.113.7\работа\555.xls";
Ссылка = "http://sait2/pls/info/REESTR_PERSONS_TO_1C.run?rep_user=IVANOV&p_com=30274&p_reestr_format=xls&p_action=Пуск";
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); //WinHttpRequest
WinHttp.Open("GET", Ссылка, Ложь); //POST Тоже пробовал
WinHttp.Send();
Если WinHttp.Status = 200 Тогда
Stream = Новый COMОбъект("ADODB.Stream");
Stream.Type = 1;
Stream.Mode = 3;
Stream.Open();
Stream.Write(WinHttp.ResponseBody);
Stream.SaveToFile(ИмяВходящегоФайла1, 2);
Stream.Close();
Stream = Неопределено;
Сообщить("1");
Иначе
//Сообщить("HTTP " + WinHttp.Status + " " + WinHttp.StatusText);
//Возврат;
КонецЕсли;
Как его можно реализовать в 1С
Пример на C#:
private void button1_Click(object sender, EventArgs e)
{
WebClient webClient = new WebClient();
string link = @"http://dezvgr2/pls/info/REESTR_SOB_TO_1C.run?rep_user=TVERETINA&p_com=30274&p_reestr_format=xls&p_action=Start";
string downloadFileName = System.IO.Path.GetFileName("test.xls");
webClient.DownloadFile(new Uri(link), @"F:\tmp\test\" + downloadFileName);
}
Проблема в сервисе была переделали p_action=Start ("Пуск" Русские буквы некорректно передавались ) и убрали зависимость от регистра
из 1С все отработало хорошо
ИмяВходящегоФайла = Объект.ПутьКФайлу;
HTTP = Новый HTTPСоединение(Объект.Сервер);
HTTPЗапрос = Новый HTTPЗапрос(Объект.АдресЗапроса);
HTTP.ОтправитьДляОбработки(HTTPЗапрос,ИмяВходящегоФайла); //POST запрос
//HTTP.Получить(HTTPЗапрос,ИмяВходящегоФайла); //GET Запрос тоже
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua