Имя: Пароль:
1C
 
Мож кому пригодится, как сделать 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&param2=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
Ну у меня ИС и тормозит :(

Пробуйте тут ert-файлом:
http://infostart.ru/projects/4034/
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=&region=%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=&region=&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&param2=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=&region=&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=&region=%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 пока так и не удалось заставить работать обработку