Качество и интеграция клиентских данных
145,54
рейтинг
23 июля 2014 в 14:45

Разработка → ФИАС или КЛАДР: выбираем справочник адресов

1 июля 2014 года произошло одно из самых значимых событий в истории государства Российского: с этого момента у нас в стране наконец появилась эталонная база адресов по всем, даже самым малым населённым пунктам! Имя этой базе — ФИАС. Собственно, сам по себе справочник ФИАС появился гораздо раньше, но именно 1 июля вступил в силу ФЗ 443, согласно которому все государственные и муниципальные структуры теперь должны опираться на него как на единственно верную базу адресов. Мы решили исследовать, стоит ли переходить на ФИАС, и с какими подводными камнями столкнутся те, кто решит это делать.

Прочитав статью, вы узнаете:
  • Чем отличается ФИАС от КЛАДР
  • Можно ли уже использовать ФИАС вместо КЛАДР
  • Стоит ли беспокоиться о переходе на ФИАС тем, кто уже работает с КЛАДР
  • Решит ли ФИАС текущие проблемы с адресами
  • Что ждёт тех, кто только начинает использовать адресные справочники
  • Какие есть самые заметные и важные проблемы при работе с ФИАС и КЛАДР


Почему не КЛАДР?


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

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

Ад в номерах домов или страшный сон программиста

Запись номера дома и его расширения (всё, что стоит после числа: корпус, строение, литера) в КЛАДР хранится одной строчкой через запятую. При этом общие правила формирования домовой части, описанные в документации, на практике далеко не всегда применяются. Так, если вы решите подключить КЛАДР вплоть до дома, то придется разобраться, что делать со следующими обозначениями:
Слабонервным не смотреть
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 различных видов записи домовой части без учёта цифр.


Похоже, что из-за обилия различных написаний в справочнике запутываются даже его создатели, так как на одной улице можно часто встретить разные действующие записи одного дома. Например, в поселке Новый (Красногорский район Московской области) в КЛАДР есть запись с домом 8 и отдельно с двлд8. Теоретически, домовладение и дом — разные вещи, однако в реальности мало кто пишет «домовладение», и можно смело считать, что двлд и просто дом — одно и то же.

Теоретически, КЛАДР — это справочник адресов, на который все должны опираться при составлении любых справочников с адресами, и, следовательно, должны хранить некий ключ к этой базе, чтобы иметь возможность синхронизоваться с самим КЛАДР для получения обновлений. Но код КЛАДР — единственный идентификатор в этом справочнике — может меняться от версии к версии для одних и тех же объектов. Поэтому в других справочниках вы не найдёте его как ключ к адресной базе, везде для указания адреса служит только адрес без каких-либо id. Это плохо тем, что адреса в справочниках могут содержать ошибки, быть неактуальным или вообще не существовать, и чтобы привести его к КЛАДР, потребуется приложить немало усилий (или воспользоваться сервисом dadata.ru).

Где эта улица, где этот переулок?

В КЛАДР запись адреса разбита на уровни (регион, район, город, населённый пункт и улица), и для каждого уровня есть тип и наименование. Например, тип — автономный округ, наименование — Ямало-Ненецкий… К сожалению, не всегда можно точно определить, что наименование, а что тип. И не всегда понятно, что проблема КЛАДР, а что на самом деле так называется.

Например, можно встретить такие адреса:
И снова: слабонервным не смотреть
Тип: «Автономный Округ»

Наименование: «Ханты-Мансийский Автономный Округ — Югра
»
Согласно КЛАДР адрес правильно писать так: Россия, Автономный Округ Ханты- Мансийский Автономный Округ — Югра, …

Тип: «Чувашия»
Наименование: «Чувашская Республика -»
Да-да, прямо так — с дефисом в конце. И тип отличный.

Тип: «Улица»
Наименование: «КВАРТАЛ НОВЫЕ ЧЕРЕМУШКИ 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
Автор: @AlexGechis
HumanFactorLabs
рейтинг 145,54
Качество и интеграция клиентских данных

Комментарии (74)

  • +7
    КЛАДР еще поддерживается?! Осуществил переход на ФИАС еще весной 2012 года. Примерно тогда же на Хабре была первая новость о ФИАС. Намного более адекватная схема таблиц. Конечно, все равно потребовалось выкинуть лишнее, немного перестроить таблицы и построить индексы, но ощущения намного приятнее чем от КЛАДРа. Чем именно сложно сказать, т.к. давно ушел из той компании и, к счастью, больше не имею дела ни с КЛАДРом, ни с ФИАСом.
    • 0
      КЛАДР поддерживается. Всё никак не разберусь с кошерным регулярным переводом обновлений ФИАС на сайт.
      • 0
        Действительно, тема.
        Кто-нибудь из уважаемых коллег озадачивался, как безболезненно сделать заливку ФИАС на сайт?
        • 0
          Лично у меня пока не получилось. Рассматривал пока варианты только с dbf: как-то напрягает парсить 14-гигабайтный xml на веб-сервере. Но в dbf есть blob-поля, которые PHP не понимает. Пока продолжаю думать.
          • 0
            Через потоковый (sax?) xml парсер затягивал ФИАС достаточно быстро в БД.
            Ну как быстро, несколько минут. Правда потом выстраивание полных заголовков для поиска и вычистка всевозможной ереси занимала несколько часов. Но в этом скорее руки виноваты, надо было оптимизировать нормально.
        • 0
          Засовывали в MySQL с нормализацией попутно, с помощью потокового XML-парсера. Потом положили все в Sphinx и искали.
        • 0
          Конвертировал dbf в SQLite и потом приносил полученную базу в rpm-пакетах стандартными средствами обновления. Т.к. в базу ничего не пишется, только читается — отличный вариант. Частичное обновление делать смысла не вижу, те пара часов, что нужны на конвертацию всей новой версии ФИАС в нормальную структуру и построение индексов, вряд ли для кого-то критичны. Регулярный запуск же конвертера можно делать кому как больше нравится.
  • 0
    Все-таки малый размер КЛАДРа — это большое преимущество, если вам нужно его регулярно автоматически обновлять. Конечно, у ФИАСа есть инкрементальные выгрузки, но это ж приходится городить отдельную логику частичного обновления…

    С КЛАДРом все просто — скачал да залил целиком.
    • +1
      «Все просто» — это когда КЛАДР слабо интегрирован с вашей системой. Например, используется только для подбора адресов при вводе, а сами адреса хранятся в текстовом виде. Если же адреса в системе — самостоятельные сущности со ссылками на них, то обновление превращается в долгий, мучительный, полу-ручной и чреватый ошибками процесс.
      • 0
        У нас в системе адрес очень даже самостоятельная сущность :-) А в чем мучительность обновления?
        • 0
          Как у вас выглядит, к примеру, переименование нас. пункта?
  • +4
    Краткое резюме: ФИАС — тот же КЛАДР, только в профиль.
    Попытались сделать нормальную структуру, при этом на порядки вырос объем.

    Спасибо за примеры адресов — очень полезно для тестирования.
  • +4
    А ещё вот такое бывает — 1432 км.
    • 0
      Самое сложное в случае переименований это то, что люди продолжают по инерции писать старые адреса (и так, вероятно, удобнее). При автоматическом разборе таких адресов иногда просто невозможно восстановить актуальное название:)
  • 0
    Дубли. По КЛАДР в Москве есть две разные улицы 8 Марта, которые, судя по индексу, сильно удалены друг от друга, и на них есть одинаковые дома.

    А при чём тут КЛАДР, если в Москве действительно две разные улицы 8 Марта. Или Вы считаете, что названия улицам присваивают составители КЛАДР?
    • +1
      Простите, видимо, не совсем ясно выразил свою мысль. В Москве действительно есть улицы 8 Марта, 8 Марта 1-я и 8 Марта 4-я. Это можно увидеть на любой карте, например, в Яндексе и 2ГИСе. А в КЛАДР есть улицы 8 Марта, 8 Марта 1-я, 8 Марта 4-я и ещё одна 8 Марта.
      • +5
        Это запасная, на случай если первую закроют. Резервирование улиц для повышенной надежности справочника в условиях высоких нагрузок :-)
      • +1
        Нет, Вы выразились ясно, и я Вас понял, но в Москве действительно есть две улицы 8 Марта, без всяких 1-я или 4-я. Одна в районе Аэропорт, вторая в Южном Бутово. Посмотрите в том же Яндексе. Так что КЛАДР здесь не виноват.
        • 0
          Да, Яндекс выдаёт нам ещё одну улицу 8 марта в посёлке Липки в Москве, по всей видимости в КЛАДР имеется в виду она. Вероятно, стоило поместить её и в КЛАДР в соответствующий поселок. Но даже если так, что делать с остальными дублями? Их там довольно много, примеры я приводил в статье, и далеко не все действительно существуют.
          Относительно вопроса виновности КЛАДР. Мне кажется, что целью создания адресного справочника является не только отражение текущей картины, но и наведение порядка, в том числе удаление дублей. Система должна работать так, чтобы при добавлении территорий с одинаковыми названиями, добавляющие были вынуждены сделать переименование объекта.
      • 0
        Сравните Трубецкой пер(77000000000718300) и Хользунова пер(77000000000718300) — номера одни. Последний байт я не показываю.
        Там в младших битах есть такого чего интересного. В частности переименование или обьединение улиц.
        • 0
          Сравнил, Трубецкой переименован в Хользунова. Не совсем понял, в чем состоит вопрос?
          Кстати, в ФИАС, в отличие от КЛАДР, причина неактуальности раскрыта гораздо шире в поле «статус действия»
          • 0
            Тогда я спрошу пояснения — уже как пару лет «КЛАДР» это «ФИАС в формате КЛАДР».
            И там одна улица 8ого марта.
            И причины «неактуальности», точнее результат, есть (в достаточном обьеме) как в ALTNAMES, так и в младших битах.
  • +2
    В номерах домов встречаются откровенные ошибки, например, «08а» и «0п».

    А почему вы решили, что указанные номера — откровенные ошибки?
    08А — реальный номер дома, например, в городе Электросталь по улице Первомайской. И от дома 8А по той же улице он отстоит почти на километр.

    Там дело было в том, что несколько улиц продлили в сторону за домом номер 1. Но отрицательным числам не все люди обучены, поэтому начали нумеровать с ведущим нулем — 02, 04, 06, 08, 010…
    • +1
      Представляю что бы было, если бы номер дома сделали -8А:) Большое спасибо за комментарий, я действительно привёл неудачный пример в данном случае и сделал неверное заключение.
      • +1
        Я уж не знаю, что лучше -8 или 08. Сообщить такой адрес стороннему человеку без дополнительного пояснения того, что 08 это не 8 все-равно невозможно. Мне повезло и я там жил в «положительном» доме — соседям регулярно приходили письма, которые должны били прийти в «отрицательный». А сколько раз люди искали в 6-ом доме ЖЭК, который находился в 06-ом и не сосчитать.
        • +1
          Наверное, наиболее правильным решением было бы идти в сторону увеличения номера. Тогда, правда, дом номер 100 может быть сильно отдалён от дома 99, но такой путаницы как описываете вы не возникнет.
          А ещё в некоторых системах номер дома хранится с типом integer…
        • +2
          Интересно, что мешало продлению выдать другое название улицы?
  • +1
    Ещё бы для каждого дома хранились координаты, цены бы не было этой базе.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Не понимаю почему до сих пор ничего в этом направлении на госуровне не делают.

        Потому что большинство чиновников до сих пор в 90-ых.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      По-моему, Россия тут приятное исключение. У большинства стран аналогичных открытых справочников просто нет. Посмотрите, как люди мучаются.
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Ну тут проблема не в несовершенстве технических методов, а в нежелании всех под одну гребенку «причесываться».
          В каждой местности есть свои традиции адресации. Отказываться от них нет желания. Есть индекс — оно доводит корреспонденцию до местного почтальона. А Для местного почтальона понятие валидности сое — он знает как доставлять. А то получается абсурд — я знаю, что фраза «На деревню дедушке» наиболее понятным образом объясняет почтальону куда нести письмо, а идиот, сидящий в банке требует какой-то «населенный пункт».
          А есть еще огромное количество временных (и даже кратковременных) точек доставки корреспонденции.
    • +1
      Как сказать освоили. На основной работе, в интернет-провайдере мы свою базу адресов абонентов собирали. Опираясь на КЛАДР, опираясь на паспортные данные абонентов. Удивительное дело, паспортистки по-разному могут прописать адреса жильцов в одном подъезде. Ладно бы хоть подъезды отличались… Это конечно создавало определенные проблемы с определением итогового house_id и куда все-таки абонентов отнести. А там и определение оборудования, которое в этом доме стоит (по тому же house_id), и привязка к дому в openstreetmap. Так что как сказать, как сказать…
  • +3
    Я покажусь большим ретроградом если скажу что?:
    1. Денормализация базы в НСИ есть странное решение.
    2. Те же изменения можно было бы реализовать в старой структуре.
    3. Методологическая подготовка у ФИАС на порядок хуже КЛАДРовской.
    4. Кардинальных движений с момента пуска КЛАДРа в бой так и не произошло.
    Не то что бы «Всё плохо», но гордится ФНС особо нечем в данной реализации.
    КЛАДР — да, то был прорыв, а это даже не эволюция, так бантики современные. =)
    • 0
      Мне вообще нравится КЛАДР. Вот только айдишников фиасовских ему не хватает, это да.
      • 0
        КЛАДР расширяем.
        К фасетному коду дописать справа 2-3 знака не составит труда. Видел такую бету вполне рабочая без кардинальной смены хранения.
        Сделать КЛАДР код «до дома» даже «до квартиры» задача в этой структуре не сложная.
    • 0
      Полностью согласен — эти изменения можно было бы сделать в старой структуре. Вероятно, создатели задумывают нечто большее, что было невозможно в старой структуре, и то, что мы видим сейчас — только первый шаг. Посмотрим.
      И да, как уже сказали, id дома в КЛАДР очень не хватает.
      • 0
        Только вот что то затягивают они появление этого нечто.
        А вот проблемы с консистентностью данных из-за изменений уже поимели не раз.
  • +1
    Отдельно доставляет то, что ФИАС распространяется исключительно в виде rar-архивов. Для КЛАДРа-то хоть есть 7z.
    • 0
      Но unrar официально бесплатен, не вижу проблемы.
    • 0
      7zip умеет unrar'ить.
  • +1
    Писал парсер как КЛАДР, так и ФИАС. ФИАС по своей структуре гораздо более логичный и человечный. Чего только parent_id стоит, и все идентификаторы GUIDом, в отличии от отбрасывания порядковых цифр в КЛАДР. иерархия адресов строится быстро и без проблем.
    Кстати проблему с районом я решил добавлением ОКАТО, где районы городов таки есть.
    • 0
      ОКАТО


      Который недавно заменили на ОКТМО :)
      • 0
        Не для всех применений.
  • +2
    После знакомства с ФИАС и КЛАДР по долгу службы, субъективно могу сказать, что ФИАС лучше.
    Плюсы:
    + Постоянные guid'ы у объектов
    + КЛАДР внутри
    + Хорошо документирован (есть на оф. сайте, fias.nalog.ru, если я не ошибаюсь)
    Минусы:
    — Размер. Причем полезной нагрузки, нужной большинству пользователей там нет. Такой огромный размер получается за счет храния истории объектов (старые названия и пр). Я бы, на месте разработчиков, вынес это в отдельные файлы.
    — Вытекает из предыдущего пункта — неудобно парсить
    — Бардак попытались устранить, но он остался. Есть населенные пункты без улиц. Есть улицы с признаком «жилая», но родитель у нее — нежилой город. Что с такими объектами делать — непонятно.

    Ну и немного веселья из ФИАСа. Названия:
    Уровень города:
    — Волхов ул.Металлургов 17а
    — Упоровский муниципальный
    — в районе деревни Матокса

    Уровень населенного пункта:
    — Гаражи в районе ул.Профсоюзов 48а
    — Общество неработающих пенсионеров
    — Гаражи во 2-м районе горы Лысуха
    — Рассвет АТБ1 от д Малая Кускунка
    — Железнодорожная Казарма 253 км
    — Отдельный Дом Дачи Художников

    Уровень улиц:
    — Гаражи в р-не очистных сооружений Блок 3
    — Левая сторона дороги Оренбуг-Орск 12.400
    — За администрацией поселка (левое крыло)
    — садоводство «Волхонское», Любимая улица
    — Сараи (за гаражами по ул Дзержинского)
    — Зона хранения вооружений и боеприпасов
    — г.Санкт-Петербург, Малый Резвый остров

    И еще много такого, после чего звонят клиенты и спрашивают, а почему у нас в одном городе нет улицы ХХХ, а в поселке, который к городу относится, таких улиц три? Благо, на оф. сайте есть поиск онлайн и мы их туда отправляем убедиться, что это ФИАС такой.
    • 0
      К сожалению, перемещение неактуальных объектов в отдельные файлы не так сильно уменьшит размер базы, как того хотелось бы. В КЛАДР ведь тоже есть история переименований, и его вес радует, так что дело как раз в не полезной для пользователя нагрузке. И сами гуиды тоже добавляют. И не последнюю роль играет построчное разбиение домов: один дом — одна строка.
    • 0
      И ещё там нет большого количества адресов. Например, в Республике Ингушетия и Дагестане нет около 95% всех домов. Города есть, населённые пункты есть, улицы есть, а домов на них нет. Может, там используют свой другой справочник?
  • 0
    У меня только один вопрос: почему бы им не сделать справочник адресов в формате реляционной БД (со всеми связями между таблицами, да)? Чтобы его просто всосать в МySQL/Postgresql/Oracle/MSSql и не мучаться.

    Обновления тoгда можно было бы рассылать просто в виде пачки команд DML.

    Ну и да, поле техсостояния не совсем понятно зачем нужно. Типа, ЖКХ-шники попросили примотать? Лучше бы геоданные примотали (хотя бы в виде точки).
    • +1
      Это нужно чтобы сократить затраты на работу по сведению разных справочников в большом количестве муниципальных организаций, возможности построения различной статистики и истории развития по регионам, для большей прозрачности. Мне бы очень хотелось, чтобы ФИАС развивался и исправлял все ошибки, которые есть сейчас, и в перспективе стал действительно эталонной базой.
      Ничего не мешает и сейчас загрузить его, например, в Oracle. Связи между таблицами все есть. Присутствует неконсистентность, это да, но связи есть. Вопрос в качестве того, что внутри у КЛАДР и ФИАС, и как с этим работать.
      • 0
        Составление справочника напрямую в БД, со всеми констрейнтами гарантировало бы непротиворечивость сразу. Муниципальным организациям — дать доступ через веб или какой нибудь клиент для сверки, корректировки и внесения данных (доступ через VPN или сертификат или типа того).
        • 0
          Так а это и сейчас, наверное, есть. На тему клиента не уверен (да и не нужен он, мне кажется, чтобы работа со справочником не привелась к полной анархии), но база данных, откуда выгружаются КЛАДР и ФИАС, очевидно, есть. Мне кажется, что в текущей системе всё сильно зависит от людей: сделал корректировку — молодец, не сделал — другие люди будут мучиться и никто ничего не поправит. Проверок вносимой информации тоже, по всей видимости, нет: никто не берёт на себя ответственность.
  • 0
    А если нужен справочник адресов с геопривязкой? Кто-нибудь решил для себя эту проблему? На ум приходит только выдирание их из OSM.
    • 0
      Если не попадаете под лицензионные ограничения Яндекс и храните координаты только в кэше, то можно использовать его АПИ. Правда, с ним надо работать аккуратно и проверять что он возвращает.
    • 0
      Если подождете до сентября, то у нас в dadata.ru появится проставление геокодов для адресов.
    • 0
      На openstreetmap.ru есть API для подобного случая. Однако в небольших населённых пунктах дома не все нарисованы и не на всех проставлены адреса. Так что в подобных случаях придётся поработать на благо OSM самому.
  • +1
    Часто встречаются случаи, когда в номере дома содержится литера

    Вы точно не путаете буквы в номере дома с литерой? Т.к. это вещи разные. Вот например: г. Санкт-Петербург, 7-я линия В.О., дом 64а, литера Г
    • 0
      Как я люблю Питер с его чудесными домами… Взять, например, следующие:
      набережная Обводного канала 134_136_138к233литерА — это как в КЛАДР, ФИАС же такие адреса пишет как 134_136_13 корпус 233 строение (литера) А, что кстати есть ошибка из-за неправильного номера дома (потеряли 8 в конце) и написания с нижним подчёркиванием вместо дефиса
      Красных Партизан 5 литер АБВГ
      Дачная (Горелово) 162 литер АА1А2

      Да, согласно классификации КЛАДР дома 64А, 64 литера А и 64 корпус А — совершенно разные дома. Но, мне кажется, судя по похожести написаний в рамках улицы, вызвано это никакими не правилами, а отсутствием стандартов. То есть, где-то воспринимают А как часть номера дома, где-то как строение, а где-то как корпус (… а где-то вообще не задумывается). Сейчас ФИАС верит источнику и А может уйти в одно из трёх полей в зависимости от формата записи в КЛАДР, однако в ФИАС есть поле под строение и тип «литера», и, мне кажется, что все литеры должны попадать в это поле, если это не литера номерного корпуса или строения. В вашем случае, скорее всего, дом стоит писать как 64АГ, что наверняка так и делается в жизни (на картах и в поиске я его не нашёл).

      Это похоже на историю с домовладениями — они вроде есть, и вроде дом — это другой тип в КЛАДР, но их никто не пишет как домовладения, а пишут как дома.
  • 0
    Очень огорчает отсутствие в ФИАСе информации о районах и муниципальных образованиях, микрорайонах.
    Мне необходимо было построить полную иерархию, выкрутился тем, что на каком-то сайте нашёл данную информацию, написал паука и натравил полученные данные на ФИАС. Связка осуществляется по ОКАТО / ОКТМО. Но всего этого конечно хотелось бы избежать…

    P.S. Было бы ещё супер круто иметь геокоординаты, но это вообще из области фантастики :-)
    • 0
      Я, в свое время, не поленился и связал базу КЛАДРа с базой OSM.
      Тут тебе и геометрия улиц, и границы городов и регионов, ну и дополнительная информация (хотя бы ОМК УМ).
      К сожалению OSM еще очень далеко не полон, и связывается далеко не все.
      Ну и опечатки в названиях улиц в обеих базах такие, что комраде Левенштайн не всегда помогает.
      Самое главное — не особо верить полю cladr:code в OSM — его туда явно не робот заливал, а человеки.
      Районы, кстати, тоже покуда по ОКТМО определяю (http://postindex.esosedi.ru/77-moskva/st-653186-frunzenskaya/index.html — хамовники). Но так нельзя — надо будет полигональный тестер натравить (благо он есть).
      Причина проста — например в Подольске есть районы города, но ОКТМО — один (и называется — Подольск).

      PS: Уже полтора года все думаю — «вот допилю и выложу для желающих нормальную, цельную базу». И как всегда…
      • 0
        Одно время некоторые энтузиасты указывали cladr:code в OSM (но это было года 3 назад), а сейчас этим никто не занимается и опираться на этот тег не стоит.
        • 0
          ИМХО, как завещала википедия, надо некоторые данные привязывать к внешним источникам, хотя бы для проверяемости.
  • 0
    Странно, скачал базу DBF версии от 28.07.2014 отсюда fias.nalog.ru/Public/DownloadPage.aspx, в ней нет таблицы ADDROBJ 0_0
    • 0
      В последней версии вернули. Судя по весу архивов, они её потеряли ещё 21го июля.
      • 0
        Неплохо так, потеряли :) Примечаний к релизам я там что-то не вижу.
        • 0
          Ну, это ведь не совсем релиз, а актуальный срез БД
          • 0
            Да, вы правы. А вот насчет актуального среза — правильно ли я понимаю, что, скачав последнюю базу целиком, я получаю не только актуальные записи, но и не актуальные, со статусом 0 в соответствующем поле (точно не помню название)?
            • 0
              Да, именно так. Только там статусов немного больше: переименован, переподчинён,…
              • 0
                Вот, если я не ошибаюсь, то просто получить текущее состояние базы, без истории подчинений-переподчинений, нельзя. И нужно так или иначе идти с первой записи подряд и повторять все операции над объектом по полю AOGUID. В выборке из первых 5151+7577 строк, 5151 со статусом «0» и 7577 со статусом «1» — почти половина :))
  • 0
    Завести форум на сайте фиаса и там обсуждать все неточности. я уверен что силами сообщества можно привести данные к более менее адекватному виду. Сейчас занимаюсь внедрением ФИАС — нашел немало некорректных записей и с удовольствием отписался о них. Тестировщики будут тестировать функционал и по-любому тоже найдут ошибки. Жаль что у нас все так просто не делается…
    • 0
      Из-за нашей федеративной системы налоговой нужно давить на регионы, чтобы они добавляли отсутствующие данные, а они часто этот процесс саботируют. Поэтому с добавлением данных не все так просто. Мы в DaData.ru дополняем стандартные справочники теми адресами, которых в них нет — для целей проверки доставки, а не для целей сдачи отчетности в налоговую. Можете присылать нам, дадим бонус на тестирование сервиса :)
  • 0
    Мы возвращаем два индекса: индекс по КЛАДР для отчётности перед различными структурами и индекс для доставки корреспонденции, чтобы письмо все-таки дошло по адресу.

    К dadata.ru это не относится? Там один индекс. Судя по всему — по КЛАДРу.
    • 0
      К dadata.ru — нет. Это возможности Фактора, в dadata.ru их тоже можно добавить, если будет спрос. Если вам это будет полезно, можете зарегистрировать запрос на нашем форуме: dadata.userecho.com, добавим.

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

Самое читаемое Разработка