Всем привет.
Есть обработка, которая загружает номенклатуру из файла Excel
В том числе картинки (если на них есть ссылка).
Картинки скачиваются простым способом:

```1c
    СтруктураURI = СтруктураURI(ПолныйПуть);
    HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт);
    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере);
    НовИмя = КаталогВременныхФайлов()+"Фото.jpg";
    Результат = HTTPСоединение.Получить(HTTPЗапрос,НовИмя);
```

Все хорошо работало, пока не попался файл с ссылками типа:
http://www.samsonopt.ru/ajax/detail_img.php?CODE=224628&TYPE=IMG

Подставляемые значения:
СтруктураURI.Хост = "www.samsonopt.ru";
СтруктураURI.ПутьНаСервере = "ajax/detail_img.php?CODE=224628&TYPE=IMG";
Результат.КодСостояния = 301

Картинка не скачивается.
Подскажите, как в этом случае можно скачать файл картинки?
Раньше с этим не сталкивался...
---
потому что защищенное соединение не указываете.
Вот, быстро набросал:

```1c
    &НаКлиенте
    Процедура Команда1(Команда)
    СтруктураURI = СтруктураURI(ПолныйПуть);
    Ответ = ПолучитьОтветЗапроса(СтруктураURI);
    Код = Ответ.КодСостояния;
    Пока Ответ.КодСостояния <> 200 Цикл
    Ответ = ПолучитьОтветЗапроса(СтруктураURI(Ответ.Заголовки["Location"]));
    Если Ответ.КодСостояния > 400 Тогда
    Сообщить("Запрос не выполнен.");
    Прервать;
    КонецЕсли;
    КонецЦикла;

    Если Ответ.КодСостояния = 200 Тогда
    НовИмя = КаталогВременныхФайлов()+"Фото.jpg";
    Данные = Ответ.ПолучитьТелоКакДвоичныеДанные();
    Запись = Новый ЗаписьДанных(НовИмя);
    Запись.Записать(Данные);
    Запись.Закрыть();
    КонецЕсли;

    КонецПроцедуры

    &НаКлиенте
    Функция СтруктураURI(Путь)

    ПутьМассив = СтрРазделить(Путь,"/", Ложь);
    СтруктураURI = Новый Структура;
    СтруктураURI.Вставить("ЗащищенноеСоединение", ПутьМассив[0] = "https:");
    СтруктураURI.Вставить("Хост", ПутьМассив[1]);
    ПутьМассив.Удалить(0);
    ПутьМассив.Удалить(0);
    СтруктураURI.Вставить("ПутьНаСервере", "/" + СтрСоединить(ПутьМассив,"/"));
    Возврат СтруктураURI;
    КонецФункции

    &НаКлиенте
    Функция ПолучитьОтветЗапроса(СтруктураURI)

    HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост,,,,,,?(СтруктураURI.ЗащищенноеСоединение, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено));
    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере);

    Возврат HTTPСоединение.Получить(HTTPЗапрос);

    КонецФункции
```
---
Для начала. Код 301 это постоянное перенаправление. В данном случае перенаправление на https://www.samsonopt.ru/ajax/detail_img.php?CODE=224628&TYPE=IMG
Адрес ловить в Результат.Заголовки["Location"]. И повторный Get запрос по полученному адресу.
Далее будет ответ с кодом 302. Это временное перенаправление на уже сам файл. Ловить там же Результат.Заголовки["Location"].
Соответственно еще раз запрос с новым адресом и получение файла картинки.
---
Результат:

```1c
    Результат.Заголовки.Получить("Location")="https://www.samsonopt.ru/ajax/detail_img.php?CODE=222547&TYPE=IMG"
```

Попробую повторный запрос.
---
Повторный Get запрос тоже возвращает код 301... (((
---
потому что защищенное соединение не указываете.
Вот, быстро набросал:

```1c
    &НаКлиенте
    Процедура Команда1(Команда)
    СтруктураURI = СтруктураURI(ПолныйПуть);
    Ответ = ПолучитьОтветЗапроса(СтруктураURI);
    Код = Ответ.КодСостояния;
    Пока Ответ.КодСостояния <> 200 Цикл
    Ответ = ПолучитьОтветЗапроса(СтруктураURI(Ответ.Заголовки["Location"]));
    Если Ответ.КодСостояния > 400 Тогда
    Сообщить("Запрос не выполнен.");
    Прервать;
    КонецЕсли;
    КонецЦикла;

    Если Ответ.КодСостояния = 200 Тогда
    НовИмя = КаталогВременныхФайлов()+"Фото.jpg";
    Данные = Ответ.ПолучитьТелоКакДвоичныеДанные();
    Запись = Новый ЗаписьДанных(НовИмя);
    Запись.Записать(Данные);
    Запись.Закрыть();
    КонецЕсли;

    КонецПроцедуры

    &НаКлиенте
    Функция СтруктураURI(Путь)

    ПутьМассив = СтрРазделить(Путь,"/", Ложь);
    СтруктураURI = Новый Структура;
    СтруктураURI.Вставить("ЗащищенноеСоединение", ПутьМассив[0] = "https:");
    СтруктураURI.Вставить("Хост", ПутьМассив[1]);
    ПутьМассив.Удалить(0);
    ПутьМассив.Удалить(0);
    СтруктураURI.Вставить("ПутьНаСервере", "/" + СтрСоединить(ПутьМассив,"/"));
    Возврат СтруктураURI;
    КонецФункции

    &НаКлиенте
    Функция ПолучитьОтветЗапроса(СтруктураURI)

    HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост,,,,,,?(СтруктураURI.ЗащищенноеСоединение, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено));
    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере);

    Возврат HTTPСоединение.Получить(HTTPЗапрос);

    КонецФункции
```
---
потому что защищенное соединение не указываете.
Указывал, но как-то, видимо, не так...
Спасибо большое! Ваш вариант работает!