&НаСервере
Функция ПолучитьСсылкуНаЗаявку(Знач
ВнешнийКод)
Запрос = Новый Запрос;
Запрос.Текст
=
"ВЫБРАТЬ
| Заявки.Ссылка КАК Ссылка
|ИЗ
| Документ.Заявки КАК Заявки
|ГДЕ
| Заявки.ВнешнийКод = &ВнешнийКод";
Запрос.УстановитьПараметр("ВнешнийКод", ВнешнийКод);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий()
Тогда
Возврат Выборка.Ссылка;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Процедура
ПриложитьФайлыКЗаявке(Знач
idЗаявки)
Адрес = "site.ru";
Соединение = Новый HTTPСоединение(Адрес, 443,,,,30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос
= Новый HTTPЗапрос("/login?login-form-email="
+ "123" + "&login-form-password="
+ "456");
Ответ = Соединение.ВызватьHTTPМетод("POST",
Запрос);
Если Ответ.КодСостояния
= 200 Тогда
Куки = Ответ.Заголовки.Получить("Set-Cookie");
Куки = СтрЗаменить(Куки, ";", Символы.ПС);
Куки = СтрЗаменить(Куки, ",", Символы.ПС);
MosregToken
= СтрПолучитьСтроку(Куки, 1);
JSessionID
= СокрЛП(СтрПолучитьСтроку(Куки, 5));
Cookie = JSessionID
+ ";" + MosregToken;
//////////////////////////////////////////////////////
//2-й запрос
Заголовки = Новый
Соответствие;
Заголовки.Вставить("Cookie", Cookie);
Запрос2 = Новый HTTPЗапрос("/api/claim/" + idЗаявки,
Заголовки);
Ответ2 = Соединение.ВызватьHTTPМетод("GET",
Запрос2);
Если
Ответ2.КодСостояния = 200 Тогда
МассивФайлов = Ответ22.value.images;
СсылкаНаЗаявку = ПолучитьСсылкуНаЗаявку("Префикс"
+ idЗаявки);
Для Каждого
Эл Из МассивФайлов Цикл
Вложение
= Справочники.УК_ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Вложение.УстановитьНовыйКод();
Вложение.ОбменДанными.Загрузка = Истина;
Вложение.Наименование = "Префикс" + idЗаявки;
Вложение.Объект = СсылкаНаЗаявку;
Вложение.ВидВложения = Перечисления.УКНСИ_ВидВложения.Входящее;
Вложение.ВидДанных = Перечисления.УКНСИ_ВидыДополнительнойИнформацииОбъектов.Изображение;
Вложение.ИмяФайла = Эл.name;
ИмяФайла = КаталогВременныхФайлов()
+ Эл.name;
КопироватьФайл(Эл.url, ИмяФайла);
ДанныеФайла = Base64Значение(Base64Строка(Новый ДвоичныеДанные(ИмяФайла)));
УдалитьФайлы(ИмяФайла);
Вложение.Хранилище = Новый ХранилищеЗначения(Новый
Картинка(ДанныеФайла), Новый СжатиеДанных());
Вложение.ХранилищеРазмер = ДанныеФайла.Размер();
Вложение.Записать();
КонецЦикла;
Иначе
Сообщить("Запрос
2, ошибка: " + Ответ2.КодСостояния);
КонецЕсли;
Иначе
Сообщить("Запрос
1, ошибка " + Ответ.КодСостояния);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура
ПрочитатьЗаявкуИПриложитьФайлы(Команда)
idЗаявки
= "345";
ПриложитьФайлыКЗаявке(idЗаявки);
КонецПроцедуры
|