коды кладр д коваши
Как перейти от КЛАДР к ФИАС и ничего себе не сломать
ГНИВЦ ФНС сообщает, что с начала 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, в ней для каждого уровня хранится соответствие сокращённых и полных типов.
И напоследок хорошая новость для тех, кому лень запариваться всем перечисленным. В ближайшее время мы планируем выпустить ФИАС в формате КЛАДР для тех, кто не успеет перейти на формат ФИАС до конца года. Следите за новостями 🙂
КЛАДР 2016 – онлайн-классификатор адресов России
Регфорум предлагает вам актуальный КЛАДР 2016 года. С его помощью вы можете быстро узнать почтовый индекс, номер территориальной налоговой инспекции, регистрирующего органа, к которому прикреплен адрес, а также выяснить коды ОКТМО и ОКАТО. Предоставляем вам КЛАДР бесплатно и без дополнительных условий. Просто начните использовать его прямо сейчас!
Инструкция по использованию КЛАДР
Вы можете использовать наш классификатор КЛАДР для нахождения требуемой информации двумя способами: через «Выбор» и «Поиск». В нем нет адресов, имеющих любую степень секретности. У закрытых административно-территориальных образований в КЛАДР России указывается только их наименование. Файлы классификатора создаются из базы данных Федеральной информационной адресной системы.
Чтобы выбрать адрес и получить желаемый код КЛАДР, кликните по первой строке, где указано «Москва», если вам нужен другой регион. В открывшемся окне найдите субъект РФ в списке или начните набирать его в поисковой строке. Таким же образом выберите город и улицу. И вы получите искомые данные, для которых наш КЛАДР предоставит вам список домов и другую информацию.
Чтобы найти адрес по названию, нажмите на вкладку «Поиск», укажите регион, если это не «Москва». Затем выберите что искать: улицы или другие объекты. Введите название объекта или его часть, нажмите «Искать», и выберите улицу из представленного списка. В зависимости от объекта наш справочник КЛАДР предоставляет вам возможность выбрать дом или просмотреть все адреса с информацией по ним. Если кликнуть по индексу, то отобразятся адрес почтового отделения и его телефоны.
О КЛАДР
Чтобы распределить территории между налоговыми инспекциями и автоматизировать рассылку корреспонденции был создан классификатор адресов КЛАДР для ведомственного использования в ФНС. В нашем сервисе всегда актуальный КЛАДР адресов 2016 года для всех регионов РФ, включая Крым. Используя вкладку «Выбор», вы можете найти адрес в конкретном населенном пункте. Если воспользоваться вкладкой «Поиск», то можно найти объект с определенным наименованием в одном или всех субъектах РФ.
Мы постарались сделать этот инструмент удобным и интуитивно понятным для вас. Нам бы хотелось совершенствовать наш онлайн-сервис КЛАДР, поэтому будем признательны вам за отзыв о его работе.
10 фактов о КЛАДР
Текущая версия датирована 18 февраля 2016 года. КЛАДР на Регфоруме обновляться не будет. Сервис будет заменен на ФИАС.
Российский классификатор адресов КЛАДР содержит все адреса России, а теперь еще Крыма и Севастополя. Важно во все заявления и формы вносить именно тот адрес, который указан в классификаторе, так как КЛАДР в Москве и по всей России используется налоговыми инспекциями, регистрирующими органами и различными внебюджетными фондами, такими как ПФР, ФОМС и ФСС.
В нашем онлайн-сервисе вы можете узнать: 1) адрес объекта по названию, 2) номер регистрирующего органа, 3) номер территориальной налоговой инспекции, 4) код ОКТМО, 5) индекс, адрес и телефоны почтового отделения. Надеемся, что наш удобный и быстрый сервис будет вам полезен.
ФИАС или КЛАДР: выбираем справочник адресов
1 июля 2014 года произошло одно из самых значимых событий в истории государства Российского: с этого момента у нас в стране наконец появилась эталонная база адресов по всем, даже самым малым населённым пунктам! Имя этой базе — ФИАС. Собственно, сам по себе справочник ФИАС появился гораздо раньше, но именно 1 июля вступил в силу ФЗ 443, согласно которому все государственные и муниципальные структуры теперь должны опираться на него как на единственно верную базу адресов. Мы решили исследовать, стоит ли переходить на ФИАС, и с какими подводными камнями столкнутся те, кто решит это делать.
Почему не КЛАДР?
В настоящий момент времени основным адресным справочником России считается КЛАДР. Почему он не устроил людей, и откуда появилась необходимость в новом?
Изначально КЛАДР, скорее всего, задумывался как понятный структурированный справочник, содержащий актуальную информацию по адресам всей России. В настоящее время это, к сожалению, далеко от истины. Есть много особенностей в записях КЛАДР, и мы сейчас расскажем про самые интересные из них.
Ад в номерах домов или страшный сон программиста
Похоже, что из-за обилия различных написаний в справочнике запутываются даже его создатели, так как на одной улице можно часто встретить разные действующие записи одного дома. Например, в поселке Новый (Красногорский район Московской области) в КЛАДР есть запись с домом 8 и отдельно с двлд8. Теоретически, домовладение и дом — разные вещи, однако в реальности мало кто пишет «домовладение», и можно смело считать, что двлд и просто дом — одно и то же.
Теоретически, КЛАДР — это справочник адресов, на который все должны опираться при составлении любых справочников с адресами, и, следовательно, должны хранить некий ключ к этой базе, чтобы иметь возможность синхронизоваться с самим КЛАДР для получения обновлений. Но код КЛАДР — единственный идентификатор в этом справочнике — может меняться от версии к версии для одних и тех же объектов. Поэтому в других справочниках вы не найдёте его как ключ к адресной базе, везде для указания адреса служит только адрес без каких-либо id. Это плохо тем, что адреса в справочниках могут содержать ошибки, быть неактуальным или вообще не существовать, и чтобы привести его к КЛАДР, потребуется приложить немало усилий (или воспользоваться сервисом dadata.ru).
Где эта улица, где этот переулок?
В КЛАДР запись адреса разбита на уровни (регион, район, город, населённый пункт и улица), и для каждого уровня есть тип и наименование. Например, тип — автономный округ, наименование — Ямало-Ненецкий… К сожалению, не всегда можно точно определить, что наименование, а что тип. И не всегда понятно, что проблема КЛАДР, а что на самом деле так называется.
Например, можно встретить такие адреса:
Тип: «Автономный Округ»
Наименование: «Ханты-Мансийский Автономный Округ — Югра »
Согласно КЛАДР адрес правильно писать так: Россия, Автономный Округ Ханты- Мансийский Автономный Округ — Югра, …
Тип: «Улица»
Наименование: «КВАРТАЛ НОВЫЕ ЧЕРЕМУШКИ 32А»
Нам на разбор регулярно приходят замечательные адреса вида: Москва квартал Новые Черемушки 32А к8, кв xxx — заметьте, что, согласно КЛАДР, номер дома находится в наименовании улицы, и тип улицы не «квартал», а «улица».
Тип: «Переулок»
Наименование: «Ул. Советская»
В деревне Досотуй в Читинской области, есть улица «Советская» и переулок «Ул. Советская». Поэтому адреса Досотуй ул. Советская и Досотуй переулок ул. Советская — разные адреса
Лев или Толстой?
В КЛАДР много ошибок. Индексы из пяти символов, дублирующие записи домов с двойной нумерацией и прочее.
Так что если адрес есть в КЛАДР, то не факт, что он существует в реальной жизни, и наоборот.
Что с ФИАС
Давайте посмотрим, что представляет из себя ФИАС, и решает ли он проблемы КЛАДР.
Данные и структура
Первое, на что обращаешь внимание при работе с ФИАС — информации больше, чем в КЛАДР. Но полезной информации прибавилось не так много, как хотелось бы. Я выделил наиболее значимую адресную информацию в виде сравнительной таблицы ниже.
Поле | КЛАДР | ФИАС |
---|---|---|
Регионы и города федерального значения | + | + |
Районы | + | + |
Города и сельские округа | + | + |
Районы города | — | — |
Улицы | + | + |
Дома и расширения | + | + |
Индекс | + | + |
Статус центра | + | + |
Статус действия (что произошло с объектом: переименован, переподчинён. ) | + (условно закодировано в коде КЛАДР, но очень скудная расшифровка кодов) | + |
Статус актуальности | + | + |
Дата начала и окончания действия записи | — | + |
Состояние дома (требует ли ремонта, насколько) | — | +(но актуальность данных под сомнением, так как у более 95% домов одинаковый статус) |
Геокоординаты объекта | — | — |
Данные о квартирах (список, количество или диапазон) | — | — |
Население (на любом уровне) | — | — |
Признак моногорода | — | — |
Уникальный ID для каждого дома | — | + |
Назначение здания (жилой/не жилой) | — | — |
Этажность, год ввода в эксплуатацию, материал стен дома | — | — |
Таким образом, из полезного можно выделить только фиксированный ID дома, который, как предполагается, никогда не будет меняться и может служить ключом для внешних систем, а также даты начала и окончания действия записи. В остальном вся новая информация состоит из идентификаторов, которые периодически дублируют друг друга или являются частью других.
Качество информации о домах
В ФИАС есть две таблицы для домов. Структура данных сама по себе очень радует: для всего есть своё поле.
Первая таблица, HOUSE, содержит номера домов, и для каждого есть следующая информация:
Какие основные отличия от таблицы домов в КЛАДР?
Вторая таблица с домами, HOUSEINT, содержит интервалы домов. В КЛАДР в таблице домов содержатся записи вида Н(1-999), — это означает все нечётные дома из интервала 1 – 999. В ФИАС они разбиты на поля: начало интервала, конец, и его признак. К сожалению, содержимое этой таблицы так же далеко от истины, как и в КЛАДР: например, в Кирове есть неправдоподобно длинная улица Щорса, на которой есть все дома в диапазоне от 1 до 9999.
Качество всего остального
Посмотрим чуть выше — на адресные объекты вплоть до улицы. Они находятся в таблице ADDROBJ.
Формат
ФИАС доступен в трёх видах: формат КЛАДР, dbf и xml. Последний мне показался наиболее удобным — файлы не разбиваются по регионам в отличие от dbf, а хранятся в скомпонованном виде в xml. Однако вес исходного справочника в таком формате составляет около 14Гб.
ФИАС в формате dbf весит 9Гб вместо 14Гб, однако имеет не очень удобную структуру: таблицы домов и нормативных документов разбиты по регионам, и в итоге ФИАС в таком представлении содержит 187 файлов.
ФИАС в формате КЛАДР по сути и наполнению — то же самое, что и сам КЛАДР, за редким исключением, и весит он те же самые 330Мб. Построчное сравнение таблиц КЛАДР и ФИАС в формате КЛАДР выявило менее 0.1% расхождений, которые, вероятно, вызваны разным временем выгрузки рассматриваемых баз КЛАДР и ФИАС.
Что думает бизнес
Как может повлиять на работу переключение с КЛАДР на ФИАС? Готов ли бизнес переходить на этот справочник?
Наши коллеги из банков, для которых использование адресной информации является ключевым на всех этапах, не видят бизнес преимуществ перехода на ФИАС, однако планируют это делать, чтобы соответствовать требованиям регулятора. Из-за перехода всех федеральных агентств, министерств и ведомств на ФИАС в перспективе могут возникнуть требования использовать ФИАС при общении с ними (госуслуги, СМЭВ, отчетность, ЦБ).
Выводы
Самой большой проблемой официальных справочников в России была и остаётся неактуальность представленной информации. Пока не будет нормальной налаженной системы по пополнению ФИАС, не будет проверяться качество данных и не будет произведён рефакторинг того, что уже есть в справочнике, мы будем встречаться со всеми теми же проблемами, что и в КЛАДР.
Основными плюсами ФИАС являются начальные попытки стандартизации адресов и наличие стабильного ключа для каждого дома.
Итак, пока переход на ФИАС имеет смысл только как задел на будущее. Если вы уже работаете с КЛАДР и не взаимодействуете со внешними системами, то можно не переходить на ФИАС, а использовать КЛАДР дальше. Если вы только начинаете своё знакомство с адресами и планируете подключать их в свой продукт, или вам требуется отчётность и интеграция, то стоит выбирать ФИАС.
Задача со звездочкой: как мы перекодировали ФИАС в КЛАДР
С 1 января ФНС перестанет обновлять адресный справочник КЛАДР. Он официально устареет, останется один ФИАС. Но многие промышленные системы до сих пор работают с КЛАДР. Поставщики не собираются их обновлять, а переделывать своими руками бизнесу выходит долго и дорого.
Мы послушали клиентов и придумали решение: взять ФИАС, который живее всех живых, и написать перекодировщик в КЛАДР.
Со стороны задача кажется легкой. Нам так и говорили: «То есть вы просто берете ФИАС и переделываете в КЛАДР?». На деле никакого «просто» нет. У справочников совсем разные структуры и непонятно, как из подкачанного ФИАС раскидать данные в неказистый КЛАДР. При этом общей документации для справочников нет.
Это было веселье, которым мы сейчас щедро поделимся.
Сопоставили структуры справочников
ФИАС весит порядка 28 Гб, в нем около 450 таблиц. КЛАДР — это примерно 500 Мб и 6 табличек. Данные для КЛАДР лежат всего в трех таблицах ФИАС. Остальные для перекодирования не нужны, их КЛАДР не предусматривает.
Если на схеме в скобках стоит «», значит, для каждого региона есть своя табличка с подобным названием
Переносить запись за записью не получится: сломаются или связи между таблицами, или логика внутри таблиц, или еще что-нибудь.
Например, в ФИАС один дом — это одна запись в таблице. Мы на радостях перекидали дома один за другим в КЛАДР, и справочник фатально разбух: 3,5 Гб против нормальных 500 Мб.
КЛАДР — скромняга, он не может себе позволить отдельную запись под каждый дом. Поэтому похожие дома в справочнике сгруппированы в одну строку. При этом их номера на голубом глазу хранят в поле NAME через запятую.
Когда дома находятся на одной улице и различаются только номером, их записывают в одну строку
Тогда мы принялись загружать из ФИАС улицу за улицей и группировать дома по записям. Отсчитываешь, столько номеров влезет через запятую в NAME, и создаешь в КЛАДР общую запись для этих домов. (В NAME, к слову, 40 символов.) Дело пошло́.
Для тех, кто решится повторить наш путь: так выглядит диаграмма зависимостей ФИАС и КЛАДР
Обычная проблема перекодировки: неясно, как переносить поля между похожими таблицами, а документация не выручает. Удивляться нечему, потому что документацию писали явно не для перепиливания одного справочника в другой.
Например, в ФИАС есть поля:
Еще пример. Это описание полей в ФИАС:
В итоге мы брали КЛАДР и ФИАС от ФНС и смотрели, как значения полей перетекают из одного справочника в другой. Универсального рецепта нет, поэтому получилась тьма разнородных правил переноса.
Нашли, где брать КЛАДР-коды
КЛАДР-код — главный идентификатор справочника КЛАДР. Только по нему можно однозначно определить адресный объект.
ФИАС тоже хранит КЛАДР-коды. Причем с оптимизацией в справочнике так себе, поэтому из одной только таблицы ADDROB можно получить коды тремя способами:
Ничего страшного, у нас же есть CODE! Снова сюрприз: он пуст так часто, что со временем перестаешь удивляться. А если не пуст, расслабляться рано: код в нем может не совпадать с PLAINCODE.
Подобрались к последнему бастиону: начали склеивать КЛАДР-коды сами. И что бы вы думали? Да, собранный код частенько расходится с PLAINCODE или CODE.
Поняли, как переносить планировочные структуры и дополнительные территории
Разработчики предусмотрели в ФИАС больше уровней адресных объектов, чем в КЛАДР: 13 и 6 соответственно.
При этом в КЛАДР есть объекты «лишних» уровней: планировочные структуры и доптерритории. Это садовые товарищества, дачные кооперативы и т. д. Их переносят из ФИАС с изрядными костылями. Делают так: условное садовое товарищество превращают в улицу, а к названию подчиненных ему улиц в скобках добавляют название товарищества.
В теории сложно, объясню на примере. Допустим, в садовом товариществе «Массив N2 СТ Вишня» есть улица Луговая. При переносе этих объектов из ФИАС в КЛАДР происходит вот что:
Разобрались с переименованиями и переподчинениями
В России постоянно переименовывают и переподчиняют города, области, улицы. Например, подмосковный Железнодорожный 40 лет был городом, а потом внезапно стал районом Балашихи.
В адресных справочниках устаревшие сущности хранят для обратной совместимости. Получаются цепочки версий.
Был город V1. Его переименовали — в справочнике появилась версия V2. Переподчинили — V3. И так далее до V
Цепочки подчинений переносят с учетом уровней, которых нет в КЛАДР. Например, цепочка «улица → район города → город» приходит из ФИАС в КЛАДР в виде «улица → город».
Иногда в ФИАС одна версия объекта отличается от другой только полями, которых вообще нет в КЛАДР. Например, у города Майкоп 20 февраля 2017 года сменился ОКТМО: был 79701000, стал 79701000001. Больше ничего не поменялось, но в ФИАС все равно появилась новая версия объекта. Если изменившиеся данные не предусмотрены в КЛАДР, правильно переносить только новую версию объекта. Мы делаем вид, что прошлой как бы и не было.
А порой объект из-за переподчинения переходит на уровень, которого нет в КЛАДР. Типичная история: поселок Обираловка → город Железнодорожный → район Железнодорожный города Балашиха. Уровня городских районов нет в КЛАДР, и Железнодорожный переселяют с 4-го уровня на 99-й. Казалось бы, повышение, но нет: на 99-м уровне хранят исчезнувшие адресные объекты. Был город, стал деклассированный элемент. Еще и улицы переподчинили, причем хитро: создали в КЛАДР несколько населенных пунктов, передали им улицы Железнодорожного, а населенные пункты — Балашихе.
Разрешили конфликты сокращений
LEVEL | SOCRNAME | SCNAME | KOD_T_ST |
---|---|---|---|
3 | Автономный округ | АО | 305 |
3 | Территория | тер | 303 |
3 | Район | р-н | 301 |
3 | Улус | у | 302 |
3 | Муниципальный р-н | м р-н | 309 |
В КЛАДР таблица сокращений тоже есть, но записей там поменьше. Просто перенести сокращения из ФИАС в КЛАДР нельзя: уровни не совпадают. Некоторых вообще нет, у других разные номера.
Мы долго сравнивали справочники и все-таки вывели ФНС на чистую воду. Вот как она сдвигает уровни сокращений.
ФИАС | КЛАДР |
---|---|
0 | X |
1 | 1 |
2 | 1 |
3 | 2 |
4 | 3 |
5 | X |
6 | 4 |
7 | 5 |
8 | 6 |
9 | X |
35 | X |
65 | 5 |
75 | X |
90 | X |
91 | X |
«X» значит, что уровень просто закрывается. Все сокращения, что были в ФИАС на этом уровне, не попадают в КЛАДР. Например, в справочнике нет внутригородских территорий, помещений в пределах зданий, земельных участков и т. д.
Из-за сдвига уровней появляются проблемы с KOD_T_ST — уникальным идентификатором сокращения. KOD_T_ST состоит из двух частей: уровня сокращения и собственно ID сокращения. При переходе с ФИАС на КЛАДР уровни сдвигаются и появляются конфликты.
В официальном КЛАДР проблему решают лихо: в код одного из конфликтующих сокращений вместо уровня подставляют девятку. Потому что могут. Из-за этого в эталонном КЛАДР код сокращения для района — 911 вместо 511, причем в поле LEVEL остается пятерка.
В документации об этом ничего, конечно же, не написано.
Протестировали в полях
Мы делали из ФИАС такой же КЛАДР, какой поставляет ФНС. Проверяли по трем параметрам:
Через ASVCheck мы проверяли адреса из живого банковского реестра. Сначала прогоняли по официальному КЛАДР, а потом по своему́. Затем, понятное дело, смотрели на отличия.
Тут надо сказать, что ASVCheck — таинственный парень. Он не говорит, почему пометил адрес как неправильный. Отлаживали наугад. Некоторые ошибки вообще выглядели как баг утилиты: она перестала браковать часть адресов, когда мы просто отсортировали записи в своем справочнике по КЛАДР-коду.
Но закончилось все успешно: теперь ASVCheck выдает одинаковый результат на нашем КЛАДР и на справочнике ФНС.
Получили КЛАДР с преферансом и обновлениями
Теперь у нас есть КЛАДР, который будет жить в веках. Нашим клиентам не нужно спешно переделывать ПО под ФИАС: они подключают новый справочник и все работает как раньше.