29.07.19 — 18:00
Уважаемые.
Как получить ответ сервера, не записывая его в файл ?
Платформа 8.3.14.1630 толстый клиент, управляемое.
В инструкции написано <ИмяВыходногоФайла> (НЕОБЯЗАТЕЛЬНЫЙ)
но на деле, если не задать или задать пустую строку, выдаёт ошибку
{ВнешняяОбработка.HTTPЗапросы.Форма.Форма.Форма(20)}: Ошибка при вызове метода контекста (Получить)
ответик=Соединение.Получить(ТекстДляЗапроса,»»);
по причине:
Неправильный путь к файлу. Схема не зарегистрирована
HTTPСоединение (HTTPConnection)
Получить (Get)
Синтаксис:
Получить(<HTTPЗапрос>, <ИмяВыходногоФайла>)
Параметры:
<HTTPЗапрос> (обязательный)
Тип: HTTPЗапрос.
HTTP-запрос.
<ИмяВыходногоФайла> (необязательный)
Тип: Строка.
Имя файла, в который помещаются данные полученного ресурса. Если не указан или содержит пустую строку, то тело ответа может быть получено из объекта HTTPОтвет.
Возвращаемое значение:
Тип: HTTPОтвет.
1 — 29.07.19 — 18:03
(0) Будь мужиком задай имя файла или убери кавычки.
2 — 29.07.19 — 18:05
ПолучитьТелоКакПоток();
ПолучитьТелоКакСтроку()
3 — 29.07.19 — 18:17
(1) Угу ПолучитьИмяВременногоФайла(«html»)
4 — 29.07.19 — 18:18
В строку не рекомендую, сервер может несколько гигов отдать легко при хорошем канале достаточно шустро.
В поток сразу писать куда то так что один хрен лучше в файл.
5 — 29.07.19 — 18:27
(4) а чем строка от потока (по памяти) будет отличаться?
6 — 29.07.19 — 18:59
(5) А хз как оно в платформе 1С реализовано, но как минимум экономия и времени и памяти ибо символы в строках двухбайтовые в 1С.
7 — 29.07.19 — 19:08
(0) необязательный, это значит:
Соединение.Получить(ТекстДляЗапроса),
а не как у тебя;
да и первый параметр назван в лучших традициях говнокодинга.
8 — 29.07.19 — 20:20
в том и дело что сервер будет отдавать по 50 байтов на каждый запрос
9 — 29.07.19 — 20:22
Жан Пердежон
Соединение.Получить(ТекстДляЗапроса)
не работает
выдаёт ошибку
10 — 29.07.19 — 20:33
«не работает» — так позволено каким-нибудь юзверям выражаться, но никак не уважающему себя специалисту.
«выдает ошибку» — уже ближе к корректному посту…
11 — 29.07.19 — 21:33
(9) текст ошибки в студию
12 — 29.07.19 — 22:32
{ВнешняяОбработка.HTTPЗапросы.Форма.Форма.Форма(20)}: Ошибка при вызове метода контекста (Получить)
ответик=Соединение.Получить(ТекстДляЗапроса);
по причине:
Неправильный путь к файлу. Схема не зарегистрирована
13 — 29.07.19 — 22:51
(12) дали же правильный ответ в (2)
14 — 31.07.19 — 10:39
(12) весь говнокод показывай, с инициализации переменных
15 — 29.12.19 — 00:19
HTTPЗапрос = Новый HTTPЗапрос(ТекстДляЗапроса);
ответик=Соединение.Получить(HTTPЗапрос);
16 — 29.12.19 — 12:14
(12): а полностью текст ошибки прочитать — религия мешает?
«с_х_е_м_а _н_е_ з_а_р_е_г_и_с_т_р_и_р_о_в_а_н_а»
(а потом посмотреть в настройки и подумать — чо и где не так)
Anton R
17 — 30.12.19 — 01:46
(15) Поясняю свой ответ, в документации этого нет:
Если в метод «Получить» объекта «HTTP соединение» первым параметром передается строка, то требуется второй параметр, иначе получишь ошибку из сабжа.
Если первым параметром передается объект типа «HTTPЗапрос» — второй параметр не обязателен.
Поэтому вместо «ответик=Соединение.Получить(ТекстДляЗапроса,»»); » как в сабже, достаточно написать:
HTTPЗапрос = Новый HTTPЗапрос(ТекстДляЗапроса);
ответик=Соединение.Получить(HTTPЗапрос);
Хм. И правда для обработки загрузки товаров нет поддержки https.
В следующей версии поддержка будет.
Вы же можете доработать модуль обмена.
В обработке импорта товаров с сайта(модуле объекта) есть функция «ПолучитьСоединениеССервером», нужно заменить код этой функции на:
Соединение = НеОпределено;
Попытка
СисИнфо = Новый СистемнаяИнформация;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СисИнфо.ВерсияПриложения, «8.3.3.721») < 0 тогда
Выполнить(«Соединение = Новый HTTPСоединение(ПараметрыПодключения.Сервер, ПараметрыПодключения.Порт, ПараметрыПодключения.Пользователь, ПараметрыПодключения.Пароль, ПараметрыПодключения.Прокси, ПараметрыПодключения.ЗащищенноеСоединение)»);
Иначе
Выполнить(«Если НЕ ПараметрыПодключения.ЗащищенноеСоединение тогда
| ssl = Неопределено;
|Иначе
|
| ssl = Новый ЗащищенноеСоединениеOpenSSL(
| Неопределено,
| Неопределено);
|КонецЕсли;
|Соединение = Новый HTTPСоединение(ПараметрыПодключения.Сервер, ПараметрыПодключения.Порт, ПараметрыПодключения.Пользователь, ПараметрыПодключения.Пароль, ПараметрыПодключения.Прокси, ,ssl)»);
КонецЕсли;
Исключение
ДобавитьОписаниеОшибки(ОписаниеОшибки,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр(«ru = ‘Не удалось установить соединение с сервером %1:%2. Проверьте правильность адреса сервера, порт, имя пользователя и пароль.'»),
ПараметрыПодключения.Сервер,
ПараметрыПодключения.Порт));
Соединение = Неопределено;
КонецПопытки;
Возврат Соединение;
Захожу в 1с, выдает ошибку:
{ОбщийМодуль.Доработки.Модуль(57)}: Ошибка при вызове метода контекста (Получить): Ошибка работы с Интернет: Couldn’t resolve host name
Загрузка 27.09.2016 13:38:57
1c ghtlghbznbt 8.2, 8.3
Windows Server 2012
-
Вопрос заданболее трёх лет назад
-
6640 просмотров
Пригласить эксперта
Добрый день.
DNS-сервер , который указан в настройках сетевого подключения, не может найти адрес на который обращается Ваша обработка.
Посмотрите куда и откуда конкретно обращается обработка. Обращение может идти как от сервера 1С, так и от клиента 1С.
откройте конфигуратор запустите отладчик(ctrl + F5) или просто F5(под пивом не помню точно) и запустите ту вещь после которой возникает ошибка. Далее должно появится окошко с выбором «завершить работу» «Перезапустить» «Конфигуратор». Выбиратете конфигуратор, он в свою очередь кинет на место возникновения ошибки. Далее смотрите что за адрес указан в коде и пробуете его пропинговать.
-
Показать ещё
Загружается…
14 июн. 2023, в 01:02
5000 руб./за проект
13 июн. 2023, в 23:37
1000 руб./в час
13 июн. 2023, в 23:22
15000 руб./за проект
Минуточку внимания
0
— 27.10.2011 — 12:14
есть ссылка
https://agents.vladavia.ru/oneNet/Ne…110826.XML.xls
при открытии ее в браузере, появляется окно для ввода логина/пароля, после ввода которых файл успешно скачивается.
пишу:
Попытка
HTTP = Новый HTTPСоединение(«https://agents.vladavia.ru»,,Логин,Пароль,,Истина);
HTTP.Получить(«/oneNet/NetStorage/Home@VLADAIR/Ticket%20Reports/TKT_XF_20110826.XML.xls»,»C:temp.xls»);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
выдается ошибка:
Ошибка при вызове метода контекста (Получить): Ошибка работы с Интернет: Couldn’t resolve host name
что я делаю не так?
1
— 27.10.2011 — 12:45
сделал так:
HTTP = Новый HTTPСоединение(«agents.vladavia.ru»,,Логин,Пароль, ,Истина);
HTTP.Получить(«/oneNet/NetStorage/Home@VLADAIR/Ticket%20Reports/TKT_XF_20110826.XML.xls»,»C:temp.xls»);
теперь ошибка следующая:
Peer certificate cannot be authenticated with known CA certificates
2
— 27.10.2011 — 12:48
хм… вот, похоже, решение:
http://infostart.ru:8080/public/79494/
3
— 27.10.2011 — 12:51
С кодировкой логина/пароля не игрался?
4
— 27.10.2011 — 13:12
4-VZ > нет, но там действительно с сертификатом проблемы (недействителен)
ЗЫ. решение из (3) не помогло (((
5
— 27.10.2011 — 13:26
5-Uho > Читаю сабж внимательно: «при открытии ее в браузере, появляется окно для ввода логина/пароля, после ввода которых файл успешно скачивается«. Про сертификат — ни слова. Скачивается, собак такой.
Вот и подумал: а чегой-то при установке через 1С пароль/логин не хавается? Сервер же не знает способа подачи этих самых логина/пароля…
Нет?
6
— 27.10.2011 — 13:45
6-VZ > зы, я забыл, что IE при первом открытии ругнулся на сертификат, но пропустил.
А когда я дошел таки до (2) — вспомнилось и про сертификат
7
— 27.10.2011 — 13:58
7-Uho > Понял. Значит, не кодировка.
8
— 27.10.2011 — 14:05
похоже ошибочный сертификат не обойти (((
9
— 27.10.2011 — 14:28
9-Uho > Рецепт, что в комментарии по ссыле в (3), пробовал?
10
— 27.10.2011 — 14:41
10-VZ > попробовал, но видимо, все это работает только для действительных сертификатов (что в принципе логично)
11
— 27.10.2011 — 16:28
а если отказаться от HTTPСоединение, каким способом посоветуете получать программно файлы?
12
— 27.10.2011 — 17:02
XMLHttpRequest
но вот поможет ли? 1це, скорее всего, его и использует…
13
— 27.10.2011 — 17:05
По ссылке в (3)предлагается добавить в файл cacert.pem сертификат сайта. Как добавлял? Недавно с похожей задачкой столкнулся. Только для получения файла *.csv
14
— 27.10.2011 — 17:13
13-roma n > покопаю в эту сторону
14-МимохожийОднако > именно так, как там написано, поэтому склоняюсь к (11)
15
— 27.10.2011 — 17:51
(15)Я получил сертификат. А вот как вставить в файл. Просто копированием? У меня тоже не получилось. Отпишись, если получится по (13)
16
— 28.10.2011 — 09:43
16-МимохожийОднако > да, просто копированием
следующая команда команда экспортирует сертификат в текстовый формат PEM:
openssl x509 -inform der -in D:mycert.cer -out D:textcert.pem -text -fingerprint -md5
Само собой, Вы должны изменить пути входящего и исходящего файла. Исходящий файл может не существовать. После выполнения команды на экране Вы увидите MD5 Fingerprint. Скопируйте его — с этой строки начинайте добавление своего сертификата в файл cacert.pem
17
— 28.10.2011 — 09:59
16-МимохожийОднако >
вот так работает, но ругается на сертификат, сволочь (выдает пару предупреждений)
x = Новый ComОбъект(«Microsoft.XMLHTTP»);
x.Open(«GET», «https://agents.vladavia.ru/oneNet/NetStorage/Home@VLADAIR/Ticket%20Reports/TKT_XF_20110826.XML.xls»,0,логин,пароль);
x.Send();
s = Новый ComОбъект(«ADODB.Stream»);
s.Mode = 3;
s.Type = 1;
s.Open();
s.Write(x.responseBody);
s.SaveToFile(«C:temp.xls», 2);
18
— 28.10.2011 — 12:25
какие еще есть варианты?
19
— 28.10.2011 — 13:23
установить сертификат
certutil.exe -f -installCert xxx.cer
20
— 28.10.2011 — 13:28
20-Гинзбург > а откуда его взять?
21
— 28.10.2011 — 13:30
——BEGIN CERTIFICATE——
MIIFKjCCBBKgAwIBAgIiAhwFYuVdQTrvi/CC9qy+UAprLoxDoVDLGfy1fG11AgIB
FjANBgkqhkiG9w0BAQUFADAuMRAwDgYDVQQKEwd2bGFkYWlyMR owGAYDVQQLExFP
cmdhbml6YXRpb25hbCBDQTAeFw0xMDAxMzEyMjE1NDFaFw0xMj AxMzEyMjE1NDFa
MCwxEDAOBgNVBAoTB1ZMQURBSVIxGDAWBgNVBAMTD29lcy52bG FkYXZpYS5ydTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL7/qs+r7ntYcs0vSB9if+Uo
molfFZs1SCT9VeeuirZ0GWnl51XJbpdtXdPC3fLzTp8Pk8xsQ7 PrgjEvqNdmCmBd
Ry4yOnf8c1uWI+qHuOuIK/+LhC9bD0S3CBnrrrAulLAOtaW1Cvg36WkYk+sTIc7F
h+hkfU10OGBpQEXjf/gT0y+PdX+RtZ5komrgmROm519apiS3JrpdpcTB3MQj4v7r
0sZkHNUEggeByvJSnzTuakGjXSEHO+8rH1LBNFO4wJ/8x2YE4IU7Wcc1fBg70KBf
DDF4zfuJyCYM2PbupTxTZR2FlsgGUuVs0i7dfMg3+XIXpY6wAc WwMyyvyE5eeSUC
AwEAAaOCAjIwggIuMB0GA1UdDgQWBBS6JBml4KdJTvLo5cNnX3 MYPXyZcDAfBgNV
HSMEGDAWgBS0lMq+oKYKlfNq9vmjYEuKwQNKmjALBgNVHQ8EBA MCBaAwDwYDVR0R
BAgwBocEwKjg0zCCAcwGC2CGSAGG+DcBCQQBBIIBuzCCAbcEAg EAAQH/Ex1Ob3Zl
bGwgU2VjdXJpdHkgQXR0cmlidXRlKHRtKRZDaHR0cDovL2Rldm Vsb3Blci5ub3Zl
bGwuY29tL3JlcG9zaXRvcnkvYXR0cmlidXRlcy9jZXJ0YXR0cn NfdjEwLmh0bTCC
AUigGgEBADAIMAYCAQECAUYwCDAGAgEBAgEKAgFpoRoBAQAwCD AGAgEBAgFGMAgw
BgIBAQIBCgIBaaIGAgEXAQH/o4IBBKBYAgECAgIA/wIBAAMNAIAAAAAAAAAAAAAA
AAMJAIAAAAAAAAAAMBgwEAIBAAIIf/////////8BAQACBAbw30gwGDAQAgEAAgh/
/////////wEBAAIEBvDfSKFYAgECAgIA/wIBAAMNAEAAAAAAAAAAAAAAAAMJAEAA
AAAAAAAAMBgwEAIBAAIIf/////////8BAQACBAVi5V0wGDAQAgEAAgh/////////
/wEBAAIEBWLlXaJOMEwCAQICAQACAgD/Aw0AgAAAAAAAAAAAAAAAAwkAgAAAAAAA
AAAwEjAQAgEAAgh//////////wEBADASMBACAQACCH//////////AQEAMA0GCSqG
SIb3DQEBBQUAA4IBAQB3gv1IQv4l4sPHckSBfLZJFnbbZsf4EM zp/TqgC3vKuAZj
jczSXEzzSWyOVmQWYRuj94tEPEOeb1OvIRI10oRr2+Q4DZGAEd 7e+DI4xvJ9qElU
ANVGQO1S06UmLk+bUfsMCOQYrfULWLDRwxzFkCvFTQg/fSSoNgOTIsEsBbnjJGF+
10xiLthgu9litMC926abR++9VKMAI4tEyzuhOUuddEBG0cUGgD 4Y7a/JSpCApssX
qPtpaa4n53QsyyUORZzNVpv8y4Sdcdubi8qtJ/lqUdMBIWSQGwrwhcuWFwt3z0lb
FC4lbFvYpzebC+/ZfCYCzOMSQiBr9t6n5sO/YWxj
——END CERTIFICATE——
22
— 28.10.2011 — 13:33
убить пробелы между ——
23
— 28.10.2011 — 13:34
22-Гинзбург > так и что? установил, он от этого действительным то не стал? ИЕ все равно ругается ((
24
— 28.10.2011 — 13:35
он действителен
25
— 28.10.2011 — 14:14
т.е. эта утилита работает не как стандартный установщик сертификатов?
26
— 28.10.2011 — 14:27
+26 нашел, скачал, что-то она у меня не хочет работать —
пишет «не удается найти указанный файл» (путь к файлу указываю)
27
— 28.10.2011 — 22:00
«не удается найти указанный файл» — отнесись серьезно. Это не браузер сообщает. И не утилита проверки или установки сертификата. Это винда. Та ее часть, что для всех утил ищет файл.
28
— 01.11.2011 — 17:43
28-VZ > не, ну как еще?
29
— 01.11.2011 — 20:55
Чтож не попробовать очевидное:
certutil.exe -f -installCert C:Tempmysert.cer
?
30
— 01.11.2011 — 21:03
+30 И использовать папку Temp как-то стрёмно для «черного ящика» — а ну как он использует эту папку в своих служебных целях?…
Другое дело, сам скрипт пишешь, или алгоритм известен (так «восьмерка», например, использует временный каталог, для разворота и открытия внешних обработок из хранилища)
31
— 02.11.2011 — 09:25
30-VZ > такая же фигня
31-VZ > пробовал в корень С: положить
32
— 13.05.2012 — 23:25
Получилось решить проблему?
33
— 15.05.2012 — 09:37
32-DeMi4 > задача отпала)))
Ошибка работы с Интернет: внутренняя ошибка сервера (500)
Дата обновления: 28.06.2022
Ошибка возникает как при попытке отправить приглашение контрагенту, так и при попытке принять его от контрагента.
Полный текст ошибки:
Выполнение операции: Получение ЭД.
{ОбщийМодуль.ОбменСКонтрагентамиВнутренний.Модуль(3262)}: Ошибка при вызове метода контекста (Получить)
Соединение.Получить(АдресРесурса, ИмяФайлаРезультата, Заголовки);
по причине:
Ошибка при выполнении файловой операции ‘AcceptContact?id=2AED83AF80B-87F3-4A2C-950D-E7CCE2B6CE34’
по причине:
Ошибка работы с Интернет: внутренняя ошибка сервера (500). {
«Details»: «Неизвестная ошибка»,
«AdditionalData»: «Неизвестная ошибка»,
«ApiErrorCode»: 0,
«CommonDescription»: «Неизвестная ошибка сервиса. Попробуйте позже или обратитесь в службу поддержки»,
«StatusCode»: 500
}
по причине:
Ошибка работы с Интернет: внутренняя ошибка сервера (500)
Для решения проблемы необходимо:
1. В разделе «Настройки ЭДО» пометить настройку на удаление.
2. Зайти в Профиль настроек ЭДО (для 1С 8.3 Администрирование — Обмен электронными документами — Обмен с контрагентами — Профили настроек ЭДО — открыть «Профиль» — Ещё — Начальная дата запроса данных у оператора; для 1С 8.2 Сервис — Обмен электронными документами — Профили настроек ЭДО — открыть «Профиль» — Все действия — Начальная дата запроса данных у оператора) и очистить поле для даты запроса данных по приглашениям, см. Рис 1.
Рис. 1
3. Вернуться в раздел «Настройки ЭДО» и нажать на кнопку «Обновить статусы подключения» — статус подключения настройки изменится на «Присоединен».