Ошибка при вызове метода контекста получить соединение получить

   b612

29.07.19 — 18:00

Уважаемые.

Как получить ответ сервера, не записывая его в файл ?

Платформа 8.3.14.1630 толстый клиент, управляемое.

В инструкции написано  <ИмяВыходногоФайла> (НЕОБЯЗАТЕЛЬНЫЙ)

но на деле, если не задать или задать пустую строку, выдаёт ошибку

{ВнешняяОбработка.HTTPЗапросы.Форма.Форма.Форма(20)}: Ошибка при вызове метода контекста (Получить)

        ответик=Соединение.Получить(ТекстДляЗапроса,»»);

по причине:

Неправильный путь к файлу. Схема не зарегистрирована

HTTPСоединение (HTTPConnection)

Получить (Get)

Синтаксис:

Получить(<HTTPЗапрос>, <ИмяВыходногоФайла>)

Параметры:

<HTTPЗапрос> (обязательный)

Тип: HTTPЗапрос.

HTTP-запрос.

<ИмяВыходногоФайла> (необязательный)

Тип: Строка.

Имя файла, в который помещаются данные полученного ресурса. Если не указан или содержит пустую строку, то тело ответа может быть получено из объекта HTTPОтвет.

Возвращаемое значение:

Тип: HTTPОтвет.

   polosov

1 — 29.07.19 — 18:03

(0) Будь мужиком задай имя файла или убери кавычки.

   AllJoke

2 — 29.07.19 — 18:05

ПолучитьТелоКакПоток();

ПолучитьТелоКакСтроку()

   Garykom

3 — 29.07.19 — 18:17

(1) Угу ПолучитьИмяВременногоФайла(«html»)

   Garykom

4 — 29.07.19 — 18:18

В строку не рекомендую, сервер может несколько гигов отдать легко при хорошем канале достаточно шустро.

В поток сразу писать куда то так что один хрен лучше в файл.

   Вафель

5 — 29.07.19 — 18:27

(4) а чем строка от потока (по памяти) будет отличаться?

   Garykom

6 — 29.07.19 — 18:59

(5) А хз как оно в платформе 1С реализовано, но как минимум экономия и времени и памяти ибо символы в строках двухбайтовые в 1С.

   Жан Пердежон

7 — 29.07.19 — 19:08

(0) необязательный, это значит:

Соединение.Получить(ТекстДляЗапроса),

а не как у тебя;

да и первый параметр назван в лучших традициях говнокодинга.

   b612

8 — 29.07.19 — 20:20

в том и дело что сервер будет отдавать по 50 байтов на каждый запрос

   b612

9 — 29.07.19 — 20:22

Жан Пердежон

Соединение.Получить(ТекстДляЗапроса)

не работает

выдаёт ошибку

   PiotrLoginov

10 — 29.07.19 — 20:33

«не работает» — так позволено каким-нибудь юзверям выражаться, но никак не уважающему себя специалисту.

«выдает ошибку» — уже ближе к корректному посту…

   МимохожийОднако

11 — 29.07.19 — 21:33

(9) текст ошибки в студию

   b612

12 — 29.07.19 — 22:32

{ВнешняяОбработка.HTTPЗапросы.Форма.Форма.Форма(20)}: Ошибка при вызове метода контекста (Получить)

        ответик=Соединение.Получить(ТекстДляЗапроса);

по причине:

Неправильный путь к файлу. Схема не зарегистрирована

   trad

13 — 29.07.19 — 22:51

(12) дали же правильный ответ в (2)

   Жан Пердежон

14 — 31.07.19 — 10:39

(12) весь говнокод показывай, с инициализации переменных

   Anton R

15 — 29.12.19 — 00:19

HTTPЗапрос = Новый HTTPЗапрос(ТекстДляЗапроса);

       ответик=Соединение.Получить(HTTPЗапрос);

   Cthulhu

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. Вернуться в раздел «Настройки ЭДО» и нажать на кнопку «Обновить статусы подключения» — статус подключения настройки изменится на «Присоединен».

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста открытьформу внутренняя ошибка
  • Ошибка при вызове метода контекста открытьфайл чтениеxml открытьфайл имяфайла
  • Ошибка при вызове метода контекста открытьфайл xml
  • Ошибка при вызове метода контекста открыть форму
  • Ошибка при вызове метода контекста открыть файл