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

1. Krey_ 18.04.19 08:09 Сейчас в теме
Не работает регламентное задание на сервере, выдает ошибку "Ошибка при вызове метода контекста (Получить)". Когда запускаю модуль в ручную (так-же на сервере, просто через обработку, в обработке только кнопка), то все работает. В файловой регламентное задание работает. Задание рассылает смс сообщения из записанных данных в регистре сведений. Подскажите пожалуйста как решить проблему.
	ИмяФайлаРезультата = ПолучитьИмяВременногоФайла();
	
	РесурсПараметры = РесурсНаСервере+"?"+_Параметры;
	Если СтрДлина(РесурсПараметры) < 2000 Тогда // GET 
		
		Попытка
			Соединение.Получить(РесурсПараметры, ИмяФайлаРезультата);
		    Соединение = Неопределено;                        
		Исключение 
			ИнфоООшибке = ИнформацияОбОшибке().Описание;
			
			ЗаписьЖурналаРегистрации("Ошибка выполнения", 
			УровеньЖурналаРегистрации.Ошибка, , ,
			ТекстСообщения + Символы.ПС + " Не удалось получить соединение GET" + Символы.ПС + ИнфоООшибке);
			Возврат Ложь;
		КонецПопытки;
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
37. spacecraft 19.04.19 09:34 Сейчас в теме
(35) это я понял, что скопировали.
У вас там вообще доступ в интернет через проски сервер или нет?
Подозреваю что нет. Попробуйте убрать прокси из кода вообще.
40. spacecraft 19.04.19 10:11 Сейчас в теме +0.7 $m
(39) я же сказал, убрать Прокси совсем из кода.
67. Krey_ 22.04.19 07:44 Сейчас в теме
Всем большое спасибо за помощь!
В итоге было Удалено значение прокси из создания нового HTTPСоединения.
	Попытка
		Если SMSC_HTTPS = 0 Тогда
			Соединение = Новый HTTPСоединение(Сервер, , , , , Ложь);
		//Иначе
			//Соединение = Новый HTTPСоединение(Сервер, , , , Прокси, 10, Новый ЗащищенноеСоединениеOpenSSL);
		Конецесли;
	Исключение
		ИнфоООшибке = ИнформацияОбОшибке().Описание;
		ЗаписьЖурналаРегистрации("Ошибка выполнения", 
		УровеньЖурналаРегистрации.Ошибка, , ,
		ТекстСообщения + Символы.ПС + "Не удалось создать объект HTTPСоединение" + Символы.ПС + ИнфоООшибке);
		Возврат Ложь;
	КонецПопытки;
Показать
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
15. spacecraft 18.04.19 10:26 Сейчас в теме
(1) не видно как инициализируется переменная Соединение.
То что работает в файловой базе не показатель, там все выполняется в контексте клиента.
16. Krey_ 18.04.19 10:30 Сейчас в теме
(15)
	Попытка
		Если SMSC_HTTPS = 0 Тогда
			Соединение = Новый HTTPСоединение(Сервер, , , , Прокси, Ложь);
		Иначе
			Соединение = Новый HTTPСоединение(Сервер, , , , Прокси, 10, Новый ЗащищенноеСоединениеOpenSSL);
		Конецесли;
17. spacecraft 18.04.19 10:36 Сейчас в теме
(16) смотреть на права пользователя ОС под которым запущен сервер 1С, открыт ему доступ в интернет, прокси указан правильный для работы на сервере.
18. Krey_ 18.04.19 10:37 Сейчас в теме
(17) Это тоже уже запросил, жду ответа
20. platonov.e 158 18.04.19 10:43 Сейчас в теме
(18) так я то что писали в 17, спрашивал же в 2, вы сказали под админом все делается ><
21. Krey_ 18.04.19 10:46 Сейчас в теме
(20)Простите подумал вы про регламентное задание )
22. platonov.e 158 18.04.19 10:47 Сейчас в теме
(21) когда база серверная, все регламентные задания запускает служба, виндовая служба. А виндовая служба запущена от пользователя винды. Вот про этого пользователя я и спрашивал.
23. Krey_ 18.04.19 10:52 Сейчас в теме
(22) Подскажите пожалуйста, какая там галочка должна стоять?
26. platonov.e 158 18.04.19 11:02 Сейчас в теме
24. Krey_ 18.04.19 10:53 Сейчас в теме
(22) он там Администратор пользователей, Полные права, Право администрирования
25. platonov.e 158 18.04.19 11:02 Сейчас в теме
(24) а доступ в интернет то у него есть?
27. Krey_ 18.04.19 11:05 Сейчас в теме
(25)Знал бы я как это посмотреть...
28. platonov.e 158 18.04.19 11:06 Сейчас в теме
29. Krey_ 18.04.19 14:20 Сейчас в теме
(28)Доступ к интернету есть
30. uk09 18.04.19 16:57 Сейчас в теме
(1)

Добрый день!
А, если в регламентной себя ставите, в "имя пользователя" - срабатывает регламентное, согласно расписанию ?
32. user995537 38 19.04.19 08:07 Сейчас в теме
(1)По поводу права доступа в интернет: спрашивали о системной учетной записи от имени которой запускается служба. В файловом варианте создается служба на компьютере где расположена база и запускается от имени пользователя Windows. В серверном варианте насколько я помню служба запускается от имени пользователя USR1CV8 который создается автоматически при установке сервера 1С и используется для запуска службы "Агент сервера 1С:Предприятия 8.3" которая в свою очередь и запускает регламентированные задания 1С на сервере 1С. Для проверки ошибки в 1С добавьте
Исключение
ЗаписьЖурналаРегистрации("Установка соединения",
УровеньЖурналаРегистрации.Информация, , ,
ОписаниеОшибки());
Возврат;
КонецПопытки;
а потом в журнале регистрации просто посмотрите с какой ошибкой вылетает.
Прикрепленные файлы:
34. DrZombi 286 19.04.19 09:24 Сейчас в теме
(1) Все просто, Сервер не имеет доступа к вашему ресурсу.
36. Krey_ 19.04.19 09:27 Сейчас в теме
(34) у пользователя под которым запущен сервер доступ в интернет есть, все сайты доступны
2. platonov.e 158 18.04.19 08:17 Сейчас в теме +0.15 $m
Может у пользователя из под которого запущена служба, нет прав на доступ в интернет или еще чего?
3. Krey_ 18.04.19 08:18 Сейчас в теме
(2)Запущена под админом
4. Krey_ 18.04.19 08:19 Сейчас в теме
(2)Может быть на сервере какие-то порты не открыты? Но это просто предположение.
5. platonov.e 158 18.04.19 08:22 Сейчас в теме
(4) Если бы порты были закрыты, то через обработку тоже бы не работало.
В свойсвте общего модуля стоит галка клиент?
6. Krey_ 18.04.19 08:25 Сейчас в теме
(5) Клиент, внешнее соединение, сервер стоят. Но регламентное задание по дефолту вроде работает на сервере.
7. platonov.e 158 18.04.19 08:27 Сейчас в теме
(6) Попробуйте перенести в модуль, без клиента. А лучше посмотреть в каком точно выполняется регламентное задание и перенести туда его. Ну чисто для проверки что дело не в галки клиент.
8. Krey_ 18.04.19 08:30 Сейчас в теме
(7)
А лучше посмотреть в каком точно выполняется регламентное задание и перенести туда его.

Простите, вот это не очень понял
9. platonov.e 158 18.04.19 08:33 Сейчас в теме
(8) а забудьте, чушь сказал) найдите модуль с сервером и внешним соединением, но без клиента.
10. Oldsad 18.04.19 09:47 Сейчас в теме
из того что дано могу предположить только это
ИмяФайлаРезультата = ПолучитьИмяВременногоФайла();

вручную при запуске оно у вас одно, в регламентном оно другое
но это так, пальцем в небо
11. Krey_ 18.04.19 10:01 Сейчас в теме
(10) Да он всегда вроде с разным именем, да и файловой базе регламентное работает
13. Oldsad 18.04.19 10:22 Сейчас в теме
(11)

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

понятно что временный файл всегда разное имя
я про то что возможно какие то проблемы с этим именем на сервере
14. Krey_ 18.04.19 10:25 Сейчас в теме
(13) сейчас вот проверяю что он там пишет
19. Krey_ 18.04.19 10:42 Сейчас в теме
(13) ну имя вроде нормальное C:\Users\1c_admin\AppData\Local\Temp\v8_5C36_55.tmp
12. platonov.e 158 18.04.19 10:21 Сейчас в теме
31. Krey_ 19.04.19 07:24 Сейчас в теме
Вот такое нашел, подскажите нужен прокси или нет? И если нужен то какое имя пользователя писать? От компьютера или Имя пользователя под которым сервер запускается?
  // соединение с параметрами по умолчанию
Соединение = Новый HTTPСоединение("www.mysite.ru");
 
// сервер использует порт 8080
Соединение = Новый HTTPСоединение("www.mysite.ru", 8080);
 
// сервер использует защищенное соединение (https),
// для подключения к серверу используется прокси
ПроксиСервер = Новый интернетПрокси;
ПроксиСервер.Пользователь = имяПользователя;
ПроксиСервер.Пароль       = парольПользователя;
 
Соединение = Новый HTTPСоединение("www.mysite.ru",,,, ПроксиСервер, Истина);  
Показать
33. spacecraft 19.04.19 09:11 Сейчас в теме
(31) я так понимаю просто скопипастили код?
Прокси и имя пользователи и пароль от прокси сервера, через который осуществляется доступ в интернет. А он вообще есть и требует доступ по паролю?
37. spacecraft 19.04.19 09:34 Сейчас в теме
(35) это я понял, что скопировали.
У вас там вообще доступ в интернет через проски сервер или нет?
Подозреваю что нет. Попробуйте убрать прокси из кода вообще.
38. Krey_ 19.04.19 10:08 Сейчас в теме
(37) наоборот добавил, думал поможет, не помогло
39. Krey_ 19.04.19 10:10 Сейчас в теме
(37) Сейчас у меня так:
Прокси = Неопределено;
	Попытка
		Если SMSC_HTTPS = 0 Тогда
			Соединение = Новый HTTPСоединение(Сервер, , , , Прокси, Ложь);
		Иначе
			Соединение = Новый HTTPСоединение(Сервер, , , , Прокси, 10, Новый ЗащищенноеСоединениеOpenSSL);
		Конецесли;
	Исключение
Показать
40. spacecraft 19.04.19 10:11 Сейчас в теме +0.7 $m
(39) я же сказал, убрать Прокси совсем из кода.
41. Krey_ 19.04.19 10:20 Сейчас в теме
(40)
Прикрепленные файлы:
42. spacecraft 19.04.19 10:26 Сейчас в теме
43. Krey_ 19.04.19 10:28 Сейчас в теме
(42)Ошибка при вызове метода контекста (Получить)
но возникает это тут:
	Если СтрДлина(РесурсПараметры) < 2000 Тогда // GET 
		
		Попытка
			Соединение.Получить(РесурсПараметры, ИмяФайлаРезультата);
		    Соединение = Неопределено;                                 //При переходе на эту строку происходит отправка	
		Исключение 
			ИнфоООшибке = ИнформацияОбОшибке().Описание;
			
			ЗаписьЖурналаРегистрации("Ошибка выполнения", 
			УровеньЖурналаРегистрации.Ошибка, , ,
			ТекстСообщения + Символы.ПС + " Не удалось получить соединение GET" + Символы.ПС + ИнфоООшибке + Символы.ПС + РесурсПараметры + Символы.ПС + ИмяФайлаРезультата);
			Возврат Ложь;
		КонецПопытки;
Показать
45. spacecraft 19.04.19 10:30 Сейчас в теме
(43) полный текст ошибки. Там после "Ошибка при вызове метода контекста (Получить) " еще должна быть причина.
56. spacecraft 19.04.19 13:02 Сейчас в теме
(43) Помимо ИнформацияОбОшибке().Описание, есть еще ИнформацияОбОшибке().Причина.
Вот ее бы хорошо увидеть.
59. Krey_ 19.04.19 13:09 Сейчас в теме
(56) ее только вечером смогу посмотреть
44. Krey_ 19.04.19 10:30 Сейчас в теме
(42)Только на сервере и только при работе регламентного задания
46. vse-puchcom 19.04.19 11:10 Сейчас в теме
я конечно фигню сказать могу но я понял так
что когда в ручную запускаете все ровно работает?
а когда задание регламента нет?
значит скорее всего надо выставить пользователя от которого будет выполняться данная задача по крайней мере у меня было так
48. Krey_ 19.04.19 11:25 Сейчас в теме
(46) когда запускаем процедуру в ручную то все обрабатывается, а регламентное задание не работает
пользователя под которым выполняется регламентное задание менял
49. user995537 38 19.04.19 11:51 Сейчас в теме
(48)А что в журнале регистрации?
ЗаписьЖурналаРегистрации("Ошибка выполнения",
УровеньЖурналаРегистрации.Ошибка, , ,
ТекстСообщения + Символы.ПС + " Не удалось получить соединение GET" + Символы.ПС + ИнфоООшибке + Символы.ПС + РесурсПараметры + Символы.ПС + ИмяФайлаРезультата);
Какую ошибку здесь пишет? И где вы меняли пользователя? Я выше писал:
"служба запускается от имени пользователя USR1CV8 который создается автоматически при установке сервера 1С и используется для запуска службы "Агент сервера 1С:Предприятия 8.3" которая в свою очередь и запускает регламентированные задания 1С на сервере 1С". Если ошибка установки соединения, то нужно добавить прав на сервере пользователю от имени которого запускается служба "Агент сервера 1С:Предприятия 8.3" и перезагрузить сервер.
50. Krey_ 19.04.19 12:07 Сейчас в теме
(49) Менял пользователя примерно как в 47, в службе "Агент сервера 1С:Предприятия 8.3" прописан прописан пользователь у которого доступ к интернету есть, сайты не заблокированы
ИнфоООшибке = Ошибка при вызове метода контекста (Получить)
РесурсПараметры = /sys/send.php?login=%00%69%00%63%00%40%04%43%04%34%04%3E%04%32%04%30%04%3D­%04%38%04%35%00%20%04%33%04%3E%04%42%04%3E%04%32%04%3E%00%20­%04%3A%00%20%04%32%04%4B%04%34%04%30%04%47%04%35%00%2E%00%20­%04%1A%04%32%04%38%04%42%04%30%04%3D%04%46%04%38%04 ...........
ИмяФайлаРезультата = C:\Users\1c_admin\AppData\Local\Temp\v8_5C36_55.tmp
51. user995537 38 19.04.19 12:21 Сейчас в теме
(50)А у пользователя от которого запускается сервер 1С есть доступ к папке
C:\Users\1c_admin\AppData\Local\Temp\
?
52. vse-puchcom 19.04.19 12:23 Сейчас в теме
(51) там скорее всего веб сервер файловый
и скорее всего к темпу допушен пользователь из сети (забыл уже как он называеться)
53. user995537 38 19.04.19 12:36 Сейчас в теме
(52) Учитывая что - "ИнфоООшибке = Ошибка при вызове метода контекста (Получить)". Ошибка не в том что метод не найден и не указано что ошибка параметра 1 или 2 - на ошибки формата параметров метода платформа по идее должна проверять до выполнения метода. Значит ошибка возникает в процессе выполнения метода. Параметров всего два: 1 строка GET запроса - если ошибка не в ней и пользователь windows имеет право на отправку GET запроса, тогда ошибка возникает при получении ответа от сервера, ответ будет записан в файл указанный во втором параметре.
54. Krey_ 19.04.19 12:47 Сейчас в теме
(53)сейчас пытаюсь подключиться к этому пользователю
55. user995537 38 19.04.19 12:54 Сейчас в теме
(54)Если сайт Ваш, попросите того кто занимается сайтом, чтобы посмотрел: приходит ли GET запрос и что сайт отправляет в ответ. Можно ещё в качестве второго параметра указать статический путь к существующему файлу в папке к которой открыть доступ всем.
57. user995537 38 19.04.19 13:02 Сейчас в теме +0.15 $m
(54) Не нужно подключаться, если знаете пароль этого пользователя, найдите ярлычок блокнота notepad.exe зажмите клавишу shift и нажмите правую кнопку мышки выберите "Запустить от имени другого пользователя" введите логин и пароль пользователя, нажмите файл - открыть и в проводнике диалога открытия файла Вы сможете проверить какие каталоги и с какими правами доступны этому пользователю. Конечно всё это нужно проделывать на том сервере на котором выполняется серверный код 1С.
60. Krey_ 19.04.19 13:10 Сейчас в теме
(57) восстанавливаю пароль
61. Krey_ 19.04.19 13:20 Сейчас в теме
(57)
C:\Users\1c_admin\AppData\Local\Temp\

Доступ к папке есть, файлы создаются
62. user995537 38 19.04.19 13:25 Сейчас в теме
(61) Нужно посмотреть ИнформацияОбОшибке().Причина и "Если сайт Ваш, попросите того кто занимается сайтом, чтобы посмотрел: приходит ли GET запрос и что сайт отправляет в ответ"
63. Krey_ 19.04.19 13:27 Сейчас в теме
(62)Сайт не наш, ИнформацияОбОшибке().Причина смогу посмотреть только вечером.
66. sashocq 193 19.04.19 22:17 Сейчас в теме
(63) Для полноты представления ошибки используйте ПодробноеПредставлениеОшибки(Ошибка). Тогда вы увидите весь стек ошибок и не нужно гадать.
58. user995537 38 19.04.19 13:05 Сейчас в теме
(54)И кстати как писал spacecraft если можно посмотреть параметр информации об ошибке "ИнформацияОбОшибке().Причина"
47. vse-puchcom 19.04.19 11:13 Сейчас в теме
вот
Прикрепленные файлы:
64. Ditron 184 19.04.19 17:16 Сейчас в теме
Смотрите права пользователя под которым сервер крутится, ИмяФайлаРезультата содержит путь к временному файлу (на сервере!), скорее всего к нему нет доступа на запись, или эта переменная вообще пустая (потому что не хватило прав на его получение), а вообще уже пора заканчивать грузить диск сервера, а использовать методы HTTPОтвет-а ПолучитьТелоКакСтроку или ПолучитьТелоКакДвоичныеДанные )
65. Ditron 184 19.04.19 17:21 Сейчас в теме
А и стоп!
HTTPСоединение (HTTPConnection)
Получить (Get)
Синтаксис:

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

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

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

HTTP-запрос.
<ИмяВыходногоФайла> (необязательный)

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

Тип: HTTPОтвет.

Описание:

Получает данные с HTTP-сервера, используя GET-запрос.

Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
67. Krey_ 22.04.19 07:44 Сейчас в теме
Всем большое спасибо за помощь!
В итоге было Удалено значение прокси из создания нового HTTPСоединения.
	Попытка
		Если SMSC_HTTPS = 0 Тогда
			Соединение = Новый HTTPСоединение(Сервер, , , , , Ложь);
		//Иначе
			//Соединение = Новый HTTPСоединение(Сервер, , , , Прокси, 10, Новый ЗащищенноеСоединениеOpenSSL);
		Конецесли;
	Исключение
		ИнфоООшибке = ИнформацияОбОшибке().Описание;
		ЗаписьЖурналаРегистрации("Ошибка выполнения", 
		УровеньЖурналаРегистрации.Ошибка, , ,
		ТекстСообщения + Символы.ПС + "Не удалось создать объект HTTPСоединение" + Символы.ПС + ИнфоООшибке);
		Возврат Ложь;
	КонецПопытки;
Показать
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)