0
- 16.04.2018 - 17:52
|
Привет всем! С 13 апреля 2018г обнаружилось, что контур-фокус закрыл доступ к веб-запросам (общался с ними), но есть доступ к серверу контур-фокус командой: ЗапуститьПриложение(СтрокаЗапроса); - На экран выходит экранная форма ответа. - Нужно сохранить кодовую часть полученной веб-страницы в текстовый файл - как? - Вручную - через сохранить как - и перекодировкой в кириллицу 1251 - можно, но непроизводительно. К тому же - хотелось бы не открывать экранную форму - она затратна, а сразу перейти в режим сохранения. - У кого есть опыт? :-) | | |
1
- 16.04.2018 - 18:02
| Microsoft.XMLHTTP | | |
2
- 16.04.2018 - 18:49
|
1-Ирли Бёрд >??? Имеется в виду вот это? СтрокаHTTPЗапроса="https://focus.kontur.ru/search?query="+Наименование_+"®ion="+?(ВыбРегио н.Выбран()=1,Число(ВыбРегион.Код),"")+"&industry=" +"&state=081077917"; хHTTP = СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); хHTTP.open ("GET", СтрокаHTTPЗапроса,0); хHTTP.send(); ТекстHTTPОтвета = хHTTP.responsetext(); Текст.ДобавитьСтроку(СтрЗаменить(ТекстHTTPОтвета," utf-8","windows-1251")); Текст.Записать(Каталогпользователя() + "otvet32.htm"); - Не работает - уже описал проблему в 0-perpetum >. Работает только: ЗапуститьПриложение(СтрокаHTTPЗапроса); Но в таком случает ответ выходит в виде экранной формы, а нужно кодовую часть сохранить в файл, не открывая экранную форму. | | |
3
- 16.04.2018 - 22:48
|
К тому же - хотелось бы не открывать экранную форму - она затратна, а сразу перейти в режим сохранения. Но в таком случает ответ выходит в виде экранной формы, а нужно кодовую часть сохранить в файл, не открывая экранную форму. экранная формa в вашем случае это что, о чем речь? - желательно скрин | | |
4
- 17.04.2018 - 04:24
|
3-migi >Без скрина, просто запросом в строке браузера Google Chrom: https://focus.kontur.ru/entity?query=5067746794671 Здесь "5067746794671" = ОГРН организации, для примера. Посмотреть кодовую часть при этом, можно в режиме "Просмотр кода страницы". Нужно перехватить ответ по запросу к серверу focus.kontur.ru и сохранить в файл, или текстовый образ. | | |
5
- 17.04.2018 - 04:52
| 7.7-ка? | | |
6
- 17.04.2018 - 04:54
|
Функция ПрочитатьСтраницуВФайлXML(АдресСтраницы) Перем XMLHTTPRequest, ADODBStream; стрАдресСтраницы = СокрЛП(АдресСтраницы); Состояние("Чтение страницы "+стрАдресСтраницы); Попытка XMLHTTPRequest = СоздатьОбъект("Microsoft.XMLHTTP"); Исключение Сообщить("Ошибка создания Microsoft.XMLHTTP", "!!"); Возврат ""; КонецПопытки; XMLHTTPRequest.Open("GET", стрАдресСтраницы, 0); Попытка XMLHTTPRequest.Send(); Исключение Сообщить("Ошибка выполнения метода SEND объекта Microsoft.XMLHTTP", "!!"); Возврат ""; КонецПопытки; //получили текст страницы в XMLHTTPRequest.ResponseBody Попытка ADODBStream = СоздатьОбъект("ADODB.Stream"); Исключение Сообщить("Ошибка создания ADODB.Stream", "!!"); Возврат ""; КонецПопытки; //тип и режим потока ADODBStream.Mode = 3; ADODBStream.Type = 1; ADODBStream.Open(); //объект для управления скриптами Попытка ScriptControl = СоздатьОбъект("MSScriptControl.ScriptControl"); Исключение Сообщить("Ошибка создания MSScriptControl.ScriptControl", "!!"); Возврат ""; КонецПопытки; ScriptControl.Language = "vbscript"; //добавим созданные объекты ScriptControl.AddObject("ADODBStream", ADODBStream); ScriptControl.AddObject("XMLHTTPRequest", XMLHTTPRequest); //скриптом запишем в поток ADO данные из объекта XMLHTTPRequest, то есть содержимое страницы ScriptControl.Eval("ADODBStream.Write(XMLHTTPReque st.ResponseBody)"); //скидываем во временный файл ИмяФайла = СтрЗаменить(стрАдресСтраницы, "://", "_"); Если Найти(ИмяФайла, "%") <> 0 Тогда //url-кодировка детектед! ИмяФайла = РаскодироватьURL(ИмяФайла); КонецЕсли; ИмяФайла = ЗаменитьЗарезервированныеСимволы(ИмяФайла); ИмяФайла = КаталогВременныхФайлов() + ИмяФайла+".xml"; Попытка ADODBStream.SaveToFile(ИмяФайла, 2); Исключение Сообщить("Не удалось записать файл "+ИмяФайла+РазделительСтрок+ОписаниеОшибки(), "!!"); Возврат ""; КонецПопытки; //закрываем поток ADODBStream.Close(); //деструкторы ScriptControl = ""; ADODBStream = ""; oleXM = ""; Возврат ИмяФайла; КонецФункции //ПрочитатьСтраницуВФайлXML | | |
7
- 17.04.2018 - 05:14
| Да, 7.7. :-) | | |
8
- 17.04.2018 - 05:51
|
во-первых, прекращай палиться во-вторых, посмотри пример, он рабочий | | |
9
- 17.04.2018 - 06:01
|
ЗапуститьПриложение Выполняет запуск внешнего приложения. Синтаксис: ЗапуститьПриложение(<СтрокаКоманды>) Англоязычный синоним: RunApp Параметры: <СтрокаКоманды> Строковое выражение, содержащее строку команды запуска внешнего приложения или имя файла, чтобы открыть его с помощью ассоциированного для данного вида файлов приложения. Описание: Процедура ЗапуститьПриложение вызывает запуск внешнего приложения. В отличие от функции КомандаСистемы запуск приложения выполняется непосредственно, минуя командный интерпретатор. При выполнении команды исполняемый файл загружается как «верхняя», активная программа. Процедура, кроме того, может открыть файл с помощью ассоциированного для данного вида файлов приложения. (При условии, что таковое установлено на данном компьютере). Если загружается Windows-приложение, то управление немедленно возвращается в систему 1С:Предприятие на следующий за оператором ЗапуститьПриложение оператор и система продолжает выполняться как фоновая прикладная программа. Пользователь может возвратиться в запускающую программу или закончив выполнение запущенной, или переключившись обратно посредством списка задач Windows. Если в параметре <СтрокаКоманды> не содержится путь к загружаемой программе в файловой системе к программе, то поиск происходит в следующей последовательности: текущий системный каталог; каталог Windows; системный каталог Windows; все каталоги, указанные в переменной PATH; Пример: * В данном примере запускается редактор текста notepad.exe и в него загружается файл textl. txt. ЗапуститьПриложение("notepad textl.txt"); намек ясен? | | |
10
- 17.04.2018 - 06:03
| д/с ладушки Код:
| | |
11
- 17.04.2018 - 06:09
| подарок Код: [code]*[/code] | | |
12
- 17.04.2018 - 06:28
| 8-Ирли Бёрд > 3430км. | | |
13
- 17.04.2018 - 06:44
| :-) Об этом я уже писал в 2-perpetum > Цитата: Работает только: ЗапуститьПриложение(СтрокаHTTPЗапроса); Но в таком случает ответ выходит в виде экранной формы, а нужно кодовую часть сохранить в файл, не открывая экранную форму. КонецЦитаты Дело в том, что ассоциированное приложение - интернетексплорер, который возвращает экранную форму... | | |
14
- 17.04.2018 - 06:55
| скайп? 1С++ | | |
15
- 17.04.2018 - 07:04
| - на этом и затыкается, потому как, при обращении к контур-фокус, метод GER-send не работает (перестал работать с 13.04.2018г - общался со спецами контур-фокус - не хотят бесплатной раздачи), а именно: XMLHTTPRequest.Open("GET", стрАдресСтраницы, 0); XMLHTTPRequest.Send(); - возвращает пустое значение... Попытка ТекстОтвета=XMLHTTPRequest.ResponseBody; Исключение Сообщить("Ошибка вывода XMLHTTPRequest.ResponseBody"); КонецПопытки; - вылетает на сообщение "ошибка". Может я неправильно интерпретирую структуру XMLHTTPRequest ? | | |
16
- 17.04.2018 - 07:15
|
15-perpetum > - описка, читать: GER-send = GET-send
Отредактировано perpetum; 17.04.2018 в 07:18. Причина: правка | | |
17
- 17.04.2018 - 07:40
| 16-perpetum > в базовых конфигурациях подсмотреть | | |
18
- 17.04.2018 - 08:12
| CHECK_KA.ERT | | |
19
- 17.04.2018 - 08:18
|
запрос к успешно возвращает Код: <!doctype html> <!--[if IE]><![endif]--> <!--[if lt IE 7]><html class="ie-lt7 ie-lt8 ie-lt9 ie-lt10" lang="ru"><![endif]--> <!--[if IE 7]><html class="ie-lt8 ie-lt9 ie-lt10" lang="ru"><![endif]--> <!--[if IE 8]><html class="ie-lt9 ie-lt10" lang="ru"><![endif]--> <!--[if IE 9]><html class="ie-lt10" lang="ru"><![endif]--> <!--[if !IE]><!--><html lang="ru"><!--<![endif]--> <head> <meta cha ... ){d.addEventListener("DOMContentLoaded",f,false);**else{f();****)(document,window,"yandex_metrika_callbacks");</script><noscript><div><img src="//mc.yandex.ru/watch/14324677?ut=noindex" style="position:absolute;left:-9999px;" alt=""/></div></noscript> <script type="text/javascript">$(document).on("ym-reach-goal",function(d,c,b){yaCounter14324677.reachGoal(c,{label:b**)**);</script> </body> </html> | | |
20
- 17.04.2018 - 08:33
| Спасибо, попробую, но это будет обращение к другому серверу (не контур-фокус) и там запросы только по готовым ИНН, КПП, а можно ли по наименованию контрагента, ОГРН и можно ли в ответе получить адрес и другие реквизиты контрагента? - Как получить список всех возможных реквизитов в ответе? | | |
21
- 17.04.2018 - 08:34
| ответ на запрос, файл полностью - http://rgho.st/76FmWnnWw | | |
22
- 17.04.2018 - 08:41
|
19-migi > - имеется в виду чтение кода из экранной формы через меню по правой кнопке мыши "Просмотр кода страницы" ? - это да... Или каким образом была получена кодовая часть "успешно возвращает"? | | |
23
- 17.04.2018 - 08:42
| Цитата:
| | |
24
- 17.04.2018 - 08:45
|
значения для Код: https://focus.kontur.ru/search?query="+Наименование_+"®ion="+?(ВыбРегио н.Выбран()=1,Число(ВыбРегион.Код),"")+"&industry=" +"&state=081077917"; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ??? | | |
25
- 17.04.2018 - 09:00
| уважаемый, это https://in***art.ru/public/336256/ не серьёзно. | | |
26
- 17.04.2018 - 12:51
| 25-migi > - это пока на редактировании, если удастся исправить ситуацию с запросом - выложу. | | |
27
- 20.04.2018 - 11:22
| 26-perpetum >https://fo***ru/forum9/topic190853/ | | |
28
- 20.04.2018 - 16:07
|
27-migi >Для желающих подключиться на форуме инфостарт: https://forum.infostart.ru/forum9/topic190853/ | | |
29
- 23.04.2018 - 03:32
|
На текущий момент нашел, что если запрос сделать командой: 1. - ЗапуститьПриложение(СтрокаЗапроса), то в одностраничном ответе по запросу, сразу в строке браузера получим URL. Затем, можно ввести URL в качестве строки запроса, получим ответ сервера в нужном формате для парсинга по реквизитам контрагента. Если строка запроса в команде: 2. - ЗапуститьПриложение(СтрокаЗапроса) является многостраничной - содержит множество ссылок на URL, тогда можно копировать конкретный URL со страницы для последующего поиска - как в одностраничном запросе. Собственно, всё сводится к получению списка URL веб-страницы. - Таким образом, нужен скрипт для чтения URL из веб-страницы. | |
| Интернет-форум Краснодарского края и Краснодара |