ГАР БД ФИАС или очень полная БД ФИАС
01.06.2020 ИФНС опубликовала новый формат выгрузки данных
17.12.2020 Мягко намекнула, что в 2021 будет использоваться только он
01.09.2021 Это свершилось: теперь просто «полная БД ФИАС» перестала обновляться и требуется использовать ГАР БД ФИАС
Частично импортируем ГАР БД ФИАС в MySQL на PHP.
Новость, мягко говоря, не очень, для тех кому нужно получить иерархию улиц и список домов с почтовыми индексами, особенно учитывая, что КЛАДР до сих жив. А не очень из-за того, что файлик данных с 12Гб резко пополнел до 28Гб. Конечно, можно возразить, что скачал один раз и по чуть-чуть обновляйся. Да, можно, если хранить нужные файлы данных целиком и постоянно накатывать на них обновления, но. наличие багов (даже в полной версии) добавит радости.
Таблица gar_addr, ключевое поле id. Иерархию определяют указывающие на него owner_adm и owner_mun. Субъекты РФ (и Байконур) имеют level=1, owner_adm=owner_mun=0. Содержит информацию о названиях адресных объектов (NAME, TYPENAME) и говорящие за себя OKATO, OKTMO, KLADR. OBJECTGUID, ранее в ФИАС именовался AOGUID, является идентификатором адресного объекта (уникальный для актуальных записей; не уникальный, если используются исторические устаревшие записи). OBJECTID аналогичен по значению OBJECTGUID, но уже целочисленный.
Импорт и частичное описание структуры.
Всё описанное ниже реализовано в исходниках.
a) Прежде чем начать, проверим zip файл. Убедимся, что он похож на нужный нам и в нём хотя бы есть файлы as_addr_obj. для каждого интересующего нас региона.
Ранее в ФИАС был один файл со всеми регионами, теперь данные о каждом регионе в своей директории.
b) Импортируем файлы AS_ADDR_OBJ_(дата)_(идентификатор).XML, содержащие информацию об адресных объектах.
e) Проиндексируем дома по OBJECTID и убедимся, что все записи уникальны.
f,g) Настало время создать иерархию. Анализируем файлы AS_ADM_HIERARCHY_. и AS_MUN_HIERARCHY_. отбирая только актуальные записи. Пара OBJECTID и PARENTOBJID указывает на OBJECTID объекта.
В этих файлах собрана информация по всем объектам региона. В моём случае PARENTOBJID может быть только адресный объект, но реально в PARENTOBJID может быть и дом. Дочерним у него будет является, например, квартира (файлы AS_APARTMENTS_. ).
h) Проиндексируем gar_addr по owner_adm и owner_mun
ГАР, полная выгрузка
В файле AS_ADDR_OBJ_20210906_2a908987-3309-454e-9364-b75afd551e12.XML
есть объект с ISACTUAL=»1″ ISACTIVE=»1″
однако, его OBJECTID=»95254004″ вообще не встречается в AS_ADM_HIERARCHY_20210906_221e769c-cfac-4af6-9a20-04cc9c2e1fe5.XML AS_MUN_HIERARCHY_20210906_214fdb76-13c8-49cf-90ef-b5f05c4ee6df.XML
Надеяться, что дом обычно расположен на конкретной улице и owner_adm должен совпадать с owner_mun не получится. Крайне малое количество домов имеют разных владельцев, например один и тот же дом «Х»:
Башкортостан, Уфимский р-н, Зубовский с/с, д. «Х»
Башкортостан, Уфимский м.р-н, с.п. Зубовский сельсовет, тер. СНТ Авиатор, ул N1, д. «Х»
k) Настало время заполнить OKATO, OKTMO и KLADR. Информация о них в файле AS_ADDR_OBJ_PARAMS_. и надо выбрать VALUE из актуальных записей соответствующего TYPEID (6,7,11). Какие данные ещё есть в этом файле указано в AS_PARAM_TYPES_. XML
m) Удаляем вспомогательные столбцы и индексы
n,o) Выполняем слияние всех таблиц по регионам в одну общую.
p) Создаём нужные индексы
q) Переименовываем временные таблицы в нормальные имена
Чтобы получить этот результат надо обработать:
ФИАС и семь смертных граблей разработчика
Чтобы нормально работать с почтовыми адресами, сайты подключают справочник адресов налоговой службы (ФИАС). На dadata.ru это сделали уже пять тысяч интернет-магазинов, CRM и стартапов.
А мы поглядели на проблемы клиентов, подумали и собрали увесистый комплект граблей, по которым любят ходить разработчики в обнимку с ФИАСом.
1. Почтовые индексы ФИАС для доставки посылок
Тех, кто использует ФИАС для доставки писем и посылок, ждет сюрприз. Почему-то все считают, что если ФИАС — общероссийская база адресов, то индексы в нем должны быть правильные.
В ФИАС несколько тысяч неправильных или отсутствующих индексов. Например, поищем на fias.nalog.ru адрес «Новосибирская обл, г Новосибирск, ул Зорге, д 56»:
Индекса нет. Если посмотреть этот же адрес на сайте почты России — увидим индекс:
К сожалению, данные ФНС расходятся с реальностью и с данными Почты. На форуме Дадаты каждый месяц задают новый вопрос на эту тему.
Опытные владельцы интернет-магазинов знают про подставу с индексами и дополнительно проверяют индексы ФИАС по базе Почты России. Но и с Почтой не все хорошо: там нет части индексов, которые есть в ФИАС (например, 742602, 103340 и нескольких тысяч других индексов).
Мы в Дадате работаем над объединенной базой индексов ФИАС и Почты России. Она компенсирует ошибки ведомств и пригодится для доставки писем и посылок. Планируем выпустить до конца года.
2. Код КЛАДР как идентификатор адреса до дома
Разработчики используют в качестве идентификатора дома код КЛАДР — хотя давно уже существует ФИАС и уникальный код адреса в нем (GUID). Обычно так делают для совместимости со старыми системами.
Идентифицировать дом кодом КЛАДР — очень соблазнительно с девелоперской точки зрения, но так делать не стоит. Потому что код до дома нестабилен и меняется каждый месяц (примеры не исчерпывающие, просто иллюстрирую проблему):
Адрес | Код КЛАДР в ФИАС от 10.03.16 | Код КЛАДР в ФИАС от 18.04.16 |
г Казань, ул Космонавтов, д 12 | 1600000100006330009 | 1600000100006330082 |
г Нижний Новгород, ул Панфиловцев, д 4Б | 5200000100008060003 | 5200000100008060018 |
г Самара, поселок Мехзавод, кв-л 16-й, д 7 | 6300000103700170018 | 6300000103700170043 |
Надежнее для идентификации адреса использовать код КЛАДР улицы и домовую часть адреса: 160000010000633, д 12. А еще лучше вместо кода КЛАДР сохранять ФИАС-код улицы.
3. Код ФИАС как идентификатор адреса до дома
Идентифицировать адрес до дома с помощью кода ФИАС — тоже не лучшая идея.
Кодом ФИАС часто обозначают не отдельный дом, а диапазон домов, например «1–10». Разумеется, у всех домов внутри диапазона будет один и тот же код. Если дом исходно был в составе диапазона, а потом вылез в отдельную запись — его код изменится:
Адрес | Код ФИАС диапазона, ФИАС от 10.03.16 | Код ФИАС дома, ФИАС от 18.04.16 |
Московская обл, Истринский р-н, с Павловская Слобода, ул Дзержинского, д 1 | 720b25da-f43e-4204-9013-3cb06be3e9e4 диапазон домов 1–6 | 5bbc0463-ffc4-4d8f-bc5f-632c46eeedca |
г Волгоград, ул им Пархоменко, д 33 | 44de3bc5-a650-4f77-b19a-7a12bb619c21 диапазон домов 15–35, нечётные | 98216a50-2c52-4b0c-8864-a19dc7a30a73 |
г Ижевск, ул Удмуртская, д 267 к 3 | 92ff5f38-01fb-42e6-97d6-a95f541644f4 диапазон домов 261–277, нечётные | ac8015c8-0e73-442d-a6aa-427f2e973ec5 |
Поэтому рекомендую поступать так же, как с кодом КЛАДР — использовать ФИАС-код улицы и домовую часть адреса.
4. Адрес одной строкой — вместо ФИАС-кода
Если хранить адрес одной строкой, то со временем база заполнится записями разного формата. Типа «Урюпинск, проспект Ленина» и «Урюпинск, пр-кт Ленина».
Это происходит потому, что формат записей в ФИАС все время меняется:
1. Смена типа улицы:
г Обнинск ул Ленина → пр-кт Ленина
Тюменская обл, г Ишим, линия 5-я → ул 5-я линия
г Самара, ул Симферопольская → г Самара, п Управленческий, ул Симферопольская
г Красноярск, ул им Академика Вавилова → ул Академика Вавилова
Чеченская Респ, Итум-Калинский р-н, село Гучум-Кала → село Гучум-Кали
Ямало-Ненецкий АО, г Губкинский, мкр 12-й → мкр 12
Поэтому в дополнение к адресу одной строкой хорошо сохранять ФИАС-код улицы.
5. Дома только из ФИАС
Бывает, что разработчики ограничивают ввод дома только домами из ФИАС. Это парадоксально приводит одновременно к нехватке и избытку информации:
В ФИАС домов не хватает
Недавний пример:
Московская обл., г. Балашиха, Горенский б-р, д. 3 (на карте).
В ФИАС дома 3 нет, зато есть 3 к А.
А иногда их слишком много
В ФИАС есть фальшивые «дома» с литерами, которых в реальной жизни нет (или есть, но радости от них никакой это будка трансформаторная).
г. Санкт-Петербург, ул. Кораблестроителей
дом 38к3
дом 38к3 литер А
дом 38к3 литер Т
Лучше не ограничивать ввод дома, а предлагать человеку дома из ФИАС и разрешать ввести свой вариант (в Подсказках делаем именно так).
6. Поселки и улицы только из ФИАС
ФИАС скуден не только домами. В России все время появляются новые улицы и поселки, а налоговая служба за жизнью не успевает. Например, нет поселка Новогорелово из Ленинградской области, и Нового Лапино из Московской области.
Мы в Дадате собираем такие адреса от пользователей и ведем их как дополнительный справочник к ФИАС, чтобы помогать пользователям вводить несуществующие в ФИАС адреса.
7. Форма ввода адреса по структуре ФИАС
Некоторые разработчики, поддавшись магии ФИАС, делают формы ввода адреса по структуре ФИАС: заставляют пользователя различать город и населенный пункт, обязательно вводить регион и район.
Например, интернет-магазин Почты России:
Как, вы еще не помните наизусть свой индекс?!
Правильные ребята позволяют клиентам указывать адрес одной строкой и не заморачиваться вводом индекса.
Вывод
Я тоже когда-то думала, что с помощью ФИАС избавлюсь от проблем с вводом адресов раз и навсегда. Но у ФИАС есть свои проблемы: прыгучие идентификаторы, кривые индексы и забытые адреса.
Вход в ФИАС на официальном сайте fias.nalog.ru
Федеральная информационная адресная система (ФИАС) была создана в 2011 году на замену устаревшего КЛАДР. В базе хранятся и постоянно обновляются адреса объектов, расположенных по всей территории РФ. Скачать и установить её может каждый житель страны. Ей основная цель — унифицировать структура адресной информации, сделать её единообразной, доступной и удобной в использовании.
В основном ФИАС устанавливают организации, оказывающие государственные и муниципальные услуги. В обзоре мы подробно расскажем о самой базе и её структуре. А также Вы узнаете, как зарегистрироваться на сайте ФИАС и о возможностях личного кабинета.
Что такое ФИАС и преимущества системы?
По своей сути ФИАС — это большая бесплатная база данных, содержащая в себе наименование регионов, областей, населённых пунктов, улиц, номеров домов. С её помощью можно узнать:
Базой пользуются не только госорганы, но и граждане при получении услуг. Например, у Вас частный дом и нужно подвести к нему газ, но в системе ФИАС такого адреса не зафиксировано. Следовательно, получить услугу не получится пока, данные не будут внесены корректно. Для этого потребуется оформить бесплатную заявку в орган местного самоуправления и дождаться обновления информации.
В отличие от КЛАДР в сервисе ФИАС данные строго систематизированы и нет дублированных документов, а соответственно не возникает путаницы.
Справка! Актуальная и работающая база ФИАС находится только на сайте налог ру, так как принадлежит Федеральной налоговой службе. На других ресурсах можно наткнуться на некорректные и устаревшие сведения.
Всю базу ФИАСМО можно условно разделить на два блока: адресообразующий и адресный объект.
Наименование блока | Содержание |
---|---|
Адресообразующий | ● Глобальный уникальный идентификатор ● Наименование ● Код объекта, к которому он относится: региона, района, автономии, города, населенного пункта, улицы ● Почтовый индекс ● Коды ОКТМО и ОКАТО ● Номера ИФНС ● Информация об изменениях записи |
Адресный объект | ● Идентификатор адресного объекта и родительского адресообразующего элемента ● Признак строения (дом, корпус, строение и т. д.) ● Почтовый индекс ● Коды ОКТМО и ОКАТО ● Номера ИФНС ● Информацию об изменении записи адресного объекта |
Внимание! Обновление в ФИАС проходят еженедельно. Таким образом, достигается актуальность введённых в базу сведений.
До внедрения ФИАС пользователи использовали данные из КЛАДР. Преимуществами же нового сервиса стали:
Регистрация в адресной системе ФИАС
Регистрация личного кабинета в системе ФИАС необходима для подачи заявки. При этом нужно учитывать, что потребуется браузер Internet Explorer с версией выше 9-й. Получить результат можно в любой налоговой инспекции в распечатанном или электронном виде. Готовность документов составляет пять дней.
Важно! С помощью сервиса ФИАС нельзя узнать информацию о собственнике объекта.
На официальном ресурсе в форме авторизации, расположенной в правой части, внизу перейдите по ссылке “Регистрация”.
В форме регистрации представлено два блока: для физических и юридических лиц. Заполняем все поля в соответствии со своим статусом. Например для граждан нужно указать:
В нижней части регистрационной формы установите постоянный пароль от личного ка кабинета ФИАС. В нём должны быть прописные и строчные буквы, написанные кириллицей или латиницей, цифры и символы. Для подтверждения, что Вы не робот, повторите символы с капчи.
Настройка Криптопро ЭЦП
Сертификат подписи позволяет ставить электронную подпись на документах и имеет юридическую значимость. Для использования ЭЦП необходимо настроить криптопро. Алгоритм действий следующий:
Справка! На официальном сайте ФИАС Вы можете пройти бесплатное тестирование на выявление ошибок при работе с ЭЦП.
Вход в Федеральную информационную адресную систему (ФИАС)
После регистрации личного кабинета можно входить в него через специальную форму. Сделать это можно несколькими способами и о каждом из них мы подробно расскажем ниже. Так Вы сможете выбрать наиболее удобный для себя вариант.
Войти по логину и паролю
На странице авторизации справа в форме в верхнем поле укажите логин, а в нижней — пароль, установленные при создании аккаунта. Обычно в качестве логина используется адрес электронной почты.
Вход в личный кабинет через ЕСИА
В настоящее время из формы авторизации убрана возможность входа через имеющийся подтверждённый аккаунт на ЕСИА Госуслугах. Возможно, что в ближайшее время данный сервис будет опять доступен.
Войти в систему с помощью электронных средств
Под электронными средствами подразумевается ЭЦП. Перед первым входом нужно установить Криптопро на рабочий компьютер и настроить его. А при авторизации достаточно сперва установить ЭЦП и затем перейти на страницу ФИАС, где внизу выбрать строку “Войти с помощью электронных средств”.
Появится окно со списком сертификатов,в котором нужно определиться с подходящим вариантом.
Важно! В сертификате содержится вся информация о Вашей организации. Поэтому корректно выбирайте его, чтобы при составлении заявки правильно подкреплялись сведения.
Как войти в ФИАС при помощи ЭЦП?
Электронная цифровая подпись пользователя относится к электронным средствам. о том как войти в личный кабинет с её помощью мы подробно рассказали выше.
Возможности личного кабинета
В личном кабинете ФИАС могут работать физические и юридические лица. Возможности сервиса позволяют:
Заявки в ФИАС
Основная функция личного кабинета ФИАС — оформление заявок на получение выписки об адресе или обобщённой информации об объекте. На главной странице аккаунта в верхнем поле перейдите в раздел “Заявка в ФИАС”.
На открывшейся странице физическим лицам открыт доступ только для оформления выписки по конкретному адресу или на нежилой объект. А вот вносить изменения или аннулировать запись могут только госорганы при входе по ЭЦП.
Выписка об адресе
В разделе “Заявка в ФИАС” в списке выберите нункт “Выписка об адресе” и внизу перейдите по кнопке “Далее”.
Открывается сама форма заявки, где в верхнем блоке нужно выбрать способ получения документа и вид объекта. Бесплатно можно оформить только получение на электронный адрес, а остальные способы платные и стоимость зависит от того, кто подаёт заявку.
Во втором блоке сперва определитесь с территориальным делением: административное или муниципальное. Ниже в поле начинайте вводить адрес объекта или выбирайте значения из списка ниже.
На следующем этапе укажите тип заявителя: физическое или юридическое лицо, представитель (действие по доверенности). Ниже автоматически из личного кабинета подтянутся персональные данные. Дополните их паспортными данными и номером контактного телефона.
В нижнем блоке загрузите сканы документов и доверенности для подтверждения личности. При необходимости здесь также можно распечатать бумажный вариант поданного заявления.
Заявки в муниципалитеты
Вы можете подать заявку в муниципалитет на добавление или аннулирование адреса объекта. Если это делать через личный кабинет ФИАС, то потребуется квалифицированная подпись, то есть ЭЦП. В разделе “Заявка в ФИАС” выберите один из подходящих вариантов, например, добавление адреса.
Заполнение формы идёт по порядку сверху. В первом блоке указываете способ получения ответа, вид объекта и причину присвоения адреса. В “Примечании” можно дать свой комментарий, если это необходимо. Обязательно выберите право собственности и тип владельца.
Ниже форма стандартная, где потребуется ввести сведения из паспорта и дать своё согласие на обработку информации. При переходе на следующий этап нужно подписать документ с помощью ЭЦП.
Скачать базу адресов ФИАС
Есть возможность скачать базу адресов на официальном сайте ФИАС без входа в личный кабинет. В этом случае файл будет иметь данные по всем регионам страны. Обычно ими пользуются предприниматели для составления отчётности.
На главной странице перейдите в раздел “Поиск”. На открывшейся странице опуститесь в самый низ и кликните по ссылке “Скачать базу данных”.
На открывшейся странице можно ознакомиться с описаниями форматов документов, а ниже выбрать вариант самой базы и скачать его на свой компьютер.
Проблемы в работе системы
Несмотря на то, что система работает уже несколько лет, всё же пользователи сталкиваются с некоторыми проблемами. Рассмотрим самые основные и возможные пути решения.
Внимание! Если у Вас возникла проблема при работе с сайтом ФИАС, то воспользуйтесь онлайн-формой для обращения в техподдержку.
Часто задаваемые вопросы
При работе с порталом налог ру, а именно платформой ФИАС, нередко у пользователей возникают вопросы. Вы можете получить консультацию в ФНС, но мы предлагаем ознакомиться с развёрнутыми ответами на часто возникающие вопросы.
Как узнать код по ФИАС адреса регистрации?
В Государственном адресном реестре (ГАР) каждому объекту присваивается уникальный идентификатор или по другому адресный код. Это позволяет систематизировать данные в ФИАС, а в самом коде содержится информация о нахождении объекта недвижимости, его состоянии, принадлежности к типу и прочее.
После оформления запросы приходит ответ, в котором помимо общей информации есть код адреса регистрации. Он формируется по стандартам GUID и состоит из набора латинских букв и символов.
Как получить выписку из реестра адресов?
Сроки и тарифы для получения выписки
Если выписка запрашивается на электронную почту, то услуга оказывается абсолютно бесплатно. В остальных случаях установлены следующие тарифы:
Сроки готовности документов не более 5 рабочих дней.
Оплату нужно произвести по следующим реквизитам:
ОКТМО | 46757000 |
КБК | 18211301060016000130 |
Получатель платежа | УФК по Московской области (Межрайонная ИФНС России №10 по Московской области) |
ИНН/КПП | 5034017940/503401001 |
Банк получателя | ГУ Банка России по ЦФО |
БИК | 44525000 |
Счёт | № 40101810845250010102 |
Телефон горячей линии ФИАС
В том случае, когда возникают проблемы в работе сайта ФИАС, нужно обращаться в техподдержку через форму обратной связи. Телефона службы поддержки у адресного сервиса не существует.
В бланке обязательно выберите свой регион проживания, подробно и поэтапно опишите проблему, а также укажите дату и время её возникновения. Вы также можете прикрепить скриншот экрана, чтобы специалист могут наглядно увидеть, о чём Вы говорите. Не забудьте указать электронную почту, на которую придёт ответ.
По иным вопросам обращаться нужно в Федеральную налоговую службу. Для этого можно воспользоваться официальным ресурсом, где создать онлайн-обращение от лица руководителя организации или как гражданин.
Вы уже пользовались официальным сайтом Федеральной информационной адресной системы? Тогда мы просим Вас поделиться своим опытом и подробно рассказать о плюсах и минусах сервиса. Ваш комментарий позволит нам и другим пользователям составить полное представление о возможностях личного кабинета ФИАС.
Как перейти от КЛАДР к ФИАС и ничего себе не сломать
ГНИВЦ ФНС сообщает, что с начала 2018 года КЛАДР перестанет существовать и скачать его будет нельзя.
Дисклеймер:
Если вы совсем не поняли, что означают эти наборы букв, ничего страшного. Ниже мы расскажем о реалиях работы с адресами в России. Если вам это неинтересно, почитайте про топографические каламбуры.
Правильные адреса нужны компаниям, которые любят своих клиентов. Знакомые банки, страховые и интернет-магазины, которые сейчас используют справочник КЛАДР, спрашивают нас, что же делать дальше. Поэтому мы запарились и написали пошаговое руководство по переходу с одних букв на другие от КЛАДР к ФИАС.
Зачем нужны классификаторы адресов
Компаниям нужны адреса клиентов, чтобы рассылать письма, указывать в договорах и соглашениях. Но мало просто отправить письмо: желательно, чтобы его получили и прочитали. Поэтому адреса должны быть правильными и понятными.
Как вы думаете, какой государственный орган наиболее заинтересован в том, чтобы вы получали от него письма? Правильно! Налоговая. Поэтому ФНС России много лет разрабатывает и поддерживает ведомственные общероссийские классификаторы адресов. И так как более полных справочников нет, их стали использовать повсеместно.
Сначала был КЛАДР, и было в нем 6 уровней:
Регион → Район → Город → Населенный пункт → Улица → Дом со строениями и корпусами
С 2012 года в эксплуатацию ввели новый классификатор — ФИАС. Про основные отличия мы писали три года назад в статье «ФИАС или КЛАДР: выбираем справочник адресов». В ФНС к разработке нового классификатора подошли основательнее и постарались учесть все грабли минусы КЛАДР. Из интересного добавили дату начала и окончания записи, ввели фиксированный ID для каждого дома (предполагается, что он не будет меняться).
До сих пор продолжают обновляться оба классификатора, но поддерживать совместимость становится сложнее. В прошлом году в ФИАС начали добавлять новые уровни. Например, планировочные структуры — это всякие дачные товарищества и микрорайоны, в классификаторе их уже больше 81 000. В конечном итоге в ФНС приняли логичное решение прекратить поддержку КЛАДР и удалить его в конце 2017 года.
Как адреса хранятся в ФИАС и КЛАДР
Мы видели много способов хранения адресов в структуре КЛАДР. В основном они сводятся к двум вариантам:
То есть задача миграции сводится к тому, чтобы перевести код или текстовый адрес в формате КЛАДР в код ФИАС.
Классификационные коды выглядят так:
№ | Уровень | Пример | код ФИАС | код КЛАДР |
1 | Регион | Ленинградская область | СС: 47 | СС: 47 |
2 | Автономный округ | |||
3 | Район | Всеволожский р-н | РРР: 005 | РРР: 005 |
4 | Город | ГГГ: 000 | ГГГ: 000 | |
5 | Внутригородская территория | |||
6 | Населенный пункт | деревня Кудрово | ||
65 | Планировочная структура | мкр Новый Оккервиль | ||
7 | Улица | УУУУ | УУУУ: 0023 | |
75 | Земельный участок | ЗЗЗЗ | ||
8 | Здание, сооружение, объект незавершенного строительства | ДДДД | ДДДД | |
9 | Помещение в пределах здания, сооружения | ОООО | ||
90 | Дополнительная территория | |||
91 | Подчинённые дополнительных территорий |
Раскладываем адрес по уровням ФИАС и КЛАДР
Из примера видно, что даже в простых ситуациях между классификаторами возникает недопонимание. Но есть еще один очень важный момент.
Классификационный код отражает текущую структуру адреса, а она может измениться. Например, у Оккервиля изменится район и весь код станет недействительным, мы его уже не найдем.
Чтобы избавиться от этого, в ФИАС добавили еще идентификационный код ФИАС. Это глобальный идентификатор для каждого объекта: города, улицы, района и т. д. Выглядит он как набор букв и цифр, который формируется по стандарту GUID (Globally Unique Identifier). Типичный GUID в ФИАС выглядит так: f77948dc-7bc8-42cb-979e-2c958d162d63.
Код КЛАДР → идентификационный код ФИАС
Если адрес у вас хранится как код КЛАДР улицы + домовая часть («дом 1 строение 3 квартира 44»), то для него все относительно просто.
Таблица ADDROBJ хранит все адресные объекты с их идентификаторами
Для работы понадобится таблица ADDROBJ из выгрузки ФИАС в формате xml или dbf. В ней хранятся все объекты (города, улицы и т. д.) подряд с уникальными идентификаторами GUID.
Будем использовать следующие колонки:
Пример: Москва, ул Александра Солженицына. Код КЛАДР: 77000000000151900.
Шаг 1. Выделяем из кода КЛАДР код до улицы, то есть берем первые 15 цифр: 770000000001519 00.
Шаг 2. Ищем код КЛАДР в поле PlainCode. Если нашлась одна запись, то сохраняем значение поля AoGuid и пропускаем следующий пункт. Но по нашему коду 770000000001519 находится три записи, нужна дополнительная проверка.
Но можно поступить еще проще и воспользоваться готовым сервисом. DaData.ru умеет подсказывать адреса в конкретных регионах, районах, городах и населенных пунктах. Понимает названия («Петергоф»), коды КЛАДР («7800000800000») и ФИАС («8f238984-812b-4bb1-850b-49749fb5c56d»).
Строчный адрес КЛАДР → код ФИАС
Самый простой вариант — воспользоваться DaData.ru. Сервис сделает все за вас автоматически. Но можно и развлекаться самостоятельно.
Адреса одной строкой
Если адреса у вас хранятся одной строкой, вроде этой:
г Москва, улица Большая Коммунистическая, дом 3, то поздравляем, это самая интересная задача. Нужно писать свой адресный парсер, который будет разделять строку в формате КЛАДР на части, искать каждый ее компонент в ФИАС с учетом опечаток, сокращений, исторических названий и определять по ним ФИАС-код. Легче это сделать уже готовым адресным парсером. Как выбрать алгоритм для адресного фильтра, мы рассказывали раньше.
Адреса по КЛАДР
Тип региона | Название региона | Тип улицы | Название улицы | Тип дома | Номер дома |
г | Москва | улица | Коммунистическая Б. | дом | 3 |
Примерно так выглядит адрес, разложенный по КЛАДР
Код ФИАС можно собрать, используя всё ту же таблицу ADDROBJ. Но в этом случае двигаться по уровням нужно от большего к меньшему.
Шаг 1. Берем название региона и ищем его в поле FormalName таблицы ADDROBJ.
FormalName = Москва →
AoGuid = 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
Шаг 2. Идем дальше по уровням вниз и ищем по FormalName с фиксированным родителем — найденным AoGuid на предыдущем шаге. В нашем случае уровни «город» и «населенный пункт» пустые, а следующий непустой уровень — улица.
ParentGuid = 0c5b2444-70a0-4932-980c-b4dc0d3f02b5,
FormalName = Коммунистическая Б. → AoGuid=f77948dc-7bc8-42cb-979e-2c958d162d63
Шаг 3. Если дошли до улицы, то можно найти и дом. Для этого в таблице HOUSE ищем номер дома с фиксированным AoGuid улицы. ФИАС не полон домами, поэтому не расстраивайтесь, если нужный номер не найдется.
AoGuid = f77948dc-7bc8-42cb-979e-2c958d162d63,
дом номер 3 →
HouseGuid = bce8be1f-f2f7-4cce-836e-08daac0b931e
Подводные камни
LEVEL | SCNAME | SOCRNAME | KOD_T_ST |
7 | тракт | Тракт | 727 |
7 | туп | Тупик | 728 |
7 | ул | Улица | 729 |
7 | уч-к | Участок | 730 |
7 | ф/х | Фермерское хозяйство | 789 |
7 | ферма | Ферма | 769 |
7 | х | Хутор | 758 |
7 | ш | Шоссе | 731 |
Таблица SOCRBASE хранит полные и сокращенные типы объектов
Тип по КЛАДР может быть сокращенным и полным: «ул» — «Улица», «х» — «Хутор». В ФИАС в явном виде хранится только сокращенный тип (в поле ShortName). Полный тип в сокращенный можно превратить с помощью таблицы SOCRBASE, в ней для каждого уровня хранится соответствие сокращённых и полных типов.
И напоследок хорошая новость для тех, кому лень запариваться всем перечисленным. В ближайшее время мы планируем выпустить ФИАС в формате КЛАДР для тех, кто не успеет перейти на формат ФИАС до конца года. Следите за новостями 🙂