Есть конфигурация на платформе 8.3.18, работающая в режиме совместимости 8.2.16 (повысить режим совместимости в рабочей базе нельзя)

Нужно организовать обмен с сайтом:

```1c
    ТаймаутУстановкиСоединения =0;
    ЗащищенноеСоединениеOpenSSL = Новый ЗащищенноеСоединениеOpenSSL();
    HTTPСоединение = Новый HTTPСоединение(АдресСервера,,,,, ТаймаутУстановкиСоединения, ЗащищенноеСоединениеOpenSSL);

    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/json");
    Заголовки.Вставить("Accept", "application/json; utf-8;");
    Заголовки.Вставить("Accept-Charset","utf-8;");
    ТелоЗапроса = "{
    |"organisationId": "1199df06-1583-16ff-e841-011022ee2280",
    |"organisationName": "Рога и Копыта",
    |"versionPlugin": "1.0.1.0",
    |"integrationSoftName": "УправлениеВсемиУправлениями",
    |"versionIntegrationSoft": "1.1.1.1"
    |}";
    HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);

    Для Каждого ЭлементЗаголовка Из Заголовки Цикл
    HTTPЗапрос.Заголовки.Вставить(ЭлементЗаголовка.Ключ, ЭлементЗаголовка.Значение);
    КонецЦикла;

    HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);

    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

    Сообщить("Код состояния: "+HTTPОтвет.КодСостояния);
```

Ответ возвращает ошибку (Код состояния: 400).
Если копию базы перевести в режим совместимости 8.3.6 - работает. (Код состояния: 200).

Вопрос: как можно обойти эту проблему?
---
Попробуй сделать через winhttprequest

типа (просто кусок из своей обработки выдернул):

```1c
    ОтветСервера = ";

    Попытка

    WinHttpReq = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");

    WinHttpReq.Option(2, "utf-8");
    WinHttpReq.Open("POST", мМестоположениеWSDL + ПараметрЗапроса, 0);
    WinHttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    WinHttpReq.Send(ДанныеЗапросаСтрокой);

    ОтветСервера = Строка(WinHttpReq.ResponseText());

    WinHttpReq = Неопределено;

    Исключение

    ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());

    КонецПопытки;
```

Если так заработает - то предположу что проблема с ssl сертификатом. Тогда 2 варианта: или оставить вот так вот через WinHttpRequest, либо если через объекты 1С делать (HTTPСоединение и т.д.) - то необходимо будет добавить нужный сертификат в cacert.pem.
---
Сообщение было скрыто модератором.
---
У 8.2 проблемы с шифрованием SSL. Воспользуйся программой Stunnel.
---
Если тело запроса пустое: ошибки нет. Результат приходит.
---
А в теле что?
---
Это ж в принципе недопустимо для такой версии платформы:

https://capitally.ru/1c-development/ispolzovanie-http-servisov-v-rezhime-sovmestimosti-8-3-4-i-nizhe-nedopustimo/
---
Так я знаю это. Мне интересно как обойти? Внешняя компонента или ещё что-нибудь. День гуглил, ничего вменяемого не нашёл.
---
Извините, скинул пример по http-сервису, вот пример по соединению, опять же 8.2.16 еще не поддерживает полноценно соединения

https://stimul.kiev.ua/materialy.htm?a=primer_raboty_s_httpsoedinenie
---
Попробуй сделать через winhttprequest

типа (просто кусок из своей обработки выдернул):

```1c
    ОтветСервера = ";

    Попытка

    WinHttpReq = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");

    WinHttpReq.Option(2, "utf-8");
    WinHttpReq.Open("POST", мМестоположениеWSDL + ПараметрЗапроса, 0);
    WinHttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    WinHttpReq.Send(ДанныеЗапросаСтрокой);

    ОтветСервера = Строка(WinHttpReq.ResponseText());

    WinHttpReq = Неопределено;

    Исключение

    ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());

    КонецПопытки;
```

Если так заработает - то предположу что проблема с ssl сертификатом. Тогда 2 варианта: или оставить вот так вот через WinHttpRequest, либо если через объекты 1С делать (HTTPСоединение и т.д.) - то необходимо будет добавить нужный сертификат в cacert.pem.
---
```1c
    Попытка

    WinHttpReq = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");

    WinHttpReq.Option(2, "utf-8");
    WinHttpReq.Open("POST", "https://"+АдресСервера + "/" + АдресРесурса, 0);
    WinHttpReq.setRequestHeader("Content-Type", "application/json");
    WinHttpReq.setRequestHeader("Accept", "application/json; utf-8;");
    WinHttpReq.setRequestHeader("Accept-Charset", "utf-8;");

    WinHttpReq.Send(ТелоЗапроса);

    ОтветСервера = WinHttpReq.ResponseText();

    WinHttpReq = Неопределено;

    Сообщить("Ответ сервера: "+ОтветСервера);

    Исключение

    ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());

    КонецПопытки;
```

Ответ сервера: {"response":{"status":"1","message":"Registration update."}}

В отладчике WinHttpReq.Status = 200

Спасибо
---
порт какой используется?
443? явно указать пробовали?
сервис опубликован на https?