Каталог решений - Работаем с сервисом подсказок на формах: dadata.ru

Работаем с сервисом подсказок на формах: dadata.ru

Работаем с сервисом подсказок на формах: dadata.ru

В наличии

Рассмотрим: как можно использовать REST-сервис данного сайта для формирования списка выбора.

Категория:

Описание

Публикация устарела в связи с изменениями API на сайте dadata.ru

 

Сервис dadata.ru позволяет получать подсказки по ФИО и по Адресам. У него есть довольно неплохо описанный API. Мы Рассмотрим, как с помощью него можно вывести подсказку в ФИО. 

Данными с сайтом можно обмениваться в двух форматах: 

  1. XML
  2. JSON

Я решил делать в xml, как в более используемом в 1С. Итак, для начала создадим новую пустую конфигурацию, со справочником Физлица, и так же создадим XDTO схему:

схема XDTO

Создадим форму элемента справочника Физлица.

Основной функцией у нас будет: ПолучитьОбъектXDTO, в которую мы будем передавать набираемый текст (Обратите внимание, что вы должны передавать в параметрах ваш код авторизации, который вы можете получить свободно на сайте).

&НаКлиенте
Функция ПолучитьОбъектXDTO(Текст, КоличествоПодсказок = 10)
	
	HTTPЗапрос = Новый HTTPЗапрос();
	HTTPЗапрос.АдресРесурса = "/api/v2/suggest/fio";
	
	HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/xml");
	HTTPЗапрос.Заголовки.Вставить("Accept", "application/xml");
	HTTPЗапрос.Заголовки.Вставить("Authorization", "ВАШ КОД АВТОРИЗАЦИИ");
	HTTPЗапрос.УстановитьТелоИзСтроки("" + Текст + "" +  КоличествоПодсказок + "");
	
	Соединение = Новый HTTPСоединение("dadata.ru",,,,Новый ИнтернетПрокси,, Новый ЗащищенноеСоединениеOpenSSL);
	
	ОтветHTTP = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
	
	Тело = ОтветHTTP.ПолучитьТелоКакСтроку();	
	Если Тело = "" Тогда
		Возврат Ложь;
	Иначе
		структурныйТип = ФабрикаXDTO.Тип("http://www.sample-package.org", "SuggestFioResponse"); 
		
		МойXML = Новый ЧтениеXML;
		МойXML.УстановитьСтроку(Тело);
		ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(МойXML, структурныйТип);
		
		Возврат ОбъектXDTO;
	КонецЕсли;
	
КонецФункции
has been added to your cart:
Оформление заказа