Имя: Пароль:
1C
1С v8
Из 1С можно нативно по https xml-запрос заслать?
0 fisher
 
18.06.12
12:26
Никаких родных обёрточек нету?
Надо MSXML2.XMLHTTP юзать?
1 pumbaEO
 
18.06.12
12:28
Надо MSXML2.XMLHTTP юзать
2 fisher
 
18.06.12
12:40
Вспомнил, что в голове крутилось! HTTPСоединение!
Через него не получится отправить xml-запрос и получить xml-результат?
Оно типа для работы с файлами...
Звиняйте, ежели чо. Я в интернетах не спец.
3 pumbaEO
 
18.06.12
12:49
еще раз тебе надо XML-RPC или же просто в теле http запроса отправить xml?
т.к. в теме используются такие страшные для 1С как https, а не http я бы советовал сразу использовать MSXML2.XMLHTTP, если просто http, тогда можно и HTTPСоединение
4 fisher
 
18.06.12
13:17
Я х.з. как это называется, но мне просто надо запостить урл вполне конкретного вида (руками собранный) в ответ на который вернется xml-ответ. Причем видел примеры работы с этим сервисом через MSXML2.XMLHTTP. Там тупо через send засылается урл и читается responseXML. Просто думал, что может можно более нативно сделать в 1С. Вроде HTTPСоединение умеет с https работать...
5 oleg_km
 
18.06.12
13:56
(4) Попробуй, разрешаем
6 pumbaEO
 
18.06.12
13:58
(4) только когда будет самоподписанный сертификат на сайт, не говори, что не предупреждали. (на забудь сохранить сертификат в папку с 1С и т.д. и тогда поймешь, что MSXML2.XMLHTTP возможно не зря рекомендуют для https)
7 fisher
 
18.06.12
14:52
Понял. Спс.
8 oleg_km
 
18.06.12
16:44
(6) наверное, в базу знаний неплохо бы статью, хотя их походу никто не читает
9 pumbaEO
 
18.06.12
16:53
(8) даже по форуму поиска не делают... http://www.google.ru/search?as_sitesearch=forum.mista.ru&q=https
10 fisher
 
19.06.12
18:11
Подниму тему.
Стучусь через MSXML2.XMLHTTP к одному ресурсу по https.
Метод send вызывает исключение с кодом 2146697208 (Ошибка загрузки указанного ресурса). Туже самую фигню выдает если обращаться не через 1С, а из JScript (т.е. 1С тут точно не причем).
Фишка в том, как я понимаю, что используется самоподписанный сертификат. Через интернет-экплорер добавил этот сертификат в списки доверенных корневых и промежуточных центров сертификации.
Т.е. обращение по тому же самому урлу напрямую в любом браузере - без вопросов возвращает нужный результат. А через MSXML2.XMLHTTP исключение валит :(
Может, кто сталкивался? Куда еще его нужно прописать, чтобы MSXML2.XMLHTTP не ругался?
11 pumbaEO
 
19.06.12
18:21
12 fisher
 
19.06.12
18:24
stunnel - это запасной вариант
Хочется без костылей...
13 pumbaEO
 
19.06.12
18:35
14 mistеr
 
19.06.12
18:44
(10) А из JScript?
И что у него в свойствах на закладке Путь сертификации?
15 fisher
 
20.06.12
11:40
(14) Я ж сказал - из JScript то же самое исключение. На закладке "Путь сертификации" в качестве пути прописан сайт, куда я стучусь и состояние сертификата "Сертификат действителен".
16 fisher
 
20.06.12
11:45
(13) Явное подсовывание файла сертификата - это тоже костыль. Если по-другому никак, тогда уже через stunnel сделаю. С двух сайтов уже через него забираю, просто в этот раз хотел более человечно сделать. Да, видать, не судьба...
17 mistеr
 
20.06.12
14:08
(16) более человечно это средствами 1С.
18 fisher
 
21.06.12
17:44
По итогам (может, кому-то пригодится):
Кроме MSXML2.XMLHTTP пробовал еще подключение через WinHttp.WinHttpRequest
Там более осмысленное исключение выдавало "A certificate is required to complete client authentification".
По нему нагуглил похожую ситуацию вроде как с решением: http://social.msdn.microsoft.com/Forums/en/netfxjscript/thread/d2562bc2-79bb-49c3-8b04-e052ce6b3733
Но к тому времени уже задолбались, да и приватного ключа под рукой не было.
Поэтому таки через stunnel пробросили :)
19 oleg_km
 
22.06.12
09:01
(18) А для stunnel не нуже что ли приватный ключ? С клиентской аутентификацией сертификатом с закрытым ключем WinHttp.WinHttpRequest как раз на ура работает. И не нужно никаких stunnel. Сертификат только установить под нужным пользователем
20 fisher
 
22.06.12
10:53
(19) Не нужен. Их два поднято - один в той локалке, другой в этой (шифруются уже своими сертификатами). Зато стучусь напрямую к базе.
Я ж сказал, что нагуглил решение. Кто бы мне еще объяснил, нафига для этого закрытый ключ нужен...
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший