1 июля 2014 года произошло одно из самых значимых событий в истории государства Российского: с этого момента у нас в стране наконец появилась эталонная база адресов по всем, даже самым малым населённым пунктам! Имя этой базе — ФИАС. Собственно, сам по себе справочник ФИАС появился гораздо раньше, но именно 1 июля вступил в силу ФЗ 443, согласно которому все государственные и муниципальные структуры теперь должны опираться на него как на единственно верную базу адресов. Мы решили исследовать, стоит ли переходить на ФИАС, и с какими подводными камнями столкнутся те, кто решит это делать.
Прочитав статью, вы узнаете:
В настоящий момент времени основным адресным справочником России считается КЛАДР. Почему он не устроил людей, и откуда появилась необходимость в новом?
Изначально КЛАДР, скорее всего, задумывался как понятный структурированный справочник, содержащий актуальную информацию по адресам всей России. В настоящее время это, к сожалению, далеко от истины. Есть много особенностей в записях КЛАДР, и мы сейчас расскажем про самые интересные из них.
Запись номера дома и его расширения (всё, что стоит после числа: корпус, строение, литера) в КЛАДР хранится одной строчкой через запятую. При этом общие правила формирования домовой части, описанные в документации, на практике далеко не всегда применяются. Так, если вы решите подключить КЛАДР вплоть до дома, то придется разобраться, что делать со следующими обозначениями:
Похоже, что из-за обилия различных написаний в справочнике запутываются даже его создатели, так как на одной улице можно часто встретить разные действующие записи одного дома. Например, в поселке Новый (Красногорский район Московской области) в КЛАДР есть запись с домом 8 и отдельно с двлд8. Теоретически, домовладение и дом — разные вещи, однако в реальности мало кто пишет «домовладение», и можно смело считать, что двлд и просто дом — одно и то же.
Теоретически, КЛАДР — это справочник адресов, на который все должны опираться при составлении любых справочников с адресами, и, следовательно, должны хранить некий ключ к этой базе, чтобы иметь возможность синхронизоваться с самим КЛАДР для получения обновлений. Но код КЛАДР — единственный идентификатор в этом справочнике — может меняться от версии к версии для одних и тех же объектов. Поэтому в других справочниках вы не найдёте его как ключ к адресной базе, везде для указания адреса служит только адрес без каких-либо id. Это плохо тем, что адреса в справочниках могут содержать ошибки, быть неактуальным или вообще не существовать, и чтобы привести его к КЛАДР, потребуется приложить немало усилий (или воспользоваться сервисом dadata.ru).
В КЛАДР запись адреса разбита на уровни (регион, район, город, населённый пункт и улица), и для каждого уровня есть тип и наименование. Например, тип — автономный округ, наименование — Ямало-Ненецкий… К сожалению, не всегда можно точно определить, что наименование, а что тип. И не всегда понятно, что проблема КЛАДР, а что на самом деле так называется.
Например, можно встретить такие адреса:
В КЛАДР много ошибок. Индексы из пяти символов, дублирующие записи домов с двойной нумерацией и прочее.
Вот некоторые из них более детально:
Вероятно, причина ошибок в том, что ответственными за актуальное состояние справочника являются органы местного самоуправления, и, возможно, вносимая информация никак не проверяется. Как бы там ни было, проблемы справочника усугубляются отсутствием поддержки: мы не раз писали письма в ФНС с указанием ошибок, но ни одна из них не была исправлена.
Так что если адрес есть в КЛАДР, то не факт, что он существует в реальной жизни, и наоборот.
Давайте посмотрим, что представляет из себя ФИАС, и решает ли он проблемы КЛАДР.
Первое, на что обращаешь внимание при работе с ФИАС — информации больше, чем в КЛАДР. Но полезной информации прибавилось не так много, как хотелось бы. Я выделил наиболее значимую адресную информацию в виде сравнительной таблицы ниже.
Таким образом, из полезного можно выделить только фиксированный ID дома, который, как предполагается, никогда не будет меняться и может служить ключом для внешних систем, а также даты начала и окончания действия записи. В остальном вся новая информация состоит из идентификаторов, которые периодически дублируют друг друга или являются частью других.
В ФИАС есть две таблицы для домов. Структура данных сама по себе очень радует: для всего есть своё поле.
Первая таблица, HOUSE, содержит номера домов, и для каждого есть следующая информация:
Какие основные отличия от таблицы домов в КЛАДР?
Плюсы:
Минусы:
Вторая таблица с домами, HOUSEINT, содержит интервалы домов. В КЛАДР в таблице домов содержатся записи вида Н(1-999), — это означает все нечётные дома из интервала 1 – 999. В ФИАС они разбиты на поля: начало интервала, конец, и его признак. К сожалению, содержимое этой таблицы так же далеко от истины, как и в КЛАДР: например, в Кирове есть неправдоподобно длинная улица Щорса, на которой есть все дома в диапазоне от 1 до 9999.
Посмотрим чуть выше — на адресные объекты вплоть до улицы. Они находятся в таблице ADDROBJ.
Плюсы:
Минусы:
ФИАС доступен в трёх видах: формат КЛАДР, dbf и xml. Последний мне показался наиболее удобным — файлы не разбиваются по регионам в отличие от dbf, а хранятся в скомпонованном виде в xml. Однако вес исходного справочника в таком формате составляет около 14Гб.
ФИАС в формате dbf весит 9Гб вместо 14Гб, однако имеет не очень удобную структуру: таблицы домов и нормативных документов разбиты по регионам, и в итоге ФИАС в таком представлении содержит 187 файлов.
ФИАС в формате КЛАДР по сути и наполнению — то же самое, что и сам КЛАДР, за редким исключением, и весит он те же самые 330Мб. Построчное сравнение таблиц КЛАДР и ФИАС в формате КЛАДР выявило менее 0.1% расхождений, которые, вероятно, вызваны разным временем выгрузки рассматриваемых баз КЛАДР и ФИАС.
Как может повлиять на работу переключение с КЛАДР на ФИАС? Готов ли бизнес переходить на этот справочник?
Наши коллеги из банков, для которых использование адресной информации является ключевым на всех этапах, не видят бизнес преимуществ перехода на ФИАС, однако планируют это делать, чтобы соответствовать требованиям регулятора. Из-за перехода всех федеральных агентств, министерств и ведомств на ФИАС в перспективе могут возникнуть требования использовать ФИАС при общении с ними (госуслуги, СМЭВ, отчетность, ЦБ).
Самой большой проблемой официальных справочников в России была и остаётся неактуальность представленной информации. Пока не будет нормальной налаженной системы по пополнению ФИАС, не будет проверяться качество данных и не будет произведён рефакторинг того, что уже есть в справочнике, мы будем встречаться со всеми теми же проблемами, что и в КЛАДР.
Основными плюсами ФИАС являются начальные попытки стандартизации адресов и наличие стабильного ключа для каждого дома.
Резюмируя:
Итак, пока переход на ФИАС имеет смысл только как задел на будущее. Если вы уже работаете с КЛАДР и не взаимодействуете со внешними системами, то можно не переходить на ФИАС, а использовать КЛАДР дальше. Если вы только начинаете своё знакомство с адресами и планируете подключать их в свой продукт, или вам требуется отчётность и интеграция, то стоит выбирать ФИАС.
P.S.: Вся информация в статье актуальна для версии КЛАДР 03.07.2014 и версии ФИАС 30.06.2014
Прочитав статью, вы узнаете:
- Чем отличается ФИАС от КЛАДР
- Можно ли уже использовать ФИАС вместо КЛАДР
- Стоит ли беспокоиться о переходе на ФИАС тем, кто уже работает с КЛАДР
- Решит ли ФИАС текущие проблемы с адресами
- Что ждёт тех, кто только начинает использовать адресные справочники
- Какие есть самые заметные и важные проблемы при работе с ФИАС и КЛАДР
Почему не КЛАДР?
В настоящий момент времени основным адресным справочником России считается КЛАДР. Почему он не устроил людей, и откуда появилась необходимость в новом?
Изначально КЛАДР, скорее всего, задумывался как понятный структурированный справочник, содержащий актуальную информацию по адресам всей России. В настоящее время это, к сожалению, далеко от истины. Есть много особенностей в записях КЛАДР, и мы сейчас расскажем про самые интересные из них.
Ад в номерах домов или страшный сон программиста
Запись номера дома и его расширения (всё, что стоит после числа: корпус, строение, литера) в КЛАДР хранится одной строчкой через запятую. При этом общие правила формирования домовой части, описанные в документации, на практике далеко не всегда применяются. Так, если вы решите подключить КЛАДР вплоть до дома, то придется разобраться, что делать со следующими обозначениями:
Слабонервным не смотреть
1кА, 1_А, 31Ъ, 2к1_А, 1п, 21_25, 5/34к1, 21/13/а, 6влд2, 5/2влд2б, 42влд1_4, 21к5/2стр2б, 2к6стр2_7, Н(1-700), двлд14_14А, 5кПОДЪЕЗД_3, двлд7/кв.2, кГсооружение1, влд22/7сооружение3ЭСТ, сооружениеВПЛ_11…
Всего есть 6436 различных видов записи домовой части без учёта цифр.
Всего есть 6436 различных видов записи домовой части без учёта цифр.
Похоже, что из-за обилия различных написаний в справочнике запутываются даже его создатели, так как на одной улице можно часто встретить разные действующие записи одного дома. Например, в поселке Новый (Красногорский район Московской области) в КЛАДР есть запись с домом 8 и отдельно с двлд8. Теоретически, домовладение и дом — разные вещи, однако в реальности мало кто пишет «домовладение», и можно смело считать, что двлд и просто дом — одно и то же.
Теоретически, КЛАДР — это справочник адресов, на который все должны опираться при составлении любых справочников с адресами, и, следовательно, должны хранить некий ключ к этой базе, чтобы иметь возможность синхронизоваться с самим КЛАДР для получения обновлений. Но код КЛАДР — единственный идентификатор в этом справочнике — может меняться от версии к версии для одних и тех же объектов. Поэтому в других справочниках вы не найдёте его как ключ к адресной базе, везде для указания адреса служит только адрес без каких-либо id. Это плохо тем, что адреса в справочниках могут содержать ошибки, быть неактуальным или вообще не существовать, и чтобы привести его к КЛАДР, потребуется приложить немало усилий (или воспользоваться сервисом dadata.ru).
Где эта улица, где этот переулок?
В КЛАДР запись адреса разбита на уровни (регион, район, город, населённый пункт и улица), и для каждого уровня есть тип и наименование. Например, тип — автономный округ, наименование — Ямало-Ненецкий… К сожалению, не всегда можно точно определить, что наименование, а что тип. И не всегда понятно, что проблема КЛАДР, а что на самом деле так называется.
Например, можно встретить такие адреса:
И снова: слабонервным не смотреть
Тип: «Автономный Округ»
Наименование: «Ханты-Мансийский Автономный Округ — Югра »
Согласно КЛАДР адрес правильно писать так: Россия, Автономный Округ Ханты- Мансийский Автономный Округ — Югра, …
Тип: «Чувашия»
Наименование: «Чувашская Республика -»
Да-да, прямо так — с дефисом в конце. И тип отличный.
Тип: «Улица»
Наименование: «КВАРТАЛ НОВЫЕ ЧЕРЕМУШКИ 32А»
Нам на разбор регулярно приходят замечательные адреса вида: Москва квартал Новые Черемушки 32А к8, кв xxx — заметьте, что, согласно КЛАДР, номер дома находится в наименовании улицы, и тип улицы не «квартал», а «улица».
Тип: «Переулок»
Наименование: «Ул. Советская»
В деревне Досотуй в Читинской области, есть улица «Советская» и переулок «Ул. Советская». Поэтому адреса Досотуй ул. Советская и Досотуй переулок ул. Советская — разные адреса
Наименование: «Ханты-Мансийский Автономный Округ — Югра »
Согласно КЛАДР адрес правильно писать так: Россия, Автономный Округ Ханты- Мансийский Автономный Округ — Югра, …
Тип: «Чувашия»
Наименование: «Чувашская Республика -»
Да-да, прямо так — с дефисом в конце. И тип отличный.
Тип: «Улица»
Наименование: «КВАРТАЛ НОВЫЕ ЧЕРЕМУШКИ 32А»
Нам на разбор регулярно приходят замечательные адреса вида: Москва квартал Новые Черемушки 32А к8, кв xxx — заметьте, что, согласно КЛАДР, номер дома находится в наименовании улицы, и тип улицы не «квартал», а «улица».
Тип: «Переулок»
Наименование: «Ул. Советская»
В деревне Досотуй в Читинской области, есть улица «Советская» и переулок «Ул. Советская». Поэтому адреса Досотуй ул. Советская и Досотуй переулок ул. Советская — разные адреса
Лев или Толстой?
В КЛАДР много ошибок. Индексы из пяти символов, дублирующие записи домов с двойной нумерацией и прочее.
Вот некоторые из них более детально:
- Отсутствуют улицы и даже населённые пункты. Особенно сильно проявляется для небольших населённых пунктов с населением менее 10 тысяч человек. Например, улица Госпитальная в пгт Монино Щелковского района Московской области есть на картах, но отсутствует в КЛАДР.
- Дубли. По КЛАДР в Москве есть две разные улицы 8 Марта, которые, судя по индексу, сильно удалены друг от друга, и на них есть одинаковые дома. А ещё там же есть две улицы Шоссейные, одна из которых переименована в улицу Николая Сироткина, которых тоже две. Моя особая любовь — город Кореновск Краснодарского края: там, согласно КЛАДР, очень любят Толстого, так как есть улица Толстого, улица Льва Толстого и переулок Льва Толстого.
- Медленная актуализация справочника. Построенная в прошлом году к Универсиаде в Казани Деревня Универсиады появилась там спустя полгода после завершения строительства, несмотря на то, что КЛАДР обновляется каждую неделю.
- Частое отсутствие или необоснованное наследование индексов с более высоких уровней. Дом в подчинённом населённом пункте может иметь индекс главпочтампта в родительском городе, который сильно отдалён от этого дома. Например, улица Ленина в г. Нефтекамск в Башкортостане имеет индекс 450000, то есть главпочтампта в Уфе. При работе с индексами в таких случаях у нас есть своё ноу-хау. Мы возвращаем два индекса: индекс по КЛАДР для отчётности перед различными структурами и индекс для доставки корреспонденции, чтобы письмо все-таки дошло по адресу.
Вероятно, причина ошибок в том, что ответственными за актуальное состояние справочника являются органы местного самоуправления, и, возможно, вносимая информация никак не проверяется. Как бы там ни было, проблемы справочника усугубляются отсутствием поддержки: мы не раз писали письма в ФНС с указанием ошибок, но ни одна из них не была исправлена.
Так что если адрес есть в КЛАДР, то не факт, что он существует в реальной жизни, и наоборот.
Что с ФИАС
Давайте посмотрим, что представляет из себя ФИАС, и решает ли он проблемы КЛАДР.
Данные и структура
Первое, на что обращаешь внимание при работе с ФИАС — информации больше, чем в КЛАДР. Но полезной информации прибавилось не так много, как хотелось бы. Я выделил наиболее значимую адресную информацию в виде сравнительной таблицы ниже.
Поле |
КЛАДР |
ФИАС |
---|---|---|
Регионы и города федерального значения |
+ |
+ |
Районы |
+ |
+ |
Города и сельские округа |
+ |
+ |
Районы города |
— | — |
Улицы |
+ |
+ |
Дома и расширения |
+ |
+ |
Индекс |
+ |
+ |
Статус центра |
+ |
+ |
Статус действия (что произошло с объектом: переименован, переподчинён,..) |
+ (условно закодировано в коде КЛАДР, но очень скудная расшифровка кодов) |
+ |
Статус актуальности |
+ |
+ |
Дата начала и окончания действия записи |
— | + |
Состояние дома (требует ли ремонта, насколько) |
— | +(но актуальность данных под сомнением, так как у более 95% домов одинаковый статус) |
Геокоординаты объекта |
— | — |
Данные о квартирах (список, количество или диапазон) |
— | — |
Население (на любом уровне) |
— | — |
Признак моногорода |
— | — |
Уникальный ID для каждого дома |
— | + |
Назначение здания (жилой/не жилой) |
— | — |
Этажность, год ввода в эксплуатацию, материал стен дома |
— | — |
Таким образом, из полезного можно выделить только фиксированный ID дома, который, как предполагается, никогда не будет меняться и может служить ключом для внешних систем, а также даты начала и окончания действия записи. В остальном вся новая информация состоит из идентификаторов, которые периодически дублируют друг друга или являются частью других.
Качество информации о домах
В ФИАС есть две таблицы для домов. Структура данных сама по себе очень радует: для всего есть своё поле.
Первая таблица, HOUSE, содержит номера домов, и для каждого есть следующая информация:
- Номер дома
- Признак владения (владение, дом, домовладение, участок)
- Номер корпуса
- Номер строения
- Признак строения (строение, сооружение, литер)
- Индекс
- Состояние дома
Какие основные отличия от таблицы домов в КЛАДР?
Плюсы:
- Структурирована информация о номере дома и его расширении. Записи вида двлд12стр1 приведены к нормальному виду.
- Записи вида 11_13 приведены к 11-13. В КЛАДР, согласно документации, через дефис записываются интервалы домов (много домов в одной записи), поэтому дефис в номерах домов приходилось заменять на нижнее подчеркивание. В ФИАС этой проблемы нет. Одна строка — один дом.
- Фиксированный ID для каждого дома.
Минусы:
- Не решена проблема домов с двойной нумерацией: для них может быть различное количество не связанных записей, а в номере дома могут содержаться как записи с дробью вида 6/9/20, так и просто числа. Например, в Казани есть адреса Кремлёвская 23, Кремлёвская 23/17 и Кави Наджми 17/23, которые обозначают одно и то же здание
- Часто встречаются случаи, когда в номере дома содержится литера (по идее она должна уходить в соответствующее поле ФИАС — номер строения). Ещё иногда встречаются записи вида «38/1УЧ».
- В номерах домов встречаются откровенные ошибки, например, «08а» и «0п». (Update: удалось выяснить, что дом 08А реально существует, спасибо bay73)
- Дубли домов, не существующие в реальной жизни дома, отсутствующие записи для существующих домов, отсутствие индексов и их неправильное наследование — ничего не улучшилось по сравнению с КЛАДР.
Вторая таблица с домами, HOUSEINT, содержит интервалы домов. В КЛАДР в таблице домов содержатся записи вида Н(1-999), — это означает все нечётные дома из интервала 1 – 999. В ФИАС они разбиты на поля: начало интервала, конец, и его признак. К сожалению, содержимое этой таблицы так же далеко от истины, как и в КЛАДР: например, в Кирове есть неправдоподобно длинная улица Щорса, на которой есть все дома в диапазоне от 1 до 9999.
Качество всего остального
Посмотрим чуть выше — на адресные объекты вплоть до улицы. Они находятся в таблице ADDROBJ.
Плюсы:
- ГСК, СНТ и прочие объекты такого рода вынесены вместе с их подчинёнными улицами на отдельные уровни. В КЛАДР они находились на уровне населённых пунктов, что создавало путаницу.
- Добавилась таблица LANDMARK, в которой в свободной форме записано как найти адрес (например, «в 0,8 км к северо-востоку от села Лопатино» или «МКАД, 84-й км»). И хотя таблица пока небольшая, она показалась мне очень перспективной, особенно если её отдать в опенсорс на пополнение.
Минусы:
- Проблемы с регионами до сих пор не решены: у Чувашской республики тип Чувашия, у Ханты-Мансийского автономного округа тип находится в наименовании и т.д. Конечно, по документам так и должно быть, но, мне кажется, что одной из основных задач адресного справочника является приведение адресов к стандартному виду.
- В ФИАС есть отдельный уровень для автономных округов, но на нём нет объектов, а все автономные округа находятся на 1-м. Вероятно, это поле планируется использовать подо что-то другое.
- ФИАС содержит все те же адреса, что и КЛАДР, со всеми его ошибками.
Формат
ФИАС доступен в трёх видах: формат КЛАДР, dbf и xml. Последний мне показался наиболее удобным — файлы не разбиваются по регионам в отличие от dbf, а хранятся в скомпонованном виде в xml. Однако вес исходного справочника в таком формате составляет около 14Гб.
ФИАС в формате dbf весит 9Гб вместо 14Гб, однако имеет не очень удобную структуру: таблицы домов и нормативных документов разбиты по регионам, и в итоге ФИАС в таком представлении содержит 187 файлов.
ФИАС в формате КЛАДР по сути и наполнению — то же самое, что и сам КЛАДР, за редким исключением, и весит он те же самые 330Мб. Построчное сравнение таблиц КЛАДР и ФИАС в формате КЛАДР выявило менее 0.1% расхождений, которые, вероятно, вызваны разным временем выгрузки рассматриваемых баз КЛАДР и ФИАС.
Что думает бизнес
Как может повлиять на работу переключение с КЛАДР на ФИАС? Готов ли бизнес переходить на этот справочник?
Наши коллеги из банков, для которых использование адресной информации является ключевым на всех этапах, не видят бизнес преимуществ перехода на ФИАС, однако планируют это делать, чтобы соответствовать требованиям регулятора. Из-за перехода всех федеральных агентств, министерств и ведомств на ФИАС в перспективе могут возникнуть требования использовать ФИАС при общении с ними (госуслуги, СМЭВ, отчетность, ЦБ).
Выводы
Самой большой проблемой официальных справочников в России была и остаётся неактуальность представленной информации. Пока не будет нормальной налаженной системы по пополнению ФИАС, не будет проверяться качество данных и не будет произведён рефакторинг того, что уже есть в справочнике, мы будем встречаться со всеми теми же проблемами, что и в КЛАДР.
Основными плюсами ФИАС являются начальные попытки стандартизации адресов и наличие стабильного ключа для каждого дома.
Резюмируя:
- ФИАС содержит больше полезной информации, чем КЛАДР: ID, дата начала и окончания действия записи, детализация статуса действия над объектом.
- В ФИАС лучше организовано представление информации: информация о домовой части разбита на компоненты, добавлен уровень для дополнительных территорий и их улиц.
- Файлы ФИАС значительно тяжелее КЛАДР в исходном виде: 9Гб вместо 300Мб.
- КЛАДР и ФИАС по содержанию и актуальности адресов суть одно и то же более чем на 99.9%.
- Подключение ФИАС и КЛАДР в приложение с нуля примерно равнозначно по сложности: в случае с КЛАДР придётся разбираться с домовой частью, а с ФИАС — что можно безблезненно удалить, чтобы ужать вес справочника. В обоих случаях нужно будет разобраться с качеством данных, что займёт больше всего времени.
- Идентификатор ФИАС в перспективе может потребоваться при работе с внешними системами: госуслуги, СМЭВ, отчетность, ЦБ.
Итак, пока переход на ФИАС имеет смысл только как задел на будущее. Если вы уже работаете с КЛАДР и не взаимодействуете со внешними системами, то можно не переходить на ФИАС, а использовать КЛАДР дальше. Если вы только начинаете своё знакомство с адресами и планируете подключать их в свой продукт, или вам требуется отчётность и интеграция, то стоит выбирать ФИАС.
P.S.: Вся информация в статье актуальна для версии КЛАДР 03.07.2014 и версии ФИАС 30.06.2014