Функция получение файла с сервера - 1С-ИнтеГрация

Функция получение файла с сервера



 

Код 1C v 8.х

 // Параметры:
// Адрес - адрес файла на сервере
// ЛокальныйПуть - путь для сохранения файла на локальном компьютере
// ВыдаватьСообщения - признак необходимости выдачи сообщений в случае ошибки
// (необязательный, по умолчаню равен Истина)
//
// Возвращаемое значение:
// Число - результат получения файла с сервера
// 0 - успешно;
// 1 - неправильный параметр
// 2 - неправильные код пользователя или пароль для доступа к "закрытой" части сайта
// 3 - ошибка подключения к веб-сайту.
//
Функция ПолучитьФайлССервера(Знач Адрес, Знач ЛокальныйПуть, Знач ВыдаватьСообщения =
 Истина, Знач Соединение = Неопределено) Экспорт
 
 Если НЕ ЗначениеЗаполнено(Адрес) ИЛИ НЕ ЗначениеЗаполнено(ЛокальныйПуть) Тогда
 ЗаписатьОшибку("Невозможно подключиться к сети Интернет:
 не инициализированы внутренние переменные.");
 Возврат 1;
 КонецЕсли;
 
 Если Соединение = Неопределено Тогда
 // Установка параметров прокси-сервера
 Если ПроксиСерверТребуетАутентификации Тогда
 ПроксиСервер = Новый ИнтернетПрокси();
 ПроксиСервер.Пользователь = ПользовательПроксиСервера;
 ПроксиСервер.Пароль = ПарольПроксиСервера;
 КонецЕсли;
 
 // Создание HTTP-соединения с сервером обновлений
 Соединение = Новый HTTPСоединение(СерверОбновлений,
 ,
 КодПользователяСервераОбновлений,
 ПарольСервераОбновлений,
 ?(ПроксиСерверТребуетАутентификации, ПроксиСервер,
 Неопределено));
 
 КонецЕсли;
 
 Попытка
 СоздатьКаталог(ПолучитьКаталогФайла(ЛокальныйПуть));
 Соединение.Получить(Адрес, ЛокальныйПуть);
 Исключение
 
 // "Ошибка аутентификации при доступе Адресу"
 ОписаниеОшибки = ОписаниеОшибки();
 Если Найти(ОписаниеОшибки, Адрес) > 0 И НЕ Найти(ОписаниеОшибки, "не 
обнаружен") Тогда 
 
 ЗаписатьПредупреждение("Ошибка при обращении к http://" + 
Соединение.Сервер + "/" + Адрес + "
 |" + ОписаниеОшибки);
 Если ВыдаватьСообщения Тогда 
 ОбщегоНазначения.ПредупреждениеОбОшибке("Неправильно указан
 код пользователя или пароль.");
 КонецЕсли;
 Возврат 2;
 КонецЕсли;
 
 // Файл не обнаружен
 Если Найти(ОписаниеОшибки, "не обнаружен") Тогда 
 Сообщение = "Ошибка при обращении к http://" + Соединение.Сервер +
 "/" + Адрес + "
 |" + ОписаниеОшибки;
 ЗаписатьПредупреждение("Ошибка при обращении к http://" + Соедине
ние.Сервер + "/" + Адрес + "
 |" + ОписаниеОшибки);
 Если ВыдаватьСообщения Тогда 
 ОбщегоНазначения.СообщитьОбОшибке(Сообщение);
 КонецЕсли; 
 Возврат 3;
 КонецЕсли;
 
 // Ошибка работы с Интернет: a timeout was reached
 Сообщение = "Ошибка при обращении к http://" + Соединение.Сервер + "/" + 
Адрес + "
 |" + ОписаниеОшибки;
 ЗаписатьПредупреждение(Сообщение);
 Если ВыдаватьСообщения Тогда 
 ОбщегоНазначения.СообщитьОбОшибке(Сообщение);
 КонецЕсли; 
 Возврат 3;
 
 КонецПопытки;
 
 ЗаписатьИнформацию("Файл успешно получен (адрес: http://" + Соединение.Сервер + "/" + 
Адрес + 
 "; локальный файл: " + ЛокальныйПуть + ").");
 Возврат 0;
КонецФункции 
 


Назад в раздел