Код IT
← Каталог

Обработка ошибок 1С — Обработка ошибок при веб-сервисах

Фрагмент из «Обработка ошибок 1С»: Обработка ошибок при веб-сервисах.

1С (BSL) main.bsl
Функция ПолучитьДанныеИзВебСервиса(АдресСервера, Путь, ТаймаутСек = 30) Экспорт
    
    МаксПопыток = 3;
    Для НомерПопытки = 1 По МаксПопыток Цикл
        
        Попытка
            Соединение = Новый HTTPСоединение(АдресСервера, , , , , ТаймаутСек);
            Запрос = Новый HTTPЗапрос(Путь);
            Ответ = Соединение.Получить(Запрос);
            
            Если Ответ.КодСостояния = 200 Тогда
                ЧтениеJSON = Новый ЧтениеJSON;
                ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
                Возврат ПрочитатьJSON(ЧтениеJSON);
            КонецЕсли;
            
        Исключение
            Если НомерПопытки = МаксПопыток Тогда
                Сообщить("Не удалось получить данные из сервиса.");
                Возврат Неопределено;
            КонецЕсли;
        КонецПопытки;
        
    КонецЦикла;
    
КонецФункции
Функция ПолучитьДанныеИзВебСервиса(АдресСервера, Путь, ТаймаутСек = 30) Экспорт
    
    МаксПопыток = 3;
    Для НомерПопытки = 1 По МаксПопыток Цикл
        
        Попытка
            Соединение = Новый HTTPСоединение(АдресСервера, , , , , ТаймаутСек);
            Запрос = Новый HTTPЗапрос(Путь);
            Ответ = Соединение.Получить(Запрос);
            
            Если Ответ.КодСостояния = 200 Тогда
                ЧтениеJSON = Новый ЧтениеJSON;
                ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
                Возврат ПрочитатьJSON(ЧтениеJSON);
            КонецЕсли;
            
        Исключение
            Если НомерПопытки = МаксПопыток Тогда
                Сообщить("Не удалось получить данные из сервиса.");
                Возврат Неопределено;
            КонецЕсли;
        КонецПопытки;
        
    КонецЦикла;
    
КонецФункции