0
- 24.11.2014 - 00:34
|
Добрый день, У 1С для подписчиков ИТС есть SOAP-сервис, отправив на который ИНН, в ответ получаешь всё остальное :-) Хочу прикрутить его к 7.7 Собственно использую скрипт и объект WinHttp.WinHttpRequest.5.1 Запрос у меня выглядит следующим образом Код: sRequest = "<?xml version=""1.0"" encoding=""UTF-8""?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns=""http://ws.orgregister.company1c.com/""> <SOAP-ENV:Body> <getCorporationRequisitesByINN> <INN>7777777777</INN> <configurationName>TiS77</configurationName> </getCorporationRequisitesByINN> </SOAP-ENV:Body> </SOAP-ENV:Envelope>" "Marshalling Error: Invalid XML character (0x420); can only be output using character entity when using ISO-8859-1 encoding" Вообще не понимаю, что ему надо. Вот прошу помощи общественности, чего не хватает, чтобы это дело заработало | |
1
- 24.11.2014 - 00:48
| используй символы кодировки ISO-8859-1 и пребудет с тобой счастье | |
2
- 24.11.2014 - 01:06
|
кодировку подставил вот в таком виде Код: oHTTP.SetRequestHeader "Content-Type", "text/xml;charset=ISO-8859-1" | |
3
- 24.11.2014 - 01:11
| (1)Спасибо за пинок, заработало :-) | |
4
- 24.11.2014 - 09:41
|
(+3)если быть точнее необходимо было указать кодировку UTF-8 через SetRequestHeader, а не просто в тексте запроса. Попутно еще вопрос? А существует ли сходный сервис для простых смертных без подписки ИТС? :-) | |
5
- 24.11.2014 - 10:11
|
4-Sasha > Вообще-то, сведения о юридических лицах принадлежат МФ (точнее, его департаменту по налогам), а никак не 1С... Следовательно, Исходный сервис следует искать на сайте ФНС. | |
6
- 24.11.2014 - 12:36
|
(4) Для 7.7 не встречал, а для 8-ки такие обработки написаны (не мной): http://infostart.ru/public/285781/ http://infostart.ru/public/281276/ http://infostart.ru/public/276742/ Осталось только переписать это под клюшки. | |
7
- 24.11.2014 - 23:13
|
5-VZ > Для не авторизованных запросов со стороны нашел только проверку статуса контрагента по ИНН, но направление интересное, будем копать :-) 6-Ткачик > Обработка интересная, скачаю посмотрю. Судя по тому, что используется капча - это не SOAP ) | |
8
- 16.05.2016 - 14:34
|
Если не трудно... можно взглянуть на Ваш скрипт и обращение с объектом WinHttp.WinHttpRequest.5.1 для запроса к 1с Вэб Серверу... | |
9
- 16.05.2016 - 22:40
| Sasha, если заработает - получение по ИНН - поделишься мну? (м.б. в обмен на что-то если такое что-то смогу найти у себя). | |
10
- 18.05.2016 - 10:27
|
Самый простой способ перекодировки - это использование виндовой команды CHCP, которая меняет кодовую страницу для ввода/вывода (866, 1251, 65001(UTF-8): @echo off chcp 866 >nul for /f "tokens=*" %%i in (866.txt) do call:to1251 "%%i" exit :to1251 chcp 1251 >nul echo %~1 >>1251.txt chcp 866 >nul exit /b Кошерно использовать iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile ...] http://www.gnu.org/software/libiconv/ | |
11
- 18.05.2016 - 15:58
| (9) Наверное заработало.. .его последняя активность в 2014 году, в данной ветке :( | |
12
- 18.05.2016 - 17:32
|
(11) Время летит, жесть. Еле нашел у себя в запасниках эту обработку. Скрипт выглядит следующим образом Код: Скрипт = "Function Execute |Dim sEndPoint |sEndPoint="""+ТочкаПодключения+""" |Dim sNameSpace |sNameSpace = """+ПространствоИмен+""" |Dim sProcedure |sProcedure="""+Процедура_+""" |Dim oHTTP |set oHTTP = CreateObject(""WinHttp.WinHttpRequest.5.1"") |oHTTP.Open ""POST"", sEndPoint, false |oHTTP.SetTimeouts 10000,90000, 3000000, 3000000 |oHTTP.SetCredentials """+ЛогинИТС+""","""+ПарольИТС+""",HTTPREQUEST_SETCREDENTIALS_FOR_PROXY |sRequest = """+Запрос+""" | |oHTTP.SetRequestHeader ""Content-Type"", ""text/xml;charset=UTF-8"" | |On Error Resume Next | |oHTTP.Send sRequest | |Dim fso |set fso = CreateObject(""Scripting.FileSystemObject"") | |If Err.Number <> 0 Then | Set tf = fso.CreateTextFile("""+ВремФайлНаДиске+""", true) | tf.WriteLine(""<err><Status>1000</Status><Text>""+ Trim(Err.description) + ""</Text></err>"") | tf.Close() | Exit Function | On Error Goto 0 |End If | On Error Goto 0 | | |Execute=oHTTP.ResponseText |if oHTTP.status = 200 Then | if oHTTP.ResponseText = """" then | Execute = ""Empty Response from Server"" | else | Execute = oHTTP.ResponseText | end if |else | Execute = ""<err><Status>""& oHTTP.status &""</Status><Text>http err ""& oHTTP.status &"" : ""& oHTTP.StatusText & ""</Text></err>"" |end if |End Function | | |Execute | | |Dim fso |set fso = CreateObject(""Scripting.FileSystemObject"") |Dim tf |set tf = fso.CreateTextFile("""+ВремФайлНаДиске+""", true) |Data = Replace(Execute,""<?xml version=""""1.0"""" encoding=""""utf-8""""?>"",""<?xml version=""""1.0"""" encoding=""""windows-1251""""?>"") |tf.WriteLine(Data) |tf.WriteBlankLines(3) |tf.Close() |"; | |
13
- 18.05.2016 - 17:34
|
Ну и соответственно запуск скрипта и чтение результатов Код: VBS = СоздатьОбъект("Текст"); VBS.ДобавитьСтроку(Скрипт); VBS.Записать(ВремФайлНаДиске+".vbs"); Сообщить("Запуск..."); Попытка WshShell = СоздатьОбъект("WScript.Shell"); WshShell.Run("%comspec% /c"+ВремФайлНаДиске+".vbs",0,1); Исключение СообщитьОшибка("ОШИБКА! : "+ОписаниеОшибки(),,0); ФС.УдалитьФайл(ВремФайлНаДиске+".vbs"); Возврат ""; КонецПопытки; ФС.ПереименоватьФайл(ВремФайлНаДиске,ВремФайлНаДиске+".txt",1); Сообщить("->"+ВремФайлНаДиске+".txt"); Сообщить("Парсим ответ..."); Если СтрДлина(ДанныеДляОтправки) = 10 Тогда ДанныеКлиента = ДанныеЮридическогоЛица(ВремФайлНаДиске+".txt"); Иначе ДанныеКлиента = ДанныеФизическогоЛица(ВремФайлНаДиске+".txt"); КонецЕсли; | |
14
- 18.05.2016 - 18:25
| (12)(13) ОГРОМНОЕ спасибо. Будем пробовать. | |
15
- 19.05.2016 - 09:10
|
(12) |oHTTP.SetCredentials """+ЛогинИТС+""","""+ПарольИТС+""",HTTPREQUEST_SET CREDENTIALS_FOR_PROXY Это вроде пароль для прокси, а куда подставлять пароль логин ИТС? | |
16
- 19.05.2016 - 11:29
|
(15) Ну, собственно тут и указываешь. заменяя HTTPREQUEST_SET CREDENTIALS_FOR_PROXY на HTTPREQUEST_SET CREDENTIALS_FOR_SERVER Полное описание здесь https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx Вот почему у меня работало так, уже не помню ) Но ошибок не было, возвращался xml с верным ответом | |
17
- 19.05.2016 - 11:37
|
Еще вопросик ТочкаПодключения https://api.orgregister.1c.ru/orgregister/v2?wsdl ПространствоИмен http://ws.orgregister.company1c.com/ Процедура_ RequisitesWebServiceEndpointImpl2Service ??? | |
18
- 19.05.2016 - 11:48
|
(17) ну в моей обработке 1,5-летней давности еще v1&wdsl и процедуры getEntrepreneurRequisitesByINN для ип getCorporationRequisitesByINN для организаций пространство имен да, такое | |
19
- 19.05.2016 - 11:49
| (+18) Пример текста запроса в (0) | |
20
- 19.05.2016 - 12:22
|
0-Sasha > Только сейчас заметил... Где-то в начале 2015 г я тоже занимался таким вопросом. Можете посмотреть по ссылкам, обработка есть на инфостарте и в свободном доступе там же, а так же, обновленный вариант по работе с api2-запросами к контур-фокус, смотрите по ссылкам: Вопрос к знатокам КЛАДРа Протестите на основе типовой конфа Бух-7.7_616 - для ПроверкаКонтрагентовПоЕГРН и Заполнение 6-НДФЛ Базочку 1С - бухгалтерия 7.7, ОСН, релиз 616, в архиве, с настройками под обработку ПроверкаКонтрагентовПоЕГРН, всё ещё можно скачать здесь: http://hdd.tomsk.ru/file/ktzswqvz | |
21
- 19.05.2016 - 12:36
|
20-perpetum >+ кроме перекодировки в UTF-8, необходимо ещё преобразование строки запроса в эскейп-последовательность, тогда сервер будет правильно реагировать на любой запрос с кириллицей - можете посмотреть в тексте обработки ПроверкаКонтрагентовПоЕГРН. | |
22
- 19.05.2016 - 12:56
|
(20) В Вашей обработке нет примера по работе с 1С Сервисом..... Пробовал Вашу, работает через раз(может из-за Контура) | |
23
- 19.05.2016 - 13:33
|
22-serpent > - ну да, у меня не было доступа к сервису 1С-подключения, потому даже не интересовался, насколько полноценно он функционирует и что там можно извлечь. Потому из свободно-доступных, был контур-фокус. Но в отношении работы через раз - что-то из ряда вон. Сервис либо работает, если сервер контур-фокус доступен, либо - нет и никаких через раз. - Можете дать ссылку на вашу обработку? - интересно взглянуть на работу с сервисом 1С. | |
24
- 19.05.2016 - 13:39
|
(23) я пока разбираюсь со скриптом.... не выходит... возвращает ошибка №70 An error occurred in the secure channel support | |
25
- 19.05.2016 - 13:40
| (23) весь скрипт на данной странице | |
26
- 19.05.2016 - 14:13
|
24-serpent > Ответ некорректен - отвечая, необходимо указывать, что вы тестируете. Если тестируете запрос к контур-фокус по моей обработке, то вариант ошибки по проблеме безопасности, может быть связан с видом ваше ОС и её настройки. Я сейчас тестирую свою обработку на w-7, проблем нет. | |
27
- 19.05.2016 - 14:19
| 25-serpent > - а где же автор топика "Sasha"? | |
28
- 19.05.2016 - 14:20
| у меня XP-64 | |
29
- 19.05.2016 - 14:56
|
28-serpent > W-2003 и XP - с недавних пор страдают проблемой запросов GET-send - я сам пробовал разбираться с представителями компании контур-фокус - мне пояснили - проблема в настройке безопасности, связанная с сервис-паком. По-видимому, они поменяли у себя подход к системе безопасности, в результате, перестал работать алгоритм GET-send. Мне так и не удалось исправить ОС по их рекомендации с сервис-паком, пришлось установить ОС W-7-64, с которой запросы работают. | |
30
- 20.05.2016 - 13:40
|
(29) вот нашел для себя решение.... боролся долго со скриптом... на всех машинках есть отклик на моей нет(win XP64) возвращал "Error Message: An Error Occurred in the Secure Channel Support " https://support.microsoft.com/en-us/kb/198970 WinServer2003 и XP_SP2 не поддерживают работу по протоколу SHA1,2,... лечится https://blogs.technet.microsoft.com/...2-and-windows/ https://blogs.technet.microsoft.com/...2-and-windows/ | |
31
- 20.05.2016 - 13:41
|
сори вторая ссылка http://superuser.com/questions/80269...-dll-available | |
32
- 20.05.2016 - 13:42
|
проверить, поддерживает ли ваш броузер SHA есть сайт https://ssltest39.ssl.symclab.com/ | |
33
- 20.05.2016 - 18:33
|
32-serpent > - для меня оказалось бесполезно, это как раз сервис-пак 2, но в ОС w2003 или XP, отказывается работать Google Chrome - более не поддерживает эти операционки и вскоре за этим объявлением, эти ОС отказались делать запросы. Другой браузер Mozilla Firefox - сопровождается падением плагина и всё. Потестить в нём совместимость с сайтом контур-фокус ещё можно, но тест показывает несовместимость с системой защиты и тоже - запросам - каюк. В общем - устроили в майкрософте безобразия... Приходится принять, как неизбежное и перейти на w-7, что и сделал. | |
| Интернет-форум Краснодарского края и Краснодара |