Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

PERF_HTTP_INTEGRATION_SLOW 1С:Предприятие и СУБД

Гайд 1С: Оптимизация интеграции с внешними источниками через Native HTTPClient

Обновлено: 26.08.2026 · Официальная документация ↗
  • Медленный обмен данными с внешними сервисами (ERP, маркетплейсы, платежные шлюзы, банки).
  • Утечки портов TCP и сокетов в состоянии TIME_WAIT на сервере 1С.
  • Зависание рабочих процессов rphost при отсутствии ответа от внешнего веб-сервера.
  • Высокие задержки на постоянное повторное установление TLS/SSL handshake.

1. Повторное использование объекта HTTPСоединение (HTTP Keep-Alive)

Создание нового экземпляра HTTPСоединение на каждый запрос тратит ресурсы на DNS-резолв, открытие TCP-сокета и проверку сертификатов TLS. Переиспользуйте одно соединение для серии запросов к одному хосту:

// ПРАВИЛЬНО: Одно соединение для пакета HTTP-запросов
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
Соединение = Новый HTTPСоединение("api.service.com", 443, , , , 10, ЗащищенноеСоединение);

Для Каждого Пакет Из МассивПакетов Цикл
    Запрос = Новый HTTPЗапрос("/v1/data");
    Запрос.УстановитьТелоИзСтроки(Пакет.JSON);
    Запрос.Заголовки.Вставить("Content-Type", "application/json");
    
    Ответ = Соединение.ОтправитьДляОбработки(Запрос);
КонецЦикла;

2. Обязательная установка таймаутов соединения

Всегда явно задавайте таймаут в конструкторе HTTPСоединение (по умолчанию таймаут бесконечен, что приводит к вечному зависанию потока 1С):

// Таймаут 15 секунд
HTTPСоединение = Новый HTTPСоединение(Сервер, Порт, Пользователь, Пароль, Прокси, 15, Защита);

3. Использование потоковой передачи больших данных

// Потоковая запись ответа прямо в файл без загрузки в память
HTTPЗапрос = Новый HTTPЗапрос("/files/download/archive.zip");
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос, "/tmp/archive.zip");
💡 Практика специалистов: При интеграциях из фоновых заданий ограничивайте количество параллельных потоков HTTP-клиента к одному внешнему API, чтобы не получить бан по IP от внешнего шлюза из-за превышения Rate Limits.

Частые вопросы (FAQ)

Почему использование старых COM-объектов (MSXML2.ServerXMLHTTP) хуже нативного HTTPСоединение?

COM-объекты работают только в Windows, не поддерживают многопоточность Linux-кластера 1С, вызывают утечки памяти в неуправляемом коде C++ и нестабильны при обрывах связи.

Как включить сжатие передаваемых данных в HTTP-запросах 1С?

Добавьте в заголовки запроса заголовок 'Accept-Encoding': 'gzip, deflate'. Платформа 1С:Предприятие автоматически распакует сжатый ответ сервера.

Что делать, если внешний сервис требует протокол TLS 1.3?

Обновите платформу 1С:Предприятие до актуальных релизов 8.3.22+, где в объекте ЗащищенноеСоединениеOpenSSL добавлена полная поддержка современных шифров TLS 1.3.

Как залогировать сырой HTTP-трафик интеграции 1С для отладки?

Настройте сбор технологического журнала 1С с событиями CALLOUT и WEBSERVICES, либо используйте промежуточный прокси-сервер (Charles / Fiddler / mitmproxy).

Полезные материалы
Рекомендуем