На прошлых уроках:
-Учимся создавать http-сервисы (часть первая)
-Учимся создавать http сервисы (часть вторая). Передача параметра в http сервис
-Учимся создавать http сервис (часть третья). Передача нескольких параметров в http сервис ,
мы с вами научились создавать http сервис, научились отправлять запросы на сервер. Запросы, которые, до сих пор отправляли на сервер, были GET запросами. При помощи метода GET запроса можно получать данные с сервера. Мы, например, получали информацию о документах расходных документах, а также, получали информацию о номенклатуре.
Что делать, если нам нужно передать некие данные на сервер? На помощь приходит http запрос типа POST!
Поставим задачу:
-Перенесем данные справочника «Номенклатура» из базы источник в базу приемник при помощи http сервиса, используя POST запрос. Переносить данные будем в JSON формате.
Подготовим базу источник.
-Создаем чистую информационную базу.
-Назовем ее «БазаИсточник»
-Добавляем в нее несколько объектом метаданных:
Спр. «Номенклатура»
Реквизит «Атрикул» тип строка 25
-Обработка «ИзучениеPOSTЗапросов»
Подготовим базу приемник
-Создаем чистую информационную базу
-Назовем ее «БазаПриемник»
-Добавим в нее несколько объектов метаданных:
Спр. «Номенклатура»
Реквизит «Атрикул» тип строка 25
-Создаем новый http сервис «ИзучениеPOSTЗапросов»
-Корневой URL – «post»
-Переходим на закладку «Шаблоны URL»
-Добавляем новый шаблон «ЗагрузкаНоменклатуры»
-Создадим шаблон, назовем его «product_json»
-Добавим новый метод «ЗагрузкаНоменклатурыJSON»
-Выбираем HTTP метод POST
-Публикуем http сервис на веб сервере, если забыли, как это сделать, смотрите статью
Учимся создавать http-сервисы (часть первая)
После публикации у меня получился следующий путь «http://localhost/post_test/hs/post/product_json/»
Localhost – IP адрес
post_test – имя публикации
hs – признак http сервиса
post – корневой каталог
product_json - шаблон
Переходим в базу источник.
-Открываем обработку «ИзучениеPOSTЗапросов»
-Создадим форму. На форме разместим кнопку «Перенести номенклатуру JSON»
Шаблон, по которому мы подключаемся из 1С к http сервису следующий:
-Создаем объект типа «HTTPСоединение», в его конструкторе передаем ip адрес http сервиса, например, так:
-Создаем объект типа «HTTPЗапрос», в его конструкторе указываем адрес ресурса и заголовки, например так:
-Помещаем данные, которые мы хотим отправить на сервер в тело запроса. Мы хотим передать текстовые данные, для этого мы воспользуемся методом «УстановитьТелоИзСтроки»
-Отправляем данные на сервер. (пример кода)
Еще раз. Для того чтобы передать данные на сервер, надо эти данные поместить в тело POST запроса. В заголовке необходимо указать какого типа эти данные.
-Открываем базу источник в режиме предприятия и добавляем в справочник «Номенклатура» несколько элементов.
Базу источник мы подготовили!
Переходим в базу приемник
-Добавляем общий модуль «ОбщегоНазначения»
-В нем описываем две процедуры
-Переходим в обработчик метода «ЗагрузкаНоменклатурыJSON» http сервиса «ИзучениеPOSTЗапросов»
-Описываем в нем следующий код
Базу приемник мы подготовили.
Запускаем обработку из базы источник. Нажимаем на кнопку. И в базе приемнике создается номенклатура.
Видео инструкция тут:
Там же, вы сможете скачать файлы конфигурации источника и приемника.
Итак, мы решили поставленную задачу.
При реализации данного функционала была использована платформа 1С:Предприятие 8.3 (8.3.12.1567)
Всего хорошего.