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