&НаСервере
Функция СоздатьБаралог()
Поток = Новый ПотокВПамяти();
ЗаписьДанных = Новый ЗаписьДанных(Поток);
ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""meta[type]""");
ЗаписьДанных.ЗаписатьСтроку("");
ЗаписьДанных.ЗаписатьСтроку("baralog-photo");
ЗаписьДанных.Закрыть();
Возврат Поток.ЗакрытьИПолучитьДвоичныеДанные();
КонецФункции
&НаСервере
Функция СоздатьФайл(ИмяСообщения, ИмяФайла, Картинка)
Поток = Новый ПотокВПамяти();
ЗаписьДанных = Новый ЗаписьДанных(Поток);
ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""" + ИмяСообщения + """; filename=""" + ИмяФайла + """");
ЗаписьДанных.ЗаписатьСтроку("Content-Type: image/jpeg");
ЗаписьДанных.ЗаписатьСтроку("");
ЗаписьДанных.Записать(Новый ДвоичныеДанные(Картинка));
ЗаписьДанных.Закрыть();
Возврат Поток.ЗакрытьИПолучитьДвоичныеДанные();
КонецФункции
&НаСервере
Процедура multipartHTTP()
Токен = ПолучитьТокен();
Если Токен = Ложь Тогда
Возврат;
КонецЕсли;
ФайлЗаписиОтвета = "D:\Ответ.txt";
ДвоичныеДанныеБаралог = СоздатьБаралог();
ДвоичныеДанныеФайл = СоздатьФайл("file", "File.jpg", "D:\123.jpg");
Разделитель = "Asrf456BGe4h";
Результат = Новый Структура();
Заголовки = Новый Соответствие();
Результат.Вставить("Заголовки", Заголовки);
Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Разделитель);
Заголовки.Вставить("Accept", "application/json");
ПотокТело = Новый ПотокВПамяти();
ЗаписьДанных = Новый ЗаписьДанных(ПотокТело);
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
ЗаписьДанных.Записать(ДвоичныеДанныеБаралог);
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
ЗаписьДанных.Записать(ДвоичныеДанныеФайл);
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
ЗаписьДанных.ЗаписатьСтроку("");
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель + "--");
ЗаписьДанных.Закрыть();
ДвоичныеДанныеТело = ПотокТело.ЗакрытьИПолучитьДвоичныеДанные();
Результат.Вставить("Тело", ДвоичныеДанныеТело);
Соединение = Новый HTTPСоединение("upload.api.onliner.by",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/upload?token=" + Токен, Заголовки);
Запрос.УстановитьТелоИзДвоичныхДанных(Результат.Тело);
HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос, ФайлЗаписиОтвета);
КонецПроцедуры