Учимся создавать http сервис (часть третья). Передача нескольких параметров в http сервис

02.10.20

Интеграция - WEB-интеграция

Пошаговое руководство по созданию http сервиса (часть третья). Передача нескольких параметров в http сервис, a также формирование сложных JSON строк.

Скачать исходный код

Наименование Файл Версия Размер
Учимся создавать http сервис (часть третья). Передача нескольких параметров в http сервис.
.cf 14,36Kb
10
.cf 14,36Kb 10 Скачать

На прошлых уроках Учимся создавать http-сервисы (часть первая) , Учимся создавать http сервисы (часть вторая). Передача параметра в http сервис , мы с вами научились создавать http  сервис, научились передавать один параметр в сервис. Сегодня мы разберем вопрос о том, как передавать несколько параметров в http сервис, а так-же немного поработаем с формированием JSON строки.

Цель:

-Научится передавать сколько угодно параметров в http сервис.

-Научится собирать сложные JSON строки.

 

Прежде чем начнем разбирать вопрос по передаче параметров, подготовим несколько объектов метаданных для демонстрации.

-Добавим справочник «Склады»

-Добавим справочник «Контрагенты»

-Добавим документ «РеализацияТоваровУслуг»

Реквизиты шапки:

-Контрагент (спр. Ссылка «Контрагенты»)

-Склад (спр. Ссылка «Склады»)

Табличная часть «Товары»

Реквизиты табличной части:

-Номенклатура (спр. «Номенклатура»)

-Цена (Число 15,2)

-Количество (Число 15,3)

-Сумма (Число 15,3)

 

Сохраним все изменения и обновим конфигурацию базы данных.

Зайдем в режим предприятия и добавим несколько складов, контрагентов и документов.

 

 

Постановка задачи:

Необходимо получить документы в JSON формате за период с Даты1 по Дата2.

Из задачи следует, что нам нужно передать два параметра в http запрос, начальную дату и конечную дату.

-Откроем ветку «Общие» - «HTTP сервисы»

-Создадим новый http сервис «РаботаСДокументами»

-Установим корневой URL documents

 

 

-Перейдем на закладку «ШаблоныURL»

-Добавим новый шаблон «ПолучитьРасходныеДокументыЗаПериод». Настроим шаблон /get_documents_from_date_to_date/. Как помним из второго урока, параметры записываются в фигурных скобках, установим параметр /get_documents_from_date_to_date/{beginDate}. Установили первый параметр. Установим второй параметр /get_documents_from_date_to_date/{beginDate}/{endDate}. Таким образом мы установили два параметра.

Можно было уставить их немного по другому, добавить дополнительное пояснение в шаблоне, о том что это за параметры, например так: /get_documents_from_date_to_date/beginDate/{beginDate}/endDate/{endDate}.

Давайте в нашей задаче остановимся на первом варианте.

Итак мы имеем шаблон: /get_documents_from_date_to_date/{beginDate}/{endDate}. Таким образом мы научились передавать два параметра в http запрос.

 

 

-Добавим новый метод «ПолучитьДокументы»

 

-Перейдем в обработчик

-Получим значения параметра {beginDate} и {endDate} (если забыли, смотрим вторую часть infostart.ru/1c/articles/1296740/)

-Преобразуем наши параметры в тип «Дата», при помощи функции Дата()

 

-Перейдем в общий модуль «ОбщегоНазначения» и в нем напишем функцию «ПолучитьJSONСтрокуДокументов», которая возвращаем json строку – информацию по документам.

 

-Вызываем эту функцию из обработчика и передаем в нее два параметра НачалоПериода и КонецПериода.

-JSON строку устанавливаем в «Ответ»

 

 

-Публикуем http сервис. Запускаем программу 1С из под администратора. Меню Администрирование – Публикация на веб сервере. Публикуем http сервис. Подробное описание тут infostart.ru/1c/articles/1293341/

 

-Открываем браузер. Собираем строку подключения с параметрами. В моем случае эта строка будет иметь такой вид: http://localhost/my_name/hs/documents/get_documents_from_date_to_date/20201001/20201002

-В браузере проверяем результат. Должны увидеть json строку, которую мы сформировали.

 

 

{
"Документы": [
{
"номер": "000000001",
"дата": "2020-10-01T23:15:39",
"id": "613f40d0-0422-11eb-85d6-54271ef75e0a",
"Товары": [
{
"id_товара": "b427820a-fc3e-11ea-85d4-54271ef75e0a",
"наименование": "Печенье",
"количество": 20,
"сумма": 1200
},
{
"id_товара": "b427820b-fc3e-11ea-85d4-54271ef75e0a",
"наименование": "Вентилятор",
"количество": 15,
"сумма": 15000
},
{
"id_товара": "613f40cd-0422-11eb-85d6-54271ef75e0a",
"наименование": "Номенклатура 2",
"количество": 2,
"сумма": 10000
}
]
},
{
"номер": "000000002",
"дата": "2020-10-01T23:16:29",
"id": "613f40d1-0422-11eb-85d6-54271ef75e0a",
"Товары": [
{
"id_товара": "b427820a-fc3e-11ea-85d4-54271ef75e0a",
"наименование": "Печенье",
"количество": 20,
"сумма": 1200
},
{
"id_товара": "613f40cd-0422-11eb-85d6-54271ef75e0a",
"наименование": "Номенклатура 2",
"количество": 10,
"сумма": 10000
},
{
"id_товара": "613f40ce-0422-11eb-85d6-54271ef75e0a",
"наименование": "Номенклатура 3",
"количество": 3,
"сумма": 300
}
]
},
{
"номер": "000000003",
"дата": "2020-10-01T23:17:05",
"id": "613f40d2-0422-11eb-85d6-54271ef75e0a",
"Товары": [
{
"id_товара": "613f40cf-0422-11eb-85d6-54271ef75e0a",
"наименование": "Номенклатура 4",
"количество": 4,
"сумма": 2000
}
]
}
]
}

 

 

На этом уроке мы научились передавать два параметра в http сервис.

Аналогично можно передавать множество параметров, по шаблону

Ip адрес / Имя публикации / hs / корневой каталог / шаблон / {Параметр1}/{Параметр2}/ … / {Параметр N}.

Всего хорошего.

При реализации данного функционала была использована платформа 1С:Предприятие 8.3 (8.3.12.1567).

http web json

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15981    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17977    9    15    

13

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16509    42    49    

23

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12927    31    8    

11

Интеграция с Onliner.by API

WEB-интеграция Прайсы Платформа 1С v8.3 1С:Управление торговлей 11 Беларусь Платные (руб)

Расширение для добавления товаров, обновления цен на площадку Onliner.by.

8160 руб.

21.11.2019    16934    6    5    

9

Драйвер облачной кассы для Бизнес.РУ Чеки

ККМ WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Универсальный драйвер для фискализации чеков для сервиса Бизнес.РУ. Чеки (https://online-check.business.ru/). Работает с любой кассой, подключенной к сервису, в том числе и без физической кассы (Аренда облачной ККТ в датацентре). Принцип работы аналогичен наличию физической кассы, подключенной к рабочему месту 1С. Фискализация выполняется с любого рабочего места через интернет. Нет ограничений на количество рабочих мест, касс, компьютеров. Поддерживает печать с нескольких рабочих мест на одну кассу. Работает в любой операционной системе (Windows, Linux) и в любом клиенте (Тонкий, Толстый, Web, Мобильный клиент).

6000 руб.

03.06.2021    13098    10    0    

7

Contragent+ 9.1 для 1С 8.2/8.3

Обмен с ГосИС Взаиморасчеты WEB-интеграция Платформа 1С v8.3 Платформа 1C v8.2 Конфигурации 1cv8 Платные (руб)

Универсальная обработка для экспресс-регистрации новых и обновления реквизитов существующих элементов справочников «Контрагенты» & «Организации» по данным Федеральной Налоговой Службы РФ (ЕГРЮЛ&ЕГРИП). Минимизация ручного ввода и соответствие данных 1С учредительным сведениям юр. лиц & ИП.

3600 руб.

13.12.2012    92268    175    308    

252

Мобильная торговля для Android

Розничная торговля WEB-интеграция Мобильная разработка Мобильная платформа Управленческий учет Платные (руб)

Сис­те­ма поддержки мо­биль­ной тор­гов­ли это про­грам­м­ный ком­плекс, раз­ра­бо­тан­ный для ав­то­ма­ти­за­ции ра­бо­ты тор­го­вых пред­ста­ви­те­лей, за­ни­ма­ю­щих­ся сбо­ром за­ка­зов на смартфонах в точ­ках роз­нич­ной тор­гов­ли, про­да­жей то­ва­ра с ко­лес и мер­чен­дай­зин­гом.

4800 руб.

19.02.2008    42171    23    24    

40
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1304317 02.10.20 12:10 Сейчас в теме
Спасибо! Вы супер ментор по HTTP))
2. acvatoris 532 02.10.20 12:22 Сейчас в теме
Спасибо. Очень приятно такое слышать :)
3. Steelvan 302 02.10.20 12:24 Сейчас в теме
Читайте сарказм между строк, хе-хе, сверх учитель.
4. acvatoris 532 02.10.20 12:31 Сейчас в теме
Добрый день. Если у Вас есть замечания рад выслушать.
15. Greek26rusa 2 27.01.21 23:42 Сейчас в теме
(4)Добрый вечер.Нету примера с POST?:
16. acvatoris 532 31.01.21 18:17 Сейчас в теме
5. script 128 04.10.20 20:02 Сейчас в теме
Здравствуйте. Оформите пж в статье ссылки на предыдущие части для быстрого перехода. И людям удобно и себе читаемость увеличите. Только с третьего раза увидел что они есть.
6. acvatoris 532 04.10.20 21:18 Сейчас в теме
Здравствуйте, ссылки есть. В начале статьи.
Прикрепленные файлы:
7. acvatoris 532 04.10.20 21:19 Сейчас в теме
8. dsdred 3330 04.10.20 21:39 Сейчас в теме
Еще частей 5-10 до метода POST?
9. acvatoris 532 04.10.20 21:44 Сейчас в теме
10. serg-lom89 76 06.10.20 09:00 Сейчас в теме
а как указывать обязательные и необязательные параметры в шаблоне?
14. ltfriend 963 12.10.20 20:32 Сейчас в теме
(10) передавайте параметры, как нормальные люди
http://mysite.com/get_documents?begin=<значение>&end=<значение>;
Если параметр не задан, то его не передавайте.
Для доступа к этим параметрам используйте свойство ПараметрыЗапроса объекта HTTPСервисЗапрос.
Если Запрос.ПараметрыЗапроса.Свойство("begin") Тогда
indefinitum000; 1Cynep4eJIoBek; sashocq; al.gerasimov; user1684575; user729873; user1035175; +7 Ответить
17. Bassgood 1429 16.12.21 19:43 Сейчас в теме
(14) Имеется в виду такой вот шаблон URL сервиса: http://server/documents/{document}/{ref}
Допустим, он должен отрабатывать следующие варианты обращений к нему:
1. get-запрос = http://server/documents/накладные - возвращает список накладных
2. get-запрос = http://server/documents/накладные/123 - возвращает накладную с идентификатором "123"
3. post-запрос = http://server/documents/накладные - создает новую накладную и возвращает ее идентификатор
11. AntoShiK86 29 06.10.20 10:23 Сейчас в теме
Очень доступно. Это будет работать на мобильном устройстве? Можно обмениваться между двумя андройдами списками дела, продуктов или типо чата?
12. TitanLuchs 397 06.10.20 19:09 Сейчас в теме
(11) Работать будет, обмениваться можно.
13. ICeZm 22 12.10.20 14:19 Сейчас в теме
18. kobayoshi 20 29.06.22 12:00 Сейчас в теме
Добрый день. Хочу заметить, что для того, что бы браузер получил json, а не html страничку, нужно указать
Ответ.Заголовки.Вставить("Content-type", "application/json");

перед тем как вернуть Ответ.
kolibrik99; acvatoris; +2 Ответить
19. alexey123perm 19 09.12.23 20:34 Сейчас в теме
На платформе 8.3.23.1912 перестала работать строка
ЗаписатьJSON(записьJSON, структура, новый НастройкиСериализацииJSON ,"ФункцияПреобразованияЗаписи");


Решение:
Заменить на строку:
ЗаписатьJSON(ЗаписьJSON, Структура, Новый НастройкиСериализацииJSON, "ФункцияПреобразованияЗаписи", Вычислить("ОбщегоНазначения"));


Т.е. сейчас нужно указать, в каком модуле находится функция преобразования
shusha9951; acvatoris; +2 Ответить
Оставьте свое сообщение