Каталог решений - Автозаполнение адресов в 1С (API Google autocomplete place)

Автозаполнение адресов в 1С (API Google autocomplete place)

Автозаполнение адресов в 1С (API Google autocomplete place)

В наличии

В данной статье вы увидите пример, как можно с помощью API Google autocomplete place делать подсказки при заполнении адреса

Категория:

Описание

В данной статье мы разберем, как можно с помощью API Google Адресов делать подсказки при заполнении адресов в 1С, например, в заказе клиента «Адрес доставки».
С документацией от google вы можете ознакомиться здесь

Первое, что нам нужно сделать — это получить API key, как это сделать, вы сможете прочитать в документации от гугл, к сожалению, в гугл есть лимит на использования API, и изначально этот лимит 1000 запросов в день, что очень мало, но после подтверждения личности лимит увеличивается до 150000 запросов в день, чего более чем достаточно.

Для того, чтобы у нас в поле «Адрес» появлялись подсказки при вводе текста, на поле необходимо установить событие «АвтоПодбор».

&НаКлиенте
Процедура АдресАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

Если ЗначениеЗаполнено(Текст) Тогда
autocompletePlaceGoogle(Текст, ДанныеВыбора, СтандартнаяОбработка); 
КонецЕсли;

КонецПроцедуры

Теперь самое основное, опишем процедуру autocompletePlaceGoogle.

Процедура autocompletePlaceGoogle(пАдрес, списокАдресов, СтандартнаяОбработка) Экспорт

СтандартнаяОбработка = Ложь;
//&components=country:ua отбор по стране
ПреобразованныйАдрес = "/maps/api/place/autocomplete/json?input=" + пАдрес + "&types=address&language=ru&key=" + getAPIKeyGoogle();

Соединение = Новый HTTPСоединение("maps.googleapis.com",,,,,,Новый ЗащищенноеСоединениеOpenSSL);

ОтветСервера = Соединение.Получить(Новый HTTPЗапрос(ПреобразованныйАдрес)).ПолучитьТелоКакСтроку();

JSON = Новый ЧтениеJSON;
JSON.УстановитьСтроку(ОтветСервера);

jsonОтвет = ПрочитатьJSON(JSON);

Если НЕ jsonОтвет.Свойство("predictions") ИЛИ НЕ jsonОтвет.Свойство("status") Тогда 
Возврат;
КонецЕсли;

predictions = jsonОтвет.predictions;
status = jsonОтвет.status;

Если status <> "OK" Тогда 
Возврат;
КонецЕсли;

списокАдресов = Новый СписокЗначений;
Для Каждого найденныйАдрес ИЗ predictions Цикл

списокАдресов.Добавить(найденныйАдрес.description);

КонецЦикла; 

КонецПроцедуры // Autococomplete()

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

Источник

has been added to your cart:
Оформление заказа