|
Мож кому пригодится, как сделать POST (ну и GET) запрос с 1С на страничку | ☑ | ||
---|---|---|---|---|
0
Kreont
04.05.09
✎
20:11
|
WinHttp=СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"Windows-1251"); WinHttp.Open("POST","http://sta.gov.ua/control/uk/vat/search",0); // Вторым параметром передаем GET-данные //param1=value1¶m2=value2" //WinHttp.SetProxy(0,"192.168.1.1:3128");// Задаем параметры своего прокси сервера //WinHttp.SetCredentials("ProxyLogin","ProzyPassword",1); // Задаєм параметром логин и пароль //если прямое соединение то так в коментах и оставлем :) WinHttp.SetRequestHeader("Accept-Language", "ru"); WinHttp.SetRequestHeader("Accept-Charset","Windows-1251"); WinHttp.setRequestHeader("Content-Language", "ru"); WinHttp.setRequestHeader("Content-Charset", "Windows-1251"); WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251"); ПараметрыПОСТ = "isJuridical=1" + "&individualCode="+СокрЛП(Контрагент.ЕДРПОУ); WinHttp.Send(ПараметрыПОСТ);// Параметром передаем POST-данные для страници тут как раз Дальше или сохраняем страницу в файл Текст = СоздатьОбъект("Текст"); Текст.ДобавитьСтроку(WinHttp.ResponseText()); Текст.Записать(КаталогИБ() + "otvet.htm"); или парсинг и получение нужных даных P.S. Просто сам намучался с такой постановкой задачи, когда надо с сайта налоговой sta.gov.ua было получить страницу после POST - запроса. Если кого очень интересует для баз 1С Украины есть что потестить, обработку готовую выложил на http://www.commerce.at.ua/publ/1-1-0-11 // Если будут вопросы отвечу, сам два дня мучался :) |
|||
1
Torquader
04.05.09
✎
20:13
|
А через InternetExplorer.Application и метод Navigate не проще ли ? Там можно будет открыть страницу с формой, "вбить" сценарием в неё нужные данные и также "нажать" магическую кнопку отправки данных.
|
|||
2
Kreont
04.05.09
✎
20:21
|
Непробовал, так думаю точно попроще.
Хотя как вариант посмотрю еще и что умеет InternetExplorer.Application. искал замену стандартному V7HttpReader, который через POST ну никак неотправлял. |
|||
3
Mashinist
04.05.09
✎
20:46
|
Хорошая тема.
Работает. |
|||
4
Mashinist
04.05.09
✎
20:49
|
Только вот почему-то Номер свiдоцтва (8 або 9 знаків) не совпадает ни разу с тем что у меня в базе
И проблема с ЕДРПОУ начинающимся с нуля. |
|||
5
smaharbA
04.05.09
✎
21:04
|
А может вперед у супер-пупер-суперногознатока спросить ? у меня ? )))
|
|||
6
Kreont
05.05.09
✎
10:32
|
"Номер свідоцтва" у меня по базе почти всегда совпал, наверное бухгалтера поаккуратней вносят :)
-- С ЕДРПОУ начинающимся с нуля тоже заметил что шо то тут не то, потестирую счас |
|||
7
Андрюха
05.05.09
✎
10:35
|
(5)+100 :-)
|
|||
8
Kreont
05.05.09
✎
10:40
|
Есть такое точно с ЕДРПОУ что начинаются с нуля(-ей),
но странно что сам сайт такой номер спереди без нулей и возвращает :( Надо будет написать админам в налоговую... :) Иначе только самим получается до допустимого значения подогнять спереди нулями уже полученный результат. |
|||
9
DGorgoN
05.05.09
✎
10:44
|
(0) А файлик как передать не подскажешь?
|
|||
10
FN
05.05.09
✎
10:44
|
(0) Оформи в виде внешней обработки и положи на ИС - я тебе обязательно плюс поставлю.
|
|||
11
Kreont
05.05.09
✎
10:48
|
Оформил уже, куда обработку положить :)
(Под 1С Бухгалтерия 7.7 Для Украины есть) С фаликом вроде тут надо менять начинать: WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251"); application/x-www-form-urlencoded - признак что будет отправка на форму запроса в виде гтовой строки, там есть еще другие варианты в нете видел где - то пока то делал :) |
|||
12
FN
05.05.09
✎
10:56
|
(11) www.infostart.ru
|
|||
13
insider
05.05.09
✎
10:57
|
(11) да хоть на рапидшару :)
я правильно понял, что это пример автоматизации поиска налогоплательщика по ИНН? тогда штука полезная, думаю многие спасибо скажут :) P.S. а что абрахамс думает по этому поводу? ;) на всякий случай, требуемый адрес: http://sta.gov.ua/control/vat/search и тут в поля внести соотв. данные (надеюсь, без перевода понятно, что именно) |
|||
14
insider
05.05.09
✎
10:59
|
помнится нечто такое делал через объект эксплорера, но позабыл :(
вот точно помню, что по-другому как-то делается... |
|||
15
Kreont
05.05.09
✎
11:00
|
Ближе к обеду выложу , напишу где и куда.
- Штука действительно полезная, у меня бухгалтер и юрист заценили сразу |
|||
16
Kreont
05.05.09
✎
11:21
|
||||
17
Холст
05.05.09
✎
15:41
|
для http://egrul.nalog.ru/fns/index.php взлетит ?
|
|||
18
Kreont
05.05.09
✎
16:02
|
Переписать тока парсинг страници надо :(
Линк http://egrul.nalog.ru/fns/fns.php ПараметрыПОСТ = "num="+Контрагент.ЕДРПОУ; (Есть еще такое в html: name="action" value="Искать", если не пойдет то добавить ПараметрыПОСТ = ПараметрыПОСТ + "&action=Искать") Вроде так, попробуй писать в файл что получилось сначала без анализа страници. |
|||
19
Kreont
05.05.09
✎
16:04
|
Линк такой, а то скрипт форума поковырял (
egrul.nalog.ru/fns/fns.php |
|||
20
Kreont
05.05.09
✎
16:25
|
А Федеральная налоговая служба смотрю,
так на странице покрасивей даные показывает, да и побольше: и адрес есть, еще б телефон еще добавили :) Иду жаловаться на форум sta.gov.ua админам налоговой пусть добавляют еще адрес и мне :) |
|||
21
Холст
05.05.09
✎
19:09
|
спасибо большое !!!
|
|||
22
insider
05.05.09
✎
19:16
|
(16) спасибо, но чето не работает...
проверял на типовой, на контрагенте с заполненными ИНН и ОКПО. что я делаю не так? |
|||
23
insider
05.05.09
✎
19:26
|
+22 сразу уточню: нужно снять проверку на ОКПО, точнее для физиков надо проставлять автоматом нолик (так сайт схавает). и надо проставлять переключатель физик/юрик.
ну а у меня на физиках - "не найдена инфа", а на юриках - "ошибка соединения", ессно инет работает и все такое. а вообще идея замечательная :) |
|||
24
Kreont
05.05.09
✎
19:40
|
Соединение идет через прокси сервер?
|
|||
25
2mugik
05.05.09
✎
20:27
|
(0) Я в восьмерке пытался Номенклатуру через стандартные методы выгружать на сайт. В итоге тоже промучался с ВИнХТТП. Только пришлось еще через "поток"(stream) делать, посколько кодировка у восьмерки Unicode
|
|||
26
Ковычки
05.05.09
✎
20:41
|
(13) а нифига он не думает, лодырь...
думает как трафик на конторе снизить не обрезая ничего |
|||
27
insider
05.05.09
✎
22:07
|
(24) нет, прямое
|
|||
28
Холст
06.05.09
✎
00:41
|
копаю http://www.valaam-info.ru/fns/fns.php (это место куда переадресовывается http://egrul.nalog.ru/fns/fns.php)
не получается пока в 1С получить страницу с данными в браузере если сначала зайти на http://www.valaam-info.ru/fns/fns.php а потом пойти на http://www.valaam-info.ru/fns/fns.php?num=7723000446 работает запрос, может эта инфа поможет ? |
|||
29
JF_168
06.05.09
✎
01:02
|
То что надо:))), ща опробуем
|
|||
30
Kreont
06.05.09
✎
20:05
|
27 - proxycfg.exe -d (выставляет прямое соединение)
мож там непорядок |
|||
31
Kreont
08.05.09
✎
13:07
|
28:
Вроде у меня как то заработало и с http://www.valaam-info.ru/fns/fns.php Кому оч.интересно то загвоздка в сессиях сеанса PHP, там надо еще в хедер добавлять SetRequestHeader("Cookie", "PHPSESSID=а тут я вписал свой ид сесии"); Как сделать чтоб у всех работало незнаю еще, по идее сначала с 1С надо подключить страницу, потом получить значение PHPSESSID и уже при поиске/сверке передавать его. |
|||
32
Kreont
11.05.09
✎
12:21
|
Кто искал как сделать проверку под налоговую России:
У меня запрос правда такой, выгреб его с помощью проги "HTTP Debugger Pro", так что если надо кому под другой адрес, то рекомендую сначала грабнуть страницу (хедер) что отправляется, а потом просто его копируем в 1С и все должно работать: ПараметриПОСТ = "name=&adr=®ion=%C2%F1%E5+%F0%E5%E3%E8%EE%ED%FB&date=&num=" + Код + "&action=%C8%F1%EA%E0%F2%FC"; |
|||
33
Ковычки
11.05.09
✎
12:42
|
ты бы поглядел вперед в код страницы, может и увидел бы, что ничего "выгребать" и не надо
|
|||
34
Паацелуй меня удача
11.05.09
✎
12:47
|
(33)Немного не в тему. А можно на основе этого заматырить поиск по странице по заданному набору значений или строке ?
|
|||
35
Паацелуй меня удача
11.05.09
✎
12:48
|
+(34)Обработку такую с выборкой вхождений ...
|
|||
36
Ковычки
11.05.09
✎
12:50
|
это уже DOM, СоздатьОбъект("htmlfile") загрузить в него полученное и искать
|
|||
37
Паацелуй меня удача
11.05.09
✎
12:52
|
DOM = DCOM ?
|
|||
38
Паацелуй меня удача
11.05.09
✎
12:52
|
А понял ..
|
|||
39
Kreont
11.05.09
✎
13:39
|
->33 Через регулярные выражения
Книга знаний: Использование регулярных выражений (RegExp) в 1С // Их полезно знать как писать ( и читать:-( ) ,пригодится... |
|||
40
Холст
11.05.09
✎
15:22
|
не взлетает, вот текущий код
WinHttp=СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"Windows-1251"); // //WinHttp.Open("GET","http://egrul.nalog.ru/fns/index.php?",0);//http://sta.gov.ua/control/uk/vat/search //WinHttp.Open("GET","http://www.valaam-info.ru/fns/fns.php?"+"name=&adr=®ion=&date=&num="+СокрЛП(ПоточнийКонтрагент.ИНН)+"&action=%C8%F1%EA%E0%F2%FC",0);//http://sta.gov.ua/control/uk/vat/search //WinHttp.Open("POST","http://www.valaam-info.ru/fns/fns.php?"+"num="+СокрЛП(ПоточнийКонтрагент.ИНН),0);//http://sta.gov.ua/control/uk/vat/search WinHttp.Open("POST","http://www.valaam-info.ru/fns/fns.php",0);//http://sta.gov.ua/control/uk/vat/search // Другим параметром при потребі можна передавати також додатково GET-змінні звичайно що в форматі "?param1=value1¶m2=value2" //WinHttp.SetProxy(0,"192.168.1.1:3128");// Задаєм параметри свого проксі сервера при потребі //WinHttp.SetCredentials("ProxyLogin","ProzyPassword",1);// Задаєм параметром логін і пароль для проксі якщо потрібно //якщо пряме підключення до інтернету то два попередніх рядки нерозкоментовуємо WinHttp.SetRequestHeader("Accept-Language", "ru"); WinHttp.SetRequestHeader("Accept-Charset","Windows-1251");// WinHttp.setRequestHeader("Content-Language", "ru"); WinHttp.setRequestHeader("Content-Charset", "Windows-1251"); // WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251"); // ПараметриПОСТ = "name=&adr=®ion=&date=&num="+СокрЛП(ПоточнийКонтрагент.ИНН)+"&action=%C8%F1%EA%E0%F2%FC"; //+"&action=fns.php"; // //WinHttp.Send();// Параметром передаєм POST-змінні власне тут WinHttp.Send(ПараметриПОСТ);// Параметром передаєм POST-змінні власне тут Возвращает начальную страницу, русские буквы искажает |
|||
41
Ковычки
11.05.09
✎
15:24
|
(39)(40) фигня какая то
|
|||
42
Kreont
11.05.09
✎
15:38
|
У меня взлетает такое:
пОбъект.Open("POST","http://www.valaam-info.ru/fns/fns.php",0); пОбъект.SetRequestHeader("Accept","image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, */*"); пОбъект.SetRequestHeader("Referer","http://www.valaam-info.ru/fns/"); пОбъект.SetRequestHeader("Accept-Language", "ru"); пОбъект.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded"); пОбъект.SetRequestHeader("UA-CPU", "x86"); пОбъект.SetRequestHeader("Accept-Encoding", "gzip, deflate"); пОбъект.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)"); пОбъект.SetRequestHeader("Proxy-Connection", "Keep-Alive"); пОбъект.SetRequestHeader("Content-Length", "96"); пОбъект.SetRequestHeader("Host", "www.valaam-info.ru"); пОбъект.SetRequestHeader("Pragma", "no-cache"); ПараметриПОСТ = "name=&adr=®ion=%C2%F1%E5+%F0%E5%E3%E8%EE%ED%FB&date=&num=" + СокрЛП(ПоточнийКонтрагент.ИНН) + "&action=%C8%F1%EA%E0%F2%FC"; |
|||
43
Холст
15.05.09
✎
09:59
|
на правах апа
на www.valaam-info.ru пока так и не удалось заставить работать обработку |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |