| 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, что и сделал. | |
Интернет-форум Краснодарского края и Краснодара |