|
Http-Сервисы:Обмен данными | ☑ | ||
---|---|---|---|---|
0
applesound
08.07.20
✎
11:22
|
Добрый день.
Настраиваю выгрузку контрагентов из БП в УТ с помощью http-сервиса по заданному ИНН. На стороне БП: Http-сервис Имя: Exchange Синоним: Exchange Корневой URL: Exchange Шаблон URL Имя: GetAnyRequest Синоним: GetAnyRequest Шаблон: /GetAnyRequest Метод Имя: POST Синоним: POST HTTP-метод: POST Обработчик: Функция GetAnyRequestGET(Запрос) JSON_Struktura = Запрос.ПолучитьТелоКакСтроку("UTF-8"); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(JSON_Struktura); ЗапросПараметры = ПрочитатьJSON(ЧтениеJSON); ЧтениеJSON.Закрыть(); Запрос = Новый Запрос; Запрос.Текст = ЗапросПараметры.Запрос; Для Каждого СтрСтр Из ЗапросПараметры.Параметры Цикл Результат = ""; Значение1 = СтрЗаменить(СтрСтр.Значение,";",""); //запрет кода 1с с двумя и более операторами Выполнить("Результат = " + Значение1); Запрос.УстановитьПараметр(СтрСтр.Ключ,Результат); КонецЦикла; ТЗ = Запрос.Выполнить().Выгрузить(); Текст = ЗначениеВСтрокуВнутр(ТЗ); Ответ = Новый HTTPСервисОтвет(200); Ответ.УстановитьТелоИзСтроки(Текст); Возврат Ответ; КонецФункции /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// На стороне УТ. Обработка Реквизиты: ИмяКомпьютера (тип.строка) ИНН (тип.строка) Команда: Получить //Пишем процедуру обращения к HTTP- сервису. //Описываем запрос который будет выполнен в другой базе. //Заворачиваем запрос в JSON. //Делаем POST-запрос к адресу http-сервиса. //Получаем текст из тела ответа. //Преобразуем ее в Таблицу значений методом ЗначениеИзСтрокиВнутр. &НаКлиенте Процедура Получить(Команда) ПолучитьНаСервере(); КонецПроцедуры &НаСервере Процедура ПолучитьНаСервере() //Реквизиты обработки РеквизитИмяКомпьютера = Строка(Элементы.ИмяКомпьютера); РеквизитИНН = Строка(Элементы.ИНН); //Описываем запрос который будет выполнен в другой базе. ТекстЗапроса = "ВЫБРАТЬ | Контрагенты.Наименование, | Контрагенты.ИНН, | Контрагенты.НаименованиеПолное |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.ИНН = &ИНН"; Стр = Новый Структура; Стр.Вставить("Запрос", ТекстЗапроса); Параметры1 = Новый Структура; Параметры1.Вставить("ИНН","РеквизитИНН"); Стр.Вставить("Параметры",Параметры1); //Заворачиваем запрос в JSON. ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, Стр); СтрокаJSON = ЗаписьJSON.Закрыть(); //Делаем POST-запрос к адресу http-сервиса. Пользователь = "admin"; Пароль = "123"; Запрос = Новый HTTPЗапрос; Запрос.АдресРесурса = "/GetAnyRequest"; Запрос.УстановитьТелоИзСтроки(СтрокаJSON, "UTF-8"); //Получаем текст из тела ответа. Соединение2 = Новый HTTPСоединение(РеквизитИмяКомпьютера+"/BPdemo/hs/Exchange",,Пользователь,Пароль); ОтветHTTP = Соединение2.ОтправитьДляОбработки(Запрос); //Преобразуем ее в Таблицу значений методом ЗначениеИзСтрокиВнутр. ТекстТЗ = ОтветHTTP.ПолучитьТелоКакСтроку(); Если ЗначениеИзСтрокиВнутр(ТекстТЗ) Тогда ТЗ2 = ЗначениеИзСтрокиВнутр(ТекстТЗ); Для Каждого Стр Из ТЗ2 Цикл Сообщить(Стр.Код + " " + Стр.Наименование+ " " + Стр.Наименование); КонецЦикла; КонецЕсли; КонецПроцедуры /////////////////////////////////////////////////////////////////////////////////////////////////////// При попытке получить контрагента получаю ошибку: Ошибка работы с Интернет: Couldn't resolve host name {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(50)}: ОтветHTTP = Соединение2.ОтправитьДляОбработки(Запрос); {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(10)}: ПолучитьНаСервере(); по причине: Ошибка работы с Интернет: Couldn't resolve host name В чем может быть беда? Где не досмотрел? Большую часть материала взял из http://catalog.mista.ru/public/955078/ |
|||
1
Garykom
гуру
08.07.20
✎
11:25
|
(0) КПП не досмотрел
|
|||
2
Волшебник
модератор
08.07.20
✎
11:32
|
Couldn't resolve host name
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |