Отличия КЛАДР и ФИАС для разработчика

1 июля 2014 года вступил в силу Федеральный закон от 28.12.2013 № 443-ФЗ, обязавший использовать Федеральную информационную адресную систему (далее ФИАС) в качестве единой базы адресов для всех государственных и муниципальных организаций. Давайте разберёмся, в чем отличие ФИАС от КЛАДР, де факто использовавшегося в этом качестве ранее.

В данной статье мы попытаемся ответить на вопрос, стоит ли как можно быстрее переходить на ФИАС, и на какую базу адресов лучше закладываться в новом проекте.

Недостатки КЛАДР

Долгое время для всех основным источником адресов служил КЛАДР. Однако со временем отчетливо проявились недостатки его структуры, что послужило причиной разработки новой системы. В чем основные проблемы КЛАДР?

1. Отсутствие неизменяемого идентификатора адреса

Вообще в базе имеется один идентификатор — код КЛАДР — однако он может легко меняться для одного и того же объекта в разных версиях классификатора. Конечно хотелось бы иметь уникальный идентикатор адреса, для удобной синхронизации своих адресов с изменениями в классификаторе, но с КЛАДР этого сделать не получится.

2. Нумерация домов

Структура номера дома (сам номер, корпус, строение, литера), в КЛАДР хранится через запятую одной строкой. При этом описанные в документации правила формирования номера дома зачастую игнорируются, что приводит к появлению следующих обозначений — 1_А, 21/13/а, 6влд2, двлд14_14А, 5кПОДЪЕЗД_3, двлд7/кв.2, кГсооружение1, влд22/7сооружение3ЭСТ и другие.

Из-за путаницы наименований в базе иногда встречаются разные действующие обозначения для одного дома.

Что интересного есть в ФИАС

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

1. Уникальные GUID объектов

Уникальные и неизменные идентификаторы для объектов, это, наверное, наиболее интересное нововведение ФИАС. Это позволяет организовать полноценную синхронизацию изменений адресов с ФИАС. Думаю, большинство разработчиков, когда-либо имевшие дело с КЛАДР, могут с полным основанием заявить: «Наконец то!».

2. Более структурированная информация о домах

За дома в ФИАС отвечают две таблицы. Первая называется HOUSE и содержит номера домов. Включает следующие поля.

Записи в КЛАДР типа двлд12стр1 здесь приведены к нормальному виду. Записи вида 11_13 заменены на 11-13, поскольку тут нет проблемы КЛАДР, где дефис используется для записи интервалов домов.

Вторая таблица называется HOUSEINT и описывает интервалы домов. В отличие от КЛАДР, где запись вида Н(1-999) обозначает все нечётные дома с номерами от 1 до 999, в ФИАС она разбита на поля: начало и конец интервала, признак интервала.

3. Добавлено свободное описание адреса

Появилась табличка LANDMARK, где в свободной форме записано местонахождение адреса, например, «МКАД 56-й км»

4. Изменения в адресных объектах

Формат данных ФИАС

ФИАС можно загрузить в трех форматах: dbf, xml и КЛАДР. Наиболее интересен здесь XML, несмотря на то, что он имеет самый большой размер (сейчас распакованный файл занимает более 14 Гб), использование потоковых парсеров xml позволяет добиться неплохой производительности, ну и один xml-файл удобнее множества файлов dbf, разбитых по регионам.

Актуальность данных

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

Заключение

Фактические, ФИАС это тот же самый КЛАДР, только с уникальными идентификаторами объектов. Есть ли смысле перехода на ФИАС? Из преимуществ можно отметить более простое построение дерева адресов, используя GUID объектов, а также возможность синхронизации изменения адресов, опять же используя те же GUID-ы. Из недостатков — в десятки больший размер файлов ФИАС по сравнению с КЛАДР.

Возможно в дальнейшем переход на ФИАС потребуется для взаимодействия и интеграции внешними системами, или по требованию регуляторов (налоговая, пенсионный и т. д). Если взаимодействовать вам не с кем, то вполне можно оставаться и на КЛАДР.