1c 8.3 обмен с сайтом

1. ceber 19.12.17 18:17 Сейчас в теме
Всем привет. Скажите как можно удержать соидинение чтоб 1с невылитала по таймауту .
При обмене долго нет ответа как можно заставить 1с ждать ответ от сайта. Код кидию.

WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
	WinHttp.Option(2,"utf-8");
АдрессОтправки = "http://" + Компания.ДоменПриложенияИмпорта + "/" + Компания.АдресПриложенияДляОбмена;

Если ЗначениеЗаполнено(ИД_Шаблона_) Тогда
		АдрессОтправки = АдрессОтправки + "&RQ=" + ИД_Шаблона_;	// Для работы с реквизитами шаблонов
	КонецЕсли; 
	//*******
	
	Если ГруппаИнформации = ПредопределенноеЗначение("Перечисление.ГруппаИнформации.Компании") Тогда 
		WinHttp.Open("POST", АдрессОтправки+"&addItem=1&type=company", 0);
	ИначеЕсли ГруппаИнформации = ПредопределенноеЗначение("Перечисление.ГруппаИнформации.Контакты") Тогда 
		WinHttp.Open("POST", АдрессОтправки+"&addItem=1&type=contact", 0);
	ИначеЕсли ГруппаИнформации = ПредопределенноеЗначение("Перечисление.ГруппаИнформации.Сделки") Тогда 
		WinHttp.Open("POST", АдрессОтправки+"&addItem=1&type=deal", 0);
	ИначеЕсли ГруппаИнформации = ПредопределенноеЗначение("Перечисление.ГруппаИнформации.Лиды") Тогда 
		WinHttp.Open("POST", АдрессОтправки+"&addItem=1&type=lead", 0);	
	ИначеЕсли ГруппаИнформации = ПредопределенноеЗначение("Перечисление.ГруппаИнформации.Товары") Тогда 
		WinHttp.Open("POST", АдрессОтправки+"&addProduct=1", 0);	
	ИначеЕсли ГруппаИнформации = ПредопределенноеЗначение("Перечисление.ГруппаИнформации.ГруппыТоваровСоздать") Тогда 
		WinHttp.Open("POST", АдрессОтправки+"&addCategory=1", 0);
	ИначеЕсли ГруппаИнформации = ПредопределенноеЗначение("Перечисление.ГруппаИнформации.ГруппыТоваровСортировать") Тогда 
		WinHttp.Open("POST", АдрессОтправки+"&sortCategory=1", 0);	
	КонецЕсли;
	
	WinHttp.SetRequestHeader("Accept-Language"	, "ru");
	WinHttp.SetRequestHeader("Accept-Charset"	, "utf-8");
	WinHttp.setRequestHeader("Content-Language"	, "ru");
	WinHttp.setRequestHeader("Content-Charset"	, "utf-8");
	WinHttp.setRequestHeader("Content-type"		, "application/x-www-form-urlencoded; charset=utf-8");
	
	ПараметрыПОСТ = Строка;
	
	WinHttp.Send(ПараметрыПОСТ);
	
	ТекстОтвета = WinHttp.ResponseText();
	
	Рез = ПрочитатьJSONСтроку(ТекстОтвета);
	
	Возврат Рез;

Показать


Как удержать соидинения до ответа ? Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Alexey_ 27 20.12.17 10:53 Сейчас в теме
(1) зачем WinHttpRequest? Есть же HTTPСоединение
2. Сурикат 394 19.12.17 20:13 Сейчас в теме
А вы уверены, что это 1С рвет соединение?
У CMS на PHP время жизни соединения настраивается в самой CMS
3. ceber 20.12.17 10:50 Сейчас в теме
(2)
1С рвет соединение?

Я думаю что проблема в CMS но мне нужно както продлить ожыдания.
5. Aitbay 20.12.17 11:37 Сейчас в теме
Новый HTTPСоединение() не проще сделать?
6. Aitbay 20.12.17 11:45 Сейчас в теме
создать структуру типа
ПараметрыОтправки = Новый Структура;
ПараметрыОтправки .Вставить("addItem", 1);
ПараметрыОтправки .Вставить("type", "company");

HTTPСоединение = Новый HTTPСоединение(Компания.ДоменПриложенияИмпорта); 	
HTTPЗапрос = Новый HTTPЗапрос( Компания.АдресПриложенияДляОбмена);
HTTPЗапрос.Заголовки.Вставить("Content-type","application/x-www-form-urlencoded; charset=utf-8");
*** все заголовки чаще не обязательно

ЗаписьJSON      = Новый ЗаписьJSON;
ЗаписатьJSON(ЗаписьJSON, ПараметрыОтправки, Новый НастройкиСериализацииJSON , "ПреобразованиеЗначений");


HTTPЗапрос.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть(),"UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

Показать

как то так попробуй
7. Xershi 1489 20.12.17 11:53 Сейчас в теме
У HTTPСоединение есть параметр таймаут. Но раз ответа нет, значит это не в 1С проблема.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот