Как легко заполнить адрес без ошибок? Интеграция с сервисом kladr-api.ru

24 5

Довольно часто в организации приходится заполнять карточки организаций, контактных лиц или персон. И один из реквизитов, который должен быть заполнен – это почтовый или юридический адрес. От корректности и правильности заполнения адреса зависит, например, каким в итоге будет сформирован конверт для отправки корреспонденции в модуле Канцелярия.

Процесс заполнения адреса может быть довольно трудоемким. Дополнительно существует риск, что адрес будет внесен ошибочно в следствие человеческого фактора. Это обуславливается отсутствием централизованной базы адресов, вроде ФИАС или КЛАДР, в поставке DIRECTUM.

К счастью, в интернете существует довольно много сервисов, которые предоставляют возможность подбирать адрес по ключевым словам. Одним из таких является сервис kladr-api.ru. Он дает возможность производить поиск города, улицы, номера дома. Также сервис является бесплатным для некоммерческого использования.

Интересным, на мой взгляд, показалась возможность возвращать данные по введенному почтовому индексу. В частности, по индексу может быть однозначно определен город, область или край, а также район, к которому относится индекс. А дальше – больше. Можно получить список улиц, относящихся к полученному населенному пункту, а также список строений.

Рисунок 1 Выбор улицы

Все вышеописанное удалось оформить в простенький диалог. Пользователь вводит индекс и отправляет запрос на сервис. Ответ приходит в виде JSON объекта. Далее происходит разбор JSON и получение нужных нам данных, таких как регион, округ или район и город. Далее необходимо выбрать улицу. Важным будет замечание, что сервис позволяет выбрать только те улицы, которые закреплены за конкретным индексом. После указания улицы идет поиск номеров строений. В заключение остается ввести номер квартиры или офиса. На выходе мы получаем объект, который содержит все данные, необходимые для формирования строки адреса. Остается только чуть доработать под необходимую пользователю логику, например, подстановку в реквизит.

Рисунок 2 Выбор номера строения

Бесплатная версия сервиса имеет ограничение – 100000 запросов в день. Разработчики объясняют это заботой о производительности системы. Помимо этого, в ходе работы над диалогом я выяснил, что в запросе возвращается не более 400 строк. Поэтому список номеров строений может быть не полным. В этом случае пользователь может ввести номер строения самостоятельно.

Рисунок 3 Результат работы.

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

Прикреплен файл: Интеграция с kladr-api_ru.zip

24
Авторизуйтесь, чтобы оценить материал.
4
Евгения Сарварова

Более года назад были внесены правки в требования об указании адресов в счетах-фактурах: адреса должны вестись в соответствии с ЕГРЮЛ. У заказчиков встал вопрос как обеспечить это соответствие. Загрузка всей базы КЛАДР в систему привела бы к тому, что, во-первых, данные заняли бы ооочень много места, а во-вторых, данные надо было бы поддерживать в актуальном состоянии.

Александр, правильно ли я понимаю, что разработанный вами механизм взаимодействия с КЛАДР НЕ требует хранения всей базы КЛАДР в системе? Если это так, то решение отличное!

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

Александр Волошин

Евгения, для работы диалога нужен только доступ в интернет. Все данные хранятся на сервисе. Насчет поиска по городу. Думаю, что можно. Я выбрал самый оптимальный, на мой взгляд, вариант подбора адреса, который требует минимум запросов к сервису. В Ваших руках модифицировать диалог под Ваши потребности на основе справки сервиса и кода в диалоге.

Александр Волошин: обновлено 26.10.2018 в 12:40
Евгения Сарварова

Александр, спасибо за пояснение!

Марина Швецова

Вопрос, ЧЕМ обуславливается отсутствие централизованной базы адресов, вроде ФИАС или КЛАДР, в базовой поставке DIRECTUM.... Очень жаль, что в СЭД, в которой предусмотрена работа с адресами, данный функционал не включен как БАЗОВЫЙ и заказчикам надо придумывать и дорабатывать функционал самим...

Марина Швецова: обновлено 26.10.2018 в 13:46
Елена Питомцева

Интересное решение по нормализации адресов через сервис Почты России                     

Авторизуйтесь, чтобы написать комментарий