|
Обмен 1С - Портал | ☑ | ||
---|---|---|---|---|
0
olo_lo1
11.02.14
✎
12:12
|
Подскажите пожалуйста кто в курсе - компании есть портал, туда в определенное место складываются реквизиты договора, нужно из 1С подключиться и забрать реквизиты
Пишу запрос в 1С имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); Соединение = Новый HTTPСоединение("myportal.ru/contracts",80,Логин,Пароль,, Истина); далее не знаю что нужно что бы с определенной странички все скачалось в файл имяВыходногоФайла |
|||
1
Wobland
11.02.14
✎
12:13
|
продам СП. без посредников, от производителя
|
|||
2
olo_lo1
11.02.14
✎
12:15
|
(1) Соединение.Получить("вот здесь что то указывается", имяВыходногоФайла);
я саму физику процесса не понимаю, так что стебись над этим СП тут не причем |
|||
3
Wobland
11.02.14
✎
12:19
|
Процедура КоманднаяПанель3ПолучитьФайлы(Кнопка)
Для Каждого ТекСтрока Из ПоследниеВерсии Цикл ОбработкаПрерыванияПользователя(); Если НЕ ТекСтрока.Пометка Тогда Продолжить; КонецЕсли; Состояние("Загрузка http://techsupp.1c.ru/"+ТекСтрока.Гиперссылка); Расширение=Сред(ТекСтрока.Гиперссылка, СтрДлина(ТекСтрока.Гиперссылка)-2, 3); ИмяКаталога=СтрПолучитьСтроку(ТекСтрока.Наименование, СтрЧислоСтрок(ТекСтрока.Наименование)); ИмяКаталога=СтрЗаменить(ИмяКаталога, ":", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, ".", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "\", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "/", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "*", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "?", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, ";", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, "(", ""); ИмяКаталога=СтрЗаменить(ИмяКаталога, ")", ""); Если НЕ ПроверитьСуществованиеКаталога(ИмяКаталога) Тогда Продолжить; КонецЕсли; ИмяФайла=ПутьЗагрузки+ИмяКаталога+"\"+ПолучитьИмяФайлаИзГиперссылки(ТекСтрока.Гиперссылка); Попытка http.Получить(ТекСтрока.Гиперссылка, ИмяФайла); Мусор.Добавить(ИмяФайла); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; КонецПроцедуры |
|||
4
olo_lo1
11.02.14
✎
12:22
|
(3) чтоу тебя в этой переменной ТекСтрока.Гиперссылка ?
|
|||
5
Wobland
11.02.14
✎
12:23
|
(4) не скажу, что горжусь этим
ПоследниеВерсии.Очистить(); HTML=Новый COMОбъект("HTMLFile"); HTML.Open("text/html"); HTML.Write(ф.ПолучитьТекст()); HTMLDocument=HTML.documentElement.document; Table=HTMLDocument.getElementsByTagName("Table"); obj=Table.Item(1); КоличествоСтрок=Цел((obj.cells.length-1)/4); Для i=1 По КоличествоСтрок Цикл НоваяСтрока=ПоследниеВерсии.Добавить(); НоваяСтрока.Дата=СокрЛП(obj.cells(i*4).innerText); Наименование=СокрЛП(obj.cells(i*4+1).innerText); поз=Найти(Наименование, "Подробнее"); Если поз>0 Тогда Наименование=СокрЛП(Лев(Наименование, поз-3)); КонецЕсли; НоваяСтрока.Наименование=Наименование; НоваяСтрока.НомерРелиза=СокрЛП(obj.cells(i*4+2).innerText); Ссылки=ПолучитьГиперссылки(obj.cells(i*4+3).innerHTML); Если Ссылки.Количество() Тогда НоваяСтрока.ГруппыФайлов=Ссылки[0].Текст; НоваяСтрока.Гиперссылка=Ссылки[0].Гиперссылка; КонецЕсли; Для й=1 По Ссылки.Количество()-1 Цикл НоваяСтрока=ПоследниеВерсии.Добавить(); НоваяСтрока.ГруппыФайлов=Ссылки[й].Текст; НоваяСтрока.Гиперссылка=Ссылки[й].Гиперссылка; КонецЦикла; КонецЦикла; КонецПроцедуры Функция ПолучитьГиперссылки(СтрокаСоСсылками) Результат=Новый ТаблицаЗначений; Результат.Колонки.Добавить("Текст"); Результат.Колонки.Добавить("Гиперссылка"); стр=СтрокаСоСсылками; Для й=1 По СтрЧислоСтрок(СтрокаСоСсылками) Цикл поз_хреф=Найти(НРег(стр), "href"); Пока поз_хреф>0 Цикл стр=Прав(стр, СтрДлина(стр)-поз_хреф-5); поз_квч=Найти(стр, """"); поз_а=Найти(НРег(стр), "</a>"); НоваяСтрока=Результат.Добавить(); НоваяСтрока.Гиперссылка=Лев(стр, поз_квч-1); Если Лев(НоваяСтрока.Гиперссылка, 1)="/" Тогда НоваяСтрока.Гиперссылка=Прав(НоваяСтрока.Гиперссылка, СтрДлина(НоваяСтрока.Гиперссылка)-1); КонецЕсли; НоваяСтрока.Текст=Сред(стр, поз_квч+2, поз_а-поз_квч-2); поз_хреф=Найти(НРег(стр), "href"); КонецЦикла; КонецЦикла; Возврат Результат; КонецФункции |
|||
6
olo_lo1
11.02.14
✎
12:30
|
(5) все это прекрасно! и код красивый, но отделяем мух от котлет
http.Получить(ТекСтрока.Гиперссылка, ИмяФайла); как определяешь http что у тебя хранится в ТекСтрока.Гиперссылка |
|||
7
Wobland
11.02.14
✎
12:33
|
(6) давно дело было.. со страницы собираю все нужные мне ссылки в ТЗ, юзер на форме отмечает нужные, по кнопке начинается скачка.
Попытка Если СтруктураАвторизации.ИспользоватьПрокси Тогда http=Новый HTTPСоединение("techsupp.1c.ru", , СтруктураАвторизации.Логин, СтруктураАвторизации.Пароль, Прокси); Иначе http=Новый HTTPСоединение("techsupp.1c.ru", , СтруктураАвторизации.Логин, СтруктураАвторизации.Пароль); КонецЕсли; Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попытка http.Получить("", ИмяФайла); //тут сохраняю страницу себе, чтоб выдрать из неё все ссылки на скачивание Мусор.Добавить(ИмяФайла); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; |
|||
8
Wobland
11.02.14
✎
12:35
|
>что у тебя хранится в ТекСтрока.Гиперссылка
что-то из ПолучитьГиперссылки() |
|||
9
olo_lo1
11.02.14
✎
12:41
|
Если я у себя пишу
имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); Соединение = Новый HTTPСоединение("myportal.ru/contracts",80,Логин,Пароль,, Истина); http.Получить("", ИмяФайла); //пустое значение то 1С выдает - Couldn't resolve host name |
|||
10
olo_lo1
11.02.14
✎
12:41
|
Если я у себя пишу
имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); Соединение = Новый HTTPСоединение("myportal.ru/contracts",80,Логин,Пароль,, Истина); Соединение.Получить("", ИмяФайла); //пустое значение то 1С выдает - Couldn't resolve host name |
|||
11
Wobland
11.02.14
✎
12:41
|
Соединение = Новый HTTPСоединение("myportal.ru"... ?
|
|||
12
olo_lo1
11.02.14
✎
12:44
|
||||
13
Wobland
11.02.14
✎
12:46
|
(12) тут нужен кто-то бородатее меня
Соединение.Получить("contracts/?GetContract=IS-0005е-2014", ИмяФайла) ? |
|||
14
olo_lo1
11.02.14
✎
12:46
|
имяВыходногоФайла = ПолучитьимяВременногоФайла("xml");
Соединение = Новый HTTPСоединение("http://myportal.ru/contracts",80,Логин,Пароль,, Истина); Соединение.Получить(Что здесь указать ??, ИмяФайла); у меня как у тебя через "" пустое значение не взлетает |
|||
15
Wobland
11.02.14
✎
12:54
|
(14) ну у меня техсуппорт.1с был, который по пустой строке отдавал страницу. (13) пробовал?
|
|||
16
olo_lo1
11.02.14
✎
12:58
|
(15) пробовал - пишет Couldn't resolve host name
|
|||
17
Junior1s
11.02.14
✎
13:30
|
с днс все норм ?
|
|||
18
olo_lo1
11.02.14
✎
13:32
|
(17) да,
причем если пишу через незащищенное соединение Соединение = Новый HTTPСоединение("myportal.ru/contracts",80,Логин,Пароль,, Ложь); Соединение.Получить("?GetContract=IS-0005е-2014", ИмяФайла); То ругается га то что Файл не обнаружен ?GetContract=IS-0005е-2014 но тут и не должен быть файл, данные лежат на страничке |
|||
19
vhl
11.02.14
✎
14:14
|
(18) Ты (13) пробовал?
|
|||
20
olo_lo1
11.02.14
✎
14:45
|
(19) пробовал - пишет Couldn't resolve host name
|
|||
21
olo_lo1
11.02.14
✎
14:50
|
может кто-нибудь знает, если парсить содержимое через
Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); то где указать логин и пароль, т.е. произвести авторизацию |
|||
22
vhl
11.02.14
✎
14:52
|
(20) У тебя в браузере скачивается файл?
|
|||
23
vhl
11.02.14
✎
14:56
|
А так:
Соединение = Новый HTTPСоединение("myportal.ru",80,Логин,Пароль,, Ложь); Соединение.Получить("contracts/?GetContract=IS-0005е-2014", ИмяФайла); |
|||
24
olo_lo1
11.02.14
✎
22:41
|
в итоге реализовал как тут http://www.1cpp.ru/forum/YaBB.pl?num=1366372962
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |