Перейти к содержанию

Таймауты при работе с внешними ресурсами

При работе с внешними ресурсами с помощью некоторых объектов 1С следует задавать таймаут – предельное время ожидания выполнения операции.

Список объектов: - WSОпределения - WSПрокси - HTTPСоединение - FTPСоединение - ИнтернетПочтовыйПрофиль

В противном случае, в результате бесконечного ожидания программа зависнет или часть функционала программы станет недоступна.

Установка таймаута является защитой от целого ряда внешних факторов: - нестабильного подключения к Интернету, когда регулярно происходит прерывание связи, и система не может получить цельный ответ сервера, к которому выполняется подключение; - при включенных антивирусных программах или при неправильных настройках брандмауэра; - неправильной настройки прокси-сервера; - ненадежной работы веб-сервера из-за возросшей нагрузки или некорректной работы скриптов.

Таймаут, заданный значением 0 секунд, также является ошибкой.

Подозрительный код

PingPong = Новый WSПрокси(АдресВебСервиса);
//или
PingPong = Новый WSПрокси(АдресВебСервиса, , , , , 0);

Исправленный код

PingPong = Новый WSПрокси(АдресВебСервиса, , , , , 60);

Или другой вариант исправления

PingPong = Новый WSПрокси(АдресВебСервиса); 
PingPong.Таймаут = 60;

См. также

Экранирование кода

// sonar:ExternalResourceTimeout:off
// sonar:ExternalResourceTimeout:on