Код универсального HTTP-запроса

Публикация № 1691675 08.07.22

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

HTTP HTTPS JSON HTTP-запрос HTTPS-запрос сертификаты токен

Код предназначен для того, чтобы не читать каждый раз справку по методам 1С, а иметь под рукой готовый шаблон, где можно поменять параметры в соответствии со своими целями...

Вообще, задача написания HTTP-запроса - простая, и многие делали это примерно так:

	Сайт = Новый HTTPСоединение("127.0.0.1" ,);
	HTTPЗапрос = Новый HTTPЗапрос("/DB/hs/ABCForWebSite/GetABCGroupsFromWebSite/A");

	Ответ = Сайт.Получить(HTTPЗапрос);

Недостаток данного метода в том, что это может быть не http, а https-соединение, сайт может просить сертификаты и (или) токен.

В результате, приходится открывать справку и смотреть параметры всех этих методов. Но потом все забываешь, пишешь по-старому, а потом когда встретилась необычная задача снова читаешь справку или ищешь свой старый код.

Я отладил код универсального запроса, который можно скопировать отсюда, и менять там только параметры - те, которые потребуются по условию задачи. Код делает запрос к локальному (но можно и в сети Интернет) сайту вида:

https://db.apelsin.ru/ApelsinRu_UT_ForSite/hs/ABCForWebSite/GetABCGroupsFromWebSite/A/

Используются сертификаты и пустой токен. Ответ возвращает в Структуре 3-хмерный массив с произвольным числом элементов, который я помещаю в Таблицу значений с произвольным числом элементов и 3-я колонками:

Пример json-файла ответа и кода 1С для разбора файла-ответа от сайта:

{
"МассивСоответсвийГруппИКодовНоменклатуры": [
[
"030043226",
"Master Flash",
"Master Flash"
],
[
"030043227",
"Master Flash",
"Master Flash"
],
[
"030043228",
"Master Flash",
"Master Flash"
],
[
"030043232",
"Master Flash",
"Master Flash"
],
[
"030043233",
"Master Flash",
"Master Flash"
],
[
"030043234",
Токен               = "";
АдресСкрипта        = "/ApelsinRu_UT_ForSite/hs/ABCForWebSite/GetABCGroupsFromWebSite/A";
HTTPСоединение      = "db.apelsin.ru";

ЗаголовокЗапросаHTTP = Новый Соответствие();
ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");
ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer " + Токен);
	
SSLL            = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows());
HTTPСоединение  = Новый HTTPСоединение(HTTPСоединение, 443, , , , , SSLL,);
HTTPЗапрос      = Новый HTTPЗапрос(АдресСкрипта, ЗаголовокЗапросаHTTP);
	
Ответ = HTTPСоединение.Получить(HTTPЗапрос);
	
ЧтениеJSON = Новый ЧтениеJSON; 
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
Структура = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
	
Для Каждого Элемент из Структура Цикл 
   //Сообщить(Элемент.Ключ + ": " + Элемент.Значение); 
КонецЦикла;
	
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Код");	
ТЗ.Колонки.Добавить("Родитель");	
ТЗ.Колонки.Добавить("Наименование");	
Для Каждого ЭлементМассива Из Элемент.Значение Цикл 
   НоваяСтрока              = ТЗ.Добавить();
   НоваяСтрока.Код          = ЭлементМассива[0];
   НоваяСтрока.Родитель     = ЭлементМассива[1];
   НоваяСтрока.Наименование = ЭлементМассива[2];
КонецЦикла; 

 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1236 08.07.22 17:38 Сейчас в теме
Откройте для себя Коннектор
https://infostart.ru/1c/articles/709325/
https://github.com/vbondarevsky/Connector
DrAku1a; JohnyDeath; SerVer1C; user1061229; svezr; Angel_19; Perfolenta; user1677685; SP2000; Batman; Evgenij1990; akR00b; 0ct0ber; mysm; user1802663; +15 Ответить
2. user1802663 49 08.07.22 17:42 Сейчас в теме
(1) Это библиотека Python, я так понял? Я в восторге от этого языка. Обязательно почитаю статью.
9. reset2 15 12.07.22 11:18 Сейчас в теме
(2) Нет. Это общий модуль написанный на языке 1С, который содержит в себе в том числе универсальные команды для HTTP-запросов.
13. DrAku1a 1590 16.07.22 08:57 Сейчас в теме
(1) Полезно. И статья тоже.
user1802663; +1 Ответить
3. malikov_pro 1236 08.07.22 17:51 Сейчас в теме
(2) Это реализация на 1С подхода который используется в python
svezr; user1802663; +2 Ответить
4. user1802663 49 08.07.22 18:33 Сейчас в теме
(3) Судя по описанию - огонь! Завтра попробую на практике.
5. user1802663 49 09.07.22 07:58 Сейчас в теме
(3) Проверил. Огонь! 10 минут для копирования модуля, и все работает. Она его разобрала. Код рабочий. Даже ничего исправлять не потребовалось. Спасибо!
6. info1i 208 10.07.22 20:43 Сейчас в теме
Не все так гладко. Если в тексте JSON имя колонки состоит только из цифр, то получаем ошибку на строке:
Структура = ПрочитатьJSON(ЧтениеJSON);

Пример JSON, для которого может быть ошибка:
{"reportDate":"2021-10-26T22:16:47","documentFormatDate":"21.03.2017","documentType":"3","documentFormatVersion":"1.05","document":{"1054":1,"1031":35000,"1042":36,"1021":"Кассир Иванов.И.В","1012":"2021-10-26T15:57:00","1081":0,"1040":19016,"1077":"MQQfLPI9","1018":"7733227397  ","1037":"0004936685029062    ","1105":35000,"1055":4,"1084":[{"1085":"mdlp","1086":"sid00000000405344&"}],"1038":317,"1041":"9280440301212071","1215":0,"1216":0,"1217":0,"1020":35000,"1059":[{"1023":"1.","1079":35000,"1043":35000,"1030":"МАСКА МЕДИЦИНСКАЯ 3-СЛ НА РЕЗИНК","1199":6,"1200":0,"1212":1,"1214":4}],"1209":2}}
7. user1802663 49 10.07.22 21:03 Сейчас в теме
8. user1802663 49 10.07.22 21:15 Сейчас в теме
Понял. Неважно, о каком коде. Ну если поставщик json мы сами, то это не проблема. Если у нас внешний поставщик, то можно его попросить, и он что-то придумает, если он клиентоориентированный. Ну или подумать, что можно сделать, например использовать тот же коннектор или распарсить json или что-то еще возможно есть типовое у 1С. Собственно мне просто нужна памятка и больше по 1-й части кода, которую я могу подправить, и я ей поделился. А тут еще открыл для себя коннектор. Можно еще вопрос решить организационно, например, когда ДАМ не смог перевести время на летнее на айфоне, то решил вопрос в стране организационно, чем помог, хочу заметить, не только себе.
10. h2lion 2 13.07.22 11:35 Сейчас в теме
(6)
Не все так гладко. Если в тексте JSON имя колонки состоит только из цифр, то получаем ошибку на строке:


А если восстановить в соответствие?
11. user1802663 49 13.07.22 11:42 Сейчас в теме
(10) Как раз HTTPКоннектор восстанавливает в соответствие по-моему.
12. h2lion 2 14.07.22 08:25 Сейчас в теме
(11) Зависит от параметров переданных в функцию воссатновления.
Оставьте свое сообщение

См. также

Обмен 1С с порталом госзакупок (ЕИС)

Оптовая торговля WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Обмен с ГосИС Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Государственные, бюджетные структуры Россия Бухгалтерский учет Платные (руб)

Данное расширение позволяет выгрузить универсальный передаточный документ (УПД) и счет-фактуру на портал Госзакупок (44-ФЗ). Выгрузка документов производится из 1С в XML файл для дальнейшей загрузки в ЕИС из 1С Бухгалтерия, редакция 3.0.

18000 руб.

19.08.2022    14717    64    48    

31

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

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

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

6000 руб.

02.02.2021    12533    28    43    

15

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

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

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

11856 руб.

25.05.2021    9467    6    4    

6

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

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

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

6000 руб.

03.06.2021    10578    8    0    

5

Contragent+ 9.1 для 1С 8.2/8.3

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

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

3600 руб.

13.12.2012    88754    173    308    

248

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    22883    7    0    

6

Расширение 1СПАРК риски для 1С:Документооборот 8 КОРП

WEB-интеграция Управление взаимоотношениями с клиентами (CRM) Документооборот и делопроизводство (СЭД) Взаиморасчеты Платформа 1С v8.3 1С:Документооборот Бухгалтерский учет Управленческий учет Платные (руб)

Расширение для конфигурации 1С:Документооборот 8 КОРП, позволяющее с помощью сервиса "1СПАРК риски" проверять благонадежность контрагентов непосредственно из программы 1С.

7200 руб.

23.05.2018    26817    17    7    

14

Sync1C: Синхронизация 1С и OpenCart

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

Внешняя обработка для обмена данными с интернет-магазином OpenCart. Позволяет быстро наполнить магазин товарами, затем обновлять цены и добавлять новые товары. Далее можно средствами OpenCart настраивать и дополнять карточки товаров как надо для магазина, при этом связь товаров с 1С не теряется.

3840 руб.

30.03.2018    39684    73    133    

77

Справочник кодов ТНВЭД

Обработка справочников WEB-интеграция Операции по ВЭД Учет ТМЦ Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием Платные (руб)

Загрузка справочника ТНВЭД в базу данных 1С без изменения конфигурации. База кодов загружается с сайта www.nalog.ru или локального ресурса. После загрузки - справочник всегда под рукой! Реализован поиск по загруженной базе. Доступны примечания для групп справочника (комментарии налогового органа). Дополнительно реализовано занесение кодов ТНВЭД в справочники ИБ (например, справочник Номенклатура) как реквизита или свойства справочника. Подходит для всех стандартных конфигураций (БП 2.0, УПП 1.3, КА 1.1, УТ 10.3, Розница 1 и пр., написанных под обычные формы).

3100 руб.

29.09.2015    51618    13    4    

36

Прайс-лист с фотографиями, выгрузкой в Excel с подсчетом суммы заказа, загрузкой заказа в Управление торговлей 11 (Россия) и Управление торговлей для Беларуси 3

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

Прайс-лист для программы 1С: Управление торговлей 11 и Управление торговлей для Беларуси 3, позволяющий: 1) Формировать прайс-лист с фотографиями; 2) Сохранить прайс-лист в Excel с формулами, подсчитывающими количество и сумму заказа; 3) Передать сформированный прайс-лист по каналу ftp на сайт; 4) Сохранить прайс-лист в формате CSV; 5) Загрузить сделанный по прайс-листу заказ обратно в программу.

6000 руб.

04.09.2014    117736    41    105    

51

Поиск номенклатуры в интернете (Розница 2.3, Управление торговлей 11.4)

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

Альтернатива сервису 1С Номенклатура, не требует подписки ИТС, ищет данные в открытых источниках. Для поиска товара по штрихкоду в сети интернет, полезно для первоначального заполнения базы.

1999 руб.

15.10.2020    15846    20    55    

23

Merlion Commander Версия 1.3.9.2 - июль 2022 г. (Интеграция с 1С: УT, редакция 11.4, 1С:Розница 2.3,1С:ERP Управление предприятием 2, УТ 10.3, редакция веб-сервиса MERLION API 3.0 от 18.08.2021)

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

Расширении конфигурации "Управление торговлей, редакция 11" для работы с веб-сервисом Мерлион с помощью Merlion API. Расширение и набор подключаемых дополнительных обработок позволяет без изменения конфигурации получить возможность работы с API крупнейшего российского дистрибьютора http://merlion.com. Логика работы максимально приближена к работе веб-сервиса b2b. Вы сможете создать и исправить заказ, зарезервировать товар прямо из 1С, посмотреть актуальные остатки и цены, импортировать штрихкода EAN13 товаров, загружать заказ c автоматическим созданием номенклатуры в 1С и корректности создания. Можно выбирать характеристики по товарным группам и загружать товар с выбранными характеристиками, загружать изображения товара. Не требуется установки дополнительного ПО для работы с веб-сервисом. Кроссплатформенное решение для ОС Windows и Linux. Весь код модулей открыт и доступен для просмотра и внесения изменений.

8280 руб.

02.05.2017    36250    39    45    

46

Загрузка Классификатора банков с сайта ЦБ РФ в формат bnk.zip или JSON (новый формат 2021 года) Для Бух3/Ут11/УНФ/ERP

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

При неоформленной подписке на ИТС обновить справочник банков возможно с помощью моей обработки. Она сама закачает данные с сайта и откроет стандартный диалог обновления справочника банков.

3120 руб.

25.04.2017    182382    776    193    

102

Импорт GPS данных СКАУТ - модуль для 1С Предприятие 8

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

Импорт точек перемещения объектов мониторинга (координаты и направление). Регистрация дополнительных сведений (время стоянки, скорость, расход топлива и т.д.). Расширение возможностей типового решения 1С по контролю над перемещением транспорта. Автоматическое заполнение справочников по данным СКАУТ (транспорт, gps-терминалы). Анализ эффективности использования транспорта.

12000 руб.

29.10.2015    24757    11    1    

18