Автор: Александр Кунташов <kuntashov@gmail.com> (подробнее обо мне)

Как известно, после недавнего большого падения облако Битрикс24 переехало в немецкий датацентр AWS.

После этого у нескольких моих клиентов и у меня на тестовом стенде обмен с товарами и счетами периодически стал падать с ошибками:

Ошибка была плавающая - то обмен ломался, то снова начинал работать.

Почти час провел в отладчике, пока наконец-то не обратил внимание, что ПараметрыПодключения.ЗащищенноеСоединение имеет Булев тип и не вспомнил, что в 8.3 для установки защищенного соединения нужно передавать объект (а в 8.2 просто истину), что заставило меня сверить сигнатуру конструктора объекта HTTPСоединение с Синтакс-помощником. И оказалось, что в 8.3 по сравнению с 8.2:

Переезд облака Б24 на немецкие серверы, очевидно увеличил пинг (или время отклика облачных порталов увеличилось по каким-то другим причинам) и 1 секунды на установку соединения стало явно не хватать, и оно отваливалось по таймауту. Отсюда и "плавающий" характер ошибки: чуть больше время отклика (пинг) - соединение рвется, чуть меньше - все работает.

Подчеркну, что ошибка воспроизводится на платформе во всех версиях УТ 11.3 при работе на платформе 1С:Предприятие 8.3 (проверил в том числе на актуальном на сегодня релизе 11.3.4.185). upd. Что примечательно, в 11.4 ошибка исправлена (проверил на актуальном 11.4.2.139).

Для исправления ошибки нужно в модуле ОбменССайтом в методе СоединениеССервером() строки

    Соединение = Новый HTTPСоединение(
        ПараметрыПодключения.Сервер,
        ПараметрыПодключения.Порт,
        ПараметрыПодключения.Пользователь,
        ПараметрыПодключения.Пароль,
        ПараметрыПодключения.Прокси,
        ПараметрыПодключения.ЗащищенноеСоединение
    );

заменить на

    ЗащищенноеСоединение = Неопределено;
    Если ПараметрыПодключения.ЗащищенноеСоединение Тогда
        ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
    КонецЕсли;

    Соединение = Новый HTTPСоединение(
        ПараметрыПодключения.Сервер,
        ПараметрыПодключения.Порт,
        ПараметрыПодключения.Пользователь,
        ПараметрыПодключения.Пароль,
        ПараметрыПодключения.Прокси,
        120,
        ЗащищенноеСоединение  
    );

Все про обмен данными между 1С и Битрикс24