Таймауты при работе с внешними ресурсами
При работе с внешними ресурсами с помощью некоторых объектов 1С следует задавать таймаут – предельное время ожидания выполнения операции.
Список объектов: - WSОпределения
- WSПрокси
- HTTPСоединение
- FTPСоединение
- ИнтернетПочтовыйПрофиль
В противном случае, в результате бесконечного ожидания программа зависнет или часть функционала программы станет недоступна.
Установка таймаута является защитой от целого ряда внешних факторов: - нестабильного подключения к Интернету, когда регулярно происходит прерывание связи, и система не может получить цельный ответ сервера, к которому выполняется подключение; - при включенных антивирусных программах или при неправильных настройках брандмауэра; - неправильной настройки прокси-сервера; - ненадежной работы веб-сервера из-за возросшей нагрузки или некорректной работы скриптов.
Таймаут, заданный значением 0 секунд, также является ошибкой.
Подозрительный код
PingPong = Новый WSПрокси(АдресВебСервиса);
//или
PingPong = Новый WSПрокси(АдресВебСервиса, , , , , 0);
Исправленный код
PingPong = Новый WSПрокси(АдресВебСервиса, , , , , 60);
Или другой вариант исправления
PingPong = Новый WSПрокси(АдресВебСервиса);
PingPong.Таймаут = 60;
См. также
- Таймауты при работе с внешними ресурсами - стандарт 1С
- Вызов метода из БСП ОбщегоНазначения.WSПрокси без таймаута
Экранирование кода
// sonar:ExternalResourceTimeout:off
// sonar:ExternalResourceTimeout:on