HTTP-сервисы – это механизм для организации обмена данными между информационной базой 1С и внешними системами через протокол HTTPs.
Создание и настройка сервиса
В дереве метаданных: Общие → HTTP-сервисы необходимо добавить новый сервис, задать ему имя и корневой URL.

Далее необходимо для каждого метода создать шаблон URL и обработчик (рисунок 2). Шаблон URL нужен для того, чтобы сопоставить URL, по которому произошло обращение к сервису, с одним из имеющихся HTTP-методов. Затем, для шаблона URL добавим метод GET, который будет вызван при сопоставлении этого шаблона с URL запроса к HTTP-сервису.
Далее создадим обработчик этого метода. Имя обработчика автоматически формируется путем соединения имени шаблона URL и имени самого метода. HTTP-сервис может содержать в себе один или несколько шаблонов, а также для каждого шаблона можно создать один или несколько методов, выполняющих обработку данных.

В модуле HTTP-сервиса будет создан шаблон функции-обработчика, который получает на вход параметр и возвращает ответ:
Функция Get(Запрос)
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(Ответ);
Ответ.Заголовки.Вставить("Content-Type","application/json");
Возврат Ответ;
КонецФункции
В нашем случае, в 1С будет передаваться название картинки и само изображение с сохранением ее в справочнике:
Функция GetUploadAnImageGET(Запрос)
ЗаписьЖурналаРегистрации(«Обращение к HTTP сервису»,УровеньЖурналаРегистрации.Информация,Метаданные.Справочники.Объекты,," Обращение к HTTP сервису");
image_name = Запрос.ПараметрыЗапроса.Получить("image_name");
image_link = Запрос.ПараметрыЗапроса.Получить("image_link");
ЗаписьЖурналаРегистрации("Получен образ",УровеньЖурналаРегистрации.Информация,Метаданные.Справочники.Объекты,,"Получено наименование "+image_name+" и образ "+image_link);
ВремФайл = ПолучитьИмяВременногоФайла();
КопироватьФайл(image_link, ВремФайл);
ДвоичДанные = Новый ДвоичныеДанные(ВремФайл);
КартинкаНаФормеТипаСтрока = ПоместитьВоВременноеХранилище(ДвоичДанные);
ЗаписьЖурналаРегистрации("Образ преобразован",УровеньЖурналаРегистрации.Информация,Метаданные.Справочники.Объекты,,"Двоичные: "+ДвоичДанные+" и хранилище "+КартинкаНаФормеТипаСтрока);
ПутьКФайлу = "C:\Песочницы\"+image_name+"1.jpg";
КопироватьФайл (image_link, ПутьКФайлу);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Объекты.Ссылка КАК Ссылка,
| Объекты.Наименование КАК Наименование,
| Объекты.Образ КАК Образ
|ИЗ
| Справочник.Объекты КАК Объекты
|ГДЕ
| Объекты.Наименование ПОДОБНО &Наименование";
Запрос.УстановитьПараметр("Наименование", image_name);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество()>0 тогда
СтарыйОбраз = РезультатЗапроса[0].Ссылка.ПолучитьОбъект();
СтарыйОбраз.образ = Новый ХранилищеЗначения(ДвоичДанные);
СтарыйОбраз.СсылкаНаКартинку = КартинкаНаФормеТипаСтрока;
СтарыйОбраз.Записать();
Иначе
НовыйОбраз = Справочники.Объекты.СоздатьЭлемент();
НовыйОбраз.Наименование = image_name;
НовыйОбраз.образ = Новый ХранилищеЗначения(ДвоичДанные);
НовыйОбраз.СсылкаНаКартинку = КартинкаНаФормеТипаСтрока;
НовыйОбраз.Записать();
КонецЕсли;
Ответ = Новый HTTPСервисОтвет(200);
Возврат Ответ;
КонецФункции
Далее необходимо сделать публикацию на сервере (рисунок 3).
В конфигураторе: Администрирование → Публикация на веб сервере. Указать имя публикации, выбрать сервисы для публикации, настроить доступ и безопасность.

Тестирование
В качестве тестирования можно использовать инструменты: Postman, curl, браузер.
Результат тестирования – это созданная запись в справочнике с наименованием и изображением, которое мы передали из браузера (рисунок 4).







