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

19.10.15

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

В данной статье вы увидите пример, как можно с помощью 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()

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

Источник

См. также

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

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

5040 руб.

04.05.2021    19063    10    16    

16

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

Подсистема интеграции Amo CRM с 1С: технические требования, порядок работы, возможности, доработки и обновления. Бесплатный период техподдержки - 1 месяц.

60000 руб.

07.05.2019    31913    62    41    

23

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

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

36000 руб.

03.08.2020    16798    15    19    

15

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

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

12000 руб.

02.02.2021    17031    45    49    

26

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

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

22656 руб.

25.05.2021    13398    36    8    

15

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    87436    26    51    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. by_1Cnik 236 19.10.15 13:02 Сейчас в теме
Рабочая идея. Главное - нужная.+
baracuda; PolPi; +2 Ответить
2. infostart user 20 19.10.15 14:31 Сейчас в теме
3. kiruha 388 19.10.15 16:35 Сейчас в теме
Интересно, но используется 8.3 в коде. На 8.2 можно отредактировать ?
4. d.alexandr 407 19.10.15 16:50 Сейчас в теме
(3) не получится, так как HTTP-запросы появились в 8.3. Разве что форму сделать как HTML документ и использовать javascript.
5. vandalsvq 1574 19.10.15 19:32 Сейчас в теме
(4) winhttprequest можно использовать хоть в 8.1, парсер/сериализатор JSON есть здесь на ИС. Так что можно реализовать и в более ранних версиях платформы. Никакого js не понадобится
6. d.alexandr 407 19.10.15 19:58 Сейчас в теме
(5) так дело ж не в парсере, а в HTTP-запросе.
7. vandalsvq 1574 21.10.15 03:26 Сейчас в теме
(6) я же написал winhttprequest - вот тебе объект для выполнения запросов.
12. d.alexandr 407 21.10.15 11:56 Сейчас в теме
(7) извините, сразу не увидел)
8. webester 26 21.10.15 06:21 Сейчас в теме
(4) я вот это юзал еше в 8.1 или я чего то не понял?
10. d.alexandr 407 21.10.15 11:28 Сейчас в теме
(8) да, действительно можно сделать и так (спасибо что подсказали), единственный минус что постоянно будет происходить запись в файл.
9. Evgeniy762004 21.10.15 10:09 Сейчас в теме
У меня почему-то ругается на getAPIKeyGoogle(). Мол нет такой функции. Версия платформы - 8.3.6.2014. И подскажите пожалуйста какой из пунктов из Google Maps APIs использовать для получения нужного ключа?
11. d.alexandr 407 21.10.15 11:32 Сейчас в теме
(9) это функция которая возвращает ключ API:
Функция getAPIKeyGoogle()

Возврат "Ваш ключ API";

КонецФункции // getAPIKeyGoogle()

Почитайте документацию по Google Places API Web Service
17. Программулькин 301 21.10.15 12:15 Сейчас в теме
(11)
Есть реальный готовый пример?
а то
"error_message" : "This service requires an API key.",
"predictions" : [],
"status" : "REQUEST_DENIED"
не айс....а читать "Почитайте документацию по Google Places API Web Service"
пока ленно... а попробовать охота...
18. d.alexandr 407 21.10.15 12:48 Сейчас в теме
(17) извините, но свой ключ я здесь публиковать не буду и на это есть причины. А в чем сложность прочитать здесь документацию https://developers.google.com/places/web-service/intro?hl=ru#Authentication и создать свой ключ? Это займет максимум 10 минут.
13. Программулькин 301 21.10.15 12:05 Сейчас в теме
Ог(9) Evgeniy762004,
Ога, тоже "на getAPIKeyGoogle()" ругается, автор хде на getAPIKeyGoogle() ??
15. d.alexandr 407 21.10.15 12:13 Сейчас в теме
(13) выше уже описал, что это всего лишь функция которая возвращает ваш api ключ
14. Зеленоград 21.10.15 12:11 Сейчас в теме
А для стабильной платформы есть аналогичное?
16. d.alexandr 407 21.10.15 12:14 Сейчас в теме
(14) все зависит от того какая для вас платформа стабильная? я например сейчас работаю с 8.3.5.1248
20. Зеленоград 21.10.15 12:59 Сейчас в теме
21. d.alexandr 407 21.10.15 13:03 Сейчас в теме
(20) я уже и забыл что есть такая платформа как 7.7))
maksa2005; deutsch2008; +2 Ответить
19. d.alexandr 407 21.10.15 12:54 Сейчас в теме
если вдруг кто-то не понял, getAPIKeyGoogle() это функция которая возвращает строку с API key, то есть можно написать так:
ПреобразованныйАдрес = "/maps/api/place/autocomplete/json?input=" + пАдрес + "&types=address&language=ru&key=" + "Ваш API key";
22. gradi 5 22.10.15 10:04 Сейчас в теме
Что бы данный пример заработал, необходимо активировать "Google Places API Web Service" в консоли разработчика Google.
23. vitalya24 239 02.12.15 01:23 Сейчас в теме
Клево, прикрутил за 20 минут:) спасибо
24. alexdarh 13 29.08.16 16:50 Сейчас в теме
Добрый день! использовал приведенный код из примера. Все работает, кроме того, что после ввода символа первого и вывода спискавыбора поле очищается, то есть 2,3 и более не ввести.
1С 8.3.8 УФ
25. deutsch2008 27.12.16 11:44 Сейчас в теме
Процедура или функция с указанным именем не определена (getAPIKeyGoogle)
26. d.alexandr 407 27.12.16 19:15 Сейчас в теме
(25) смотрите сообщение выше, это функция которая возвращает апи ключ, в каждого он будет свой.
27. gorakh 26 10.02.21 11:49 Сейчас в теме
Все работает. Конфигурация на обычных формах платформа 8.3.17 режим совместимости 8.3.5. Только запрос идет после ввода каждого символа. А можно ли сделать так как это работает в конфигураторе в строке поиска объекта метаданных в дереве. Запрос после остановки ввода, или после каждого слова?
28. zzhiraf_ 73 17.11.23 17:45 Сейчас в теме
Обработка работает. Хотя сейчас не очень легко найти, привязать карточку и активировать Google Places API Web Service. Но есть ограничение - гугл не находит маленькие российские города.
Оставьте свое сообщение