Как ускорить отправку Http запросов? Нужно отправлять приблизительно 5000 get запросов. Отправляю последовательно занимает около 1 часа
---
Вот нашел, вырезал из конфы (парсил закупки, давно это было). К слову если посылать их в таком количестве, то через некотрое время сервер Вас забанит.

```1c
    Объекты = Новый Массив;
    КоличествоОбъектов = СсылкиДляОбработки.Количество(); //аукционов на странице - должно быть 50(если полная)

    //Создание запросов
    Для ин = 0 По КоличествоОбъектов-1 Цикл

    ОбъектHTTP = Новый COMObject("WinHttp.WinHttpRequest.5.1");
    АдресЗапроса="http://zakupki.gov.ru/epz/order/notice/ea44/view/common-info.html?regNumber="+СсылкиДляОбработки[ин];
    ОбъектHTTP.Open("POST", АдресЗапроса, 1);

    ОбъектHTTP.SetRequestHeader ("Accept", "text/html, application/xhtml+xml, image/jxr, */*");
    ОбъектHTTP.SetRequestHeader ("Accept-Encoding", "gzip, deflate");
    ОбъектHTTP.SetRequestHeader ("Accept-Language", "ru, en-US; q=0.7, en; q=0.3");
    ОбъектHTTP.SetRequestHeader ("Connection", "Keep-Alive");
    ОбъектHTTP.SetRequestHeader ("Cookie", "userId=1c08521b-14a4-45ce-b7a7-5da2ee005645; userRegionName=%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0­%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9%20%D0%BA%D1%80%D0%B0%D0%B9­; yandexRegionName=%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%­D0%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9%20%D0%BA%D1%80%D0%B0%D0%­B9%2C%20%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D1%81%D0%BA%D0%BE%D0%­B9%20%D0%BE%D0%BA%D1%80%D1%83%D0%B3%20%D0%93%D0%BE%D1%80%D0%­BE%D0%B4%20%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0%B0%­D1%80; userRegionId=5277353; doNotShowKladrPopUp=true; doNotUseRegionToFind=true; routeepz0=2; routeepz7=1; routeepz2=1; routeepzCons=0; routeepz5=1; _ym_uid=1496946192522968538; _ym_isad=2");
    ОбъектHTTP.SetRequestHeader ("Host", "zakupki.gov.ru");

    ОбъектHTTP.SetRequestHeader ("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393");
    ОбъектHTTP.Send();
    ОбъектHTTP.SetTimeouts(30000, 30000, 30000, 30000);
    Данные = Новый Структура("Объект, Выполнено, Ошибка, АдресЗапроса", ОбъектHTTP, Ложь, Ложь,АдресЗапроса);
    Объекты.Добавить(Данные);

    КонецЦикла;
    Ответы=Новый Массив;
    // ожидание ответов
    Пока Истина Цикл

    ОбработаноОбъектов = 0;
    Для ин = 0 По КоличествоОбъектов-1 Цикл

    Если Объекты[ин].Выполнено = Ложь И Объекты[ин].Ошибка = Ложь Тогда

    Рез = Ложь;

    Попытка
    // время ожидания, в данном случае не существенно
    Рез = Объекты[ин].Объект.WaitForResponse(50);
    Исключение

    // наиболее вероятная ошибка - сработал таймаут
    Объекты[ин].Ошибка = Истина;
    КонецПопытки;

    Если Рез = Истина Тогда
    // результат получен
    Объекты[ин].Выполнено = Истина;
    Попытка
    Ответы.Добавить(Объекты[ин].Объект.ResponseText);
    Исключение
    КонецПопытки
    КонецЕсли;
    Иначе
    ОбработаноОбъектов = ОбработаноОбъектов + 1;
    КонецЕсли;

    КонецЦикла;

    Если ОбработаноОбъектов = КоличествоОбъектов Тогда
    Прервать;
    КонецЕсли;

    КонецЦикла;
```
---
Распараллелить, вестимо с помощью фоновых процессов.
---
Распараллелить, вестимо с помощью фоновых процессов.
первым делом это пробовал, результат тот же, может я не правильно чтото делаю

```1c
    ЧислоПотоков = 10;
    obj = ЧтениеОтвет(ответIssues);
    ЧислоIssue = obj["total"];
    РазмерПорции = Цел(ЧислоIssue/ЧислоПотоков);
    МассивЗаданий = Новый Массив;

    Для НомерПотока = 1 По ЧислоПотоков Цикл

    ИндексНачала = (НомерПотока - 1)*РазмерПорции;
    Если (НомерПотока = ЧислоПотоков) Тогда
    РазмерПорции = ЧислоIssue-(ЧислоПотоков*РазмерПорции)+РазмерПорции;
    КонецЕсли;
    НаборПараметров = Новый Массив;
    НаборПараметров.Добавить(ИндексНачала);
    НаборПараметров.Добавить(РазмерПорции);
    Задание = ФоновыеЗадания.Выполнить("JIRA.ОбновитьWorkLog",НаборПараметров);
    МассивЗаданий.Добавить(Задание);
    КонецЦикла;

    Если МассивЗаданий.Количество() > 0 Тогда
    Попытка
    ФоновыеЗадания.ОжидатьЗавершения(МассивЗаданий);
    Исключение
    // действия в случае ошибки
    КонецПопытки;
    КонецЕсли;
```
---
и для чего вы ожидаете завершения всех заданий? Пульнули запросы, запросы ворачивают каждый свой результат в свое время, эти результаты храните где-нибудь и обрабатывайте, когда результат получен полностью
В чем сложности?

Я навскидку вам не приведу код для отправки HTTP-запроса из 1С, можете глянуть любую типовую конфигурацию на тему проверки подписки на ИТС/обновления релиза конфигурации
---
Может здесь что-то найдете
https://wonderland.v8.1c.ru/blog/povyshenie-proizvoditelnosti-veb-servisov/
---
Фоновые процессы запускаются долго. я помню делал такое, паралелил на 50 потоков, там надо наплодить 50 COM объектов какой-то виндосовской утилиты (curl вроде), потом в цикле их проверять пока на все ответы не придут. Я дома посмотрю код - скину.
---
HTTP запросы курлом? Зачем, если 1С это прекрасно умеет?
---
потому что она не умеет это делать паралельно. У вас задержка - это получение данных от сервера, на её фоне создание 50 COM - это немного. Они завершатся +/- в одно и то же время, и Вы сразу обработаете 50 результатов. Короче выигрыш большой, я делал парсер. Запускать фоновое задание и складывать результат в хранилище - вообще не вариант.
---
скорей за все да, не умеет, скинете пример как вы делали
---
Вот нашел, вырезал из конфы (парсил закупки, давно это было). К слову если посылать их в таком количестве, то через некотрое время сервер Вас забанит.

```1c
    Объекты = Новый Массив;
    КоличествоОбъектов = СсылкиДляОбработки.Количество(); //аукционов на странице - должно быть 50(если полная)

    //Создание запросов
    Для ин = 0 По КоличествоОбъектов-1 Цикл

    ОбъектHTTP = Новый COMObject("WinHttp.WinHttpRequest.5.1");
    АдресЗапроса="http://zakupki.gov.ru/epz/order/notice/ea44/view/common-info.html?regNumber="+СсылкиДляОбработки[ин];
    ОбъектHTTP.Open("POST", АдресЗапроса, 1);

    ОбъектHTTP.SetRequestHeader ("Accept", "text/html, application/xhtml+xml, image/jxr, */*");
    ОбъектHTTP.SetRequestHeader ("Accept-Encoding", "gzip, deflate");
    ОбъектHTTP.SetRequestHeader ("Accept-Language", "ru, en-US; q=0.7, en; q=0.3");
    ОбъектHTTP.SetRequestHeader ("Connection", "Keep-Alive");
    ОбъектHTTP.SetRequestHeader ("Cookie", "userId=1c08521b-14a4-45ce-b7a7-5da2ee005645; userRegionName=%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0­%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9%20%D0%BA%D1%80%D0%B0%D0%B9­; yandexRegionName=%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%­D0%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9%20%D0%BA%D1%80%D0%B0%D0%­B9%2C%20%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D1%81%D0%BA%D0%BE%D0%­B9%20%D0%BE%D0%BA%D1%80%D1%83%D0%B3%20%D0%93%D0%BE%D1%80%D0%­BE%D0%B4%20%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0%B0%­D1%80; userRegionId=5277353; doNotShowKladrPopUp=true; doNotUseRegionToFind=true; routeepz0=2; routeepz7=1; routeepz2=1; routeepzCons=0; routeepz5=1; _ym_uid=1496946192522968538; _ym_isad=2");
    ОбъектHTTP.SetRequestHeader ("Host", "zakupki.gov.ru");

    ОбъектHTTP.SetRequestHeader ("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393");
    ОбъектHTTP.Send();
    ОбъектHTTP.SetTimeouts(30000, 30000, 30000, 30000);
    Данные = Новый Структура("Объект, Выполнено, Ошибка, АдресЗапроса", ОбъектHTTP, Ложь, Ложь,АдресЗапроса);
    Объекты.Добавить(Данные);

    КонецЦикла;
    Ответы=Новый Массив;
    // ожидание ответов
    Пока Истина Цикл

    ОбработаноОбъектов = 0;
    Для ин = 0 По КоличествоОбъектов-1 Цикл

    Если Объекты[ин].Выполнено = Ложь И Объекты[ин].Ошибка = Ложь Тогда

    Рез = Ложь;

    Попытка
    // время ожидания, в данном случае не существенно
    Рез = Объекты[ин].Объект.WaitForResponse(50);
    Исключение

    // наиболее вероятная ошибка - сработал таймаут
    Объекты[ин].Ошибка = Истина;
    КонецПопытки;

    Если Рез = Истина Тогда
    // результат получен
    Объекты[ин].Выполнено = Истина;
    Попытка
    Ответы.Добавить(Объекты[ин].Объект.ResponseText);
    Исключение
    КонецПопытки
    КонецЕсли;
    Иначе
    ОбработаноОбъектов = ОбработаноОбъектов + 1;
    КонецЕсли;

    КонецЦикла;

    Если ОбработаноОбъектов = КоличествоОбъектов Тогда
    Прервать;
    КонецЕсли;

    КонецЦикла;
```
---
(8)
Тут очень интересное чтиво по вашей теме: https://infostart.ru/public/606129/
---
А я кажется оттуда и брал, судя по наличию моего плюса под этой статьёй. Но точно не скажу, давно это было.
---
Так 1С уже сама давно научилась отправлять HTTP-запросы, COM пускать не нужно.