Определение района при заполнении адреса

    Однажды появилась задача получать район (с предварительно заданными границами) по адресу. Ввод адреса осуществлялся с использованием адресного классификатора - в типовых конфигурациях это КЛАДР (в 2018 будет снят с поддержки) или ФИАС. Опираться на данные конкретных домов будет плохим решением, так как по ним в классификаторах много ошибок и частые правки. При этом ФИАС в реализации 1С вообще не содержит идентификаторы домов (эти данные можно получить из полной выгрузки с сайта ФИАС). Простой и при этом рабочий вариант - определение района по улицам (ошибок в классификаторе меньше, аналогично с изменениями). Сложности могут возникнуть с улицами, которые принадлежат нескольким районам.

    Рассмотрим план реализации с использованием API сервиса онлайн карт, дорабатываемая конфигурация - любая из "старого поколения" (УПП 1.3 / КА 1.1 / УТ 10.3). В данном случае использовались Яндекс карты - можно воспользоваться аналогичным сервисом от Google, OSM, Mail.RU, 2GIS - в любом из вариантов нужно внимательно читать лицензионное соглашение. В режиме конфигуратора добавим справочник "Районы города" (в нём будут храниться координаты вершин полигона) и непериодический регистр сведений "Соответствие районов КЛАДР" (с измерениями - код КЛАДР и границы диапазона номеров домов, ресурс - район типа "Районы города").

Районы города

Следует отметить, что измерение код КЛАДР добавленного регистра логически соответствует улице (в терминах классификатора "тип адресного элемента" = 5).

Соответствие районов КЛАДР


В режиме предприятия заполним регистр сведений "Адресный классификатор" и создадим необходимые районы путем задания координат вершин полигонов.

Определение района


Для заполнения соответствия улиц КЛАДР и районов воспользуемся следующей техникой: определим для каждой улицы из КЛАДР некоторые координаты (например, центра улицы с помощью геокодера от Яндекс) и проверим вхождение данных координат в полигоны районов; для "нестандартных" улиц (больших по протяженности относительно площади районов, улиц со "сложной схемой" и т.п.) вручную уточним соответствие путем задания границ диапазонов номеров домов.

Определение района для списка улиц

Регистр соответствия после заполнения:



Остается добавить логику определения района по выбранному коду КЛАДР и номеру дома (например, при задании адреса через обработку "РедактированиеКонтактнойИнформации").


Комментариев нет:

Отправить комментарий