адрес в паспорте не соответствует кладр что делать
Какие данные по месту жительства физлица нужно включать в отчетность, если паспортные данные не совпадают с КЛАДР?
Г.П. Холодных
автор ответа, консультант Аскон по бухгалтерскому учету и налогообложению
Вопрос
При отправлении в ФСС заявления о выплате пособия по нетрудоспособности указывает на ошибку несоответствия КЛАДР.
Как корректно заполнять адрес сотрудника:
Ответ
При заполнении адреса места жительства следует указывать адрес в соответствии с КЛАДР.
При предоставлении реестра, передаваемого в ФСС, адрес места жительства не заполняется, если в сведениях о застрахованном лице в качестве способа выплаты указан банковский счет.
Напоминаю, что изложенное является экспертным мнением. В связи с отсутствием нормативного регулирования и сложившейся правоприменительной практики по данной ситуации рекомендуем обратиться за разъяснениями в Минфин России, налоговые органы или внебюджетные фонды в зависимости от того, куда предоставляются сведения, содержащие адрес места жительства.
Обоснование
1 июля 2014 года вступил в силу Федеральный закон от 28.12.2013 № 443-ФЗ «О федеральной информационной адресной системе и о внесении изменений в Федеральный закон «Об общих принципах организации местного самоуправления в Российской Федерации». Документ регулирует отношения, возникающие в связи с ведением государственного адресного реестра, осуществлением эксплуатации ФИАС, а также отношения по использованию содержащихся в государственном адресном реестре сведений об адресах.
Пунктом 1 статьи 2 Федерального закона от 28.12.2013 N 443-ФЗ «О федеральной информационной адресной системе и о внесении изменений в Федеральный закон «Об общих принципах организации местного самоуправления в Российской Федерации» предусмотрено, что адрес представляет собой описание места нахождения объекта адресации, структурированное в соответствии с принципами организации местного самоуправления в Российской Федерации и включающее в себя в том числе наименование элемента планировочной структуры (при необходимости), элемента улично-дорожной сети, а также цифровое и (или) буквенно-цифровое обозначение объекта адресации, позволяющее его идентифицировать.
В настоящее время сведения, содержащиеся в государственном адресном реестре, обязательны для использования органами государственной власти, органами местного самоуправления, в том числе при предоставлении государственных и муниципальных услуг, а также для использования при оказании услуг почтовой связи.
Таким образом, при заполнении адреса места жительства следует указывать адрес в соответствии с КЛАДР.
Различие в наименование улицы в паспорте вашего работника и КЛАДРе может объясняться ошибкой, допущенной при внесении соответствующей записи, либо изменения названия соответствующей улицы. В любом случае для исключения ситуации как та, что сложилась у вас, рекомендуем предложить работнику обратиться в соответствующие органы для приведения записи в паспорте в соответствие с реальностью.
При заполнении реестра для ФСС графа 7 «Адрес места жительства (пребывания)» реестра не заполняется (в ней проставляется прочерк), если в сведениях о застрахованном лице в качестве способа выплаты указан банковский счет (п. 3.2 Порядка заполнения реестра сведений).
Г.П. Холодных
автор ответа, консультант Аскон по бухгалтерскому учету и налогообложению
Как перейти от КЛАДР к ФИАС и ничего себе не сломать
ГНИВЦ ФНС сообщает, что с начала 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, в ней для каждого уровня хранится соответствие сокращённых и полных типов.
И напоследок хорошая новость для тех, кому лень запариваться всем перечисленным. В ближайшее время мы планируем выпустить ФИАС в формате КЛАДР для тех, кто не успеет перейти на формат ФИАС до конца года. Следите за новостями 🙂
Что такое КЛАДР: ответы на самые популярные вопросы
Деятельность в коммерческой, налоговой, государственной сфере связана с работой с большим количеством юридических адресов. Тут важно не только их быстро найти, но и правильно указать. В этом помогает классификатор адресов России КЛАДР. Подробно поговорим о том, что это такое, разберем особенности, рассмотрим, как пользоваться КЛАДР, в чем он может быть полезен.
Что такое КЛАДР?
Какова структура классификатора?
Что такое КЛАДР? Это объекты, разделенные на шесть уровней:
Как выглядит КЛАДР?
Можно выделить шесть разновидностей данных файлов:
Кодовые обозначения классификатора
Чтобы использовать КЛАДР адресов, необходимо различать его кодовые обозначения.
Структура из файлов типа Kladr.dbf представлена так: 11 222 333 444 55. Разберем ее:
Структура обозначений файлов Street.dbf несколько иная: 11 222 333 444 5555 66. Расшифруем:
Последнее значение (55 и 66) может быть представлено числом от 00 до 99. Притом, актуальное наименование означает только шифровка 00.
Также надо отметить следующие замечательные свойства классификатора:
Как использовать классификатор?
Что такое КЛАДР? Это классификатор, находящийся в свободном доступе. Найти его можно на официальном сайте ФГУП «ГНИВЦ» Федеральной налоговой службы РФ. Файлы формируются из базы данных ФИАС. Их обновление происходит каждую неделю.
Отметим, что в КЛАДР нельзя найти адрес, имеющий хоть какую-то степень секретности. Также здесь указаны только наименования закрытых административно-территориальных образований.
Хоть КЛАДР содержит почтовые индексы и коды ОКАТО для всего многообразия населенных пунктов, важно выделить, что эта информация содержит в себе массу неточностей. Возможна отметка реальных адресов, как несуществующих.
Функции КЛАДР
Отметим и важные функции классификатора адресов КЛАДР:
КЛАДР и ФИАС
Таким образом, сегодня ФИАС все же предпочитают КЛАДР. Однако старый классификатор по-прежнему актуален, регулярно обновляется и доступен для свободного скачивания. Некоторые особенности его структуры, градации, важные кодовые обозначения и частности, правила работы с КЛАДР вы уже узнали из этой статьи.
Мой адрес не дом и не улица… Размышления об адресном классификаторе
Большинство профессиональных одинэсовцев имеет представление, что адресные классификаторы – это такие огромные таблицы, в которых множество непонятных буковок и циферок, но которые очень нужны бухгалтерам. Причем известна и другая истина – содержимое классификаторов никак не влияет на ведение учета. Пусть эти таблицы полностью пусты, или классификаторы туда загружены дважды/трижды или не до конца, нашей базе совершенно безразлично.
В рамках настоящей статьи попробуем разобраться с этим странным справочником с точки зрения программиста. Материал может быть полезен, к примеру, в случаях, когда требуется:
— подкорректировать обработку загрузки классификатора в ИБ;
— самостоятельно организовать загрузку части адресной информации;
— использовать данные адресного классификатора для формирования адреса в собственных разработках.
Сначала рассмотрим вопрос: «А зачем вообще нужен адресный классификатор?».
Ответ очевиден – для стандартизации адресных данных. Например, в Санкт-Петербурге есть улица Олеко Дундича. Название, казалось бы, простое, но встречается множество вариантов написания названия этой улицы: ул. Олеко Дундича, ул. О. Дундича, Дундича О. улица. Всем понятно, что речь идет об одной и той же улице, но при электронной передаче адресной информации все будет сложнее. Для решения проблемы ФНС России периодически выпускает адресные классификаторы (таблицу всех адресов страны с почтовыми индексами) и призывает придерживаться установленных в них географических наименований. Актуальные версии адресных классификаторов размещаются на сайте ГНИВЦ в разделе «Классификатор» http://www.gnivc.ru/inf_provision/classifiers_reference/kladr/
В типовых решениях от 1С, начиная с версий для платформы 7.7, для ввода российского адреса можно (но необязательно) использовать классификатор, загруженный с сайта ГНИВЦ или диска ИТС.
В решениях для 1С: Предприятия 8 для хранения адресного классификатора применяется регистр сведений, именуемый «АдресныйКлассификатор». Существует также вспомогательный справочник «АдресныеСокращения», предназначенный для расшифровки сокращений некоторых географических наименований, содержащихся в регистре.
Справочник «АдресныеСокращения» имеет два реквизита: уровень (уровень объекта из регистра) и сокращение (используемое в регистре сокращение).
Примеры элементов справочника
Непериодический регистр сведений «АдресныйКлассификатор» имеет 7 измерений и 4 ресурса.
В измерениях содержатся коды для позиционирования с целью последующего формирования адресной строки. Самым важным измерением является Код, который содержит полный код адресного элемента в специальном формате. Предусмотрены также коды для хранения значений отдельных элементов иерархии, которые частично дублируют часть основного кода: «КодРегионаВКоде», «КодУлицыВКоде». Для организации иерархии предусмотрен также реквизит, хранящий уровень текущего элемента «ТипАдресногоЭлемента».
Например для элемента 5-го уровня Адыгея Респ, г. Майкоп, сдт. Эра дп, Дружбы ул.:
В ресурсах строкового типа хранятся значения элемента, соответствующий коду измерений: Наименование, сокращение, Индекс (почтовый), АльтернативныеНазвания.
Рассмотрим принцип иерархии элементов и образования кодов. Для учета всех особенностей образования российских адресов предусмотрено 6 (в ряде случаев 9) иерархий составляющих адреса, сопровождающихся 25-разрядным кодом. Если какой-то из уровней иерархии не актуален для данного адреса, то ссылка на него заменяется нулевым кодом.
Например, в элементе шестого уровня с кодом 200 000 500 000 460 001 000 000 (Башкортостан Респ, Салават г, Мостовая ул д 5), задействовано 3 из пяти возможных вышестоящих уровней. С учетом географических особенностей, данный адрес не имеет вышестоящих элементов иерархии уровня 2 (Район) и 4 (Населенный пункт).
Таблица иерархии уровней кода элементов адресного классификатора
Лидирующий X при одноразрядном коде опускается (ноль не пишется).
100 000 000 000 000 000 000 000 – Адыгея Респ
Обязательный для всех нижестоящих элементов уровень. Фактическая длина 1 знак для однозначных кодов, 2 – для двухзначных.
Задействованы коды 1-89 + 99 – г. Байконур
*Y – родительские разряды
Произвольные коды от 000 до 999.
Задействованы от 000 до 061.
Не путать с районом города.
100 000 100 000 000 000 000 000 Адыгея Респ, г. Майкоп (не относится к какому-либо району)
Не используются для городов федерального значения Москва, Санкт-Петербург. Но применяется для городов, административного подчинения в их составе, напр. Зеленоград
(Поселок в подчинении города)
Используется для обозначения любых нас. пунктов (включая поселки гор. типа), не являющихся городами.
Активно применяются сокращения: нп/пгт и пр.
Используется для обозначения улиц, проспектов и т.д.
Не является обязательным – сущ нас пункты и даже города с адресами без улиц.
Для городов федерального значения, если код города (подчиненного)/нас. пункта не указан, относится к самому городу, иначе к нас. пункту.
*Н – нечетные номера дома
** запись вида Ч(20-998) говорит о всех четных домах, начиная с 20-го и «не обещает» наличие дома номер 998.
*** Могут быть также зашифрованы номера корпусов/строений литеры и пр.
В регистре конкретных номеров домов не содержится. Используется лишь для выделения групп домов с разными почт. индексами в пределах улицы. Если индекс одинаковый на всей улицы, данная детализация не применяется.
Оставлены для совместимости. В адресных классификаторах 1С 8 не используются. Последние цифры любого кода всегда 000000
Полный код уникален во всем классификаторе.
В регистре предусмотрен набор ресурсов:
Наименование – наименование географического объекта, или группа номеров домов
Сокращение – используется для сокращенного (иногда и полного) обозначения типов объектов, а не сокращений наименований. Расшифровка проводится путем нахождения соответствия по справочнику «АдресныеСокращения»
Индекс – почтовый индекс, соответствующий географическому объекту. Может встречаться на различных уровнях иерархии, однако самым точным будет на нижнем уровне. Например, Санкт-Петербург 190000, г. Сестрорецк (город в подчинении Санкт-Петербурга) 197706, а дома по улице Мосина могут иметь два индекса 197706 и 197704
Альтернативные названия – ресурс иногда содержит иные или прежние названия географических объектов. В 1С используются только для визуализации, в адреса не копируются.
7 800 000 000 006 890 000 000 000
7 800 000 000 006 900 000 000 000
700 900 000 100 020 000 000 000
Калинина ул,Балкарская ул,
Рассмотрим примерный алгоритм расшифровки адреса по коду
Для элемента классификатора 1 000 001 000 0021 0001 000000 Адыгея Респ, г. Майкоп Верещагина ул. Н(1-127),Ч(2-140)
Пример обратного алгоритма – сервис для пользовательского ввода адреса
Для манипуляций с данными классификатора удобно использовать экспортные процедуры и функции общего модуля «УправлениеКонтактнойИнформацией». Вот некоторые из них.
Функция ПолучитьПолноеНазвание(Знач КодЭлемента, НачальныйУровеньДетализации = 1, КонечныйУровеньДетализации = 6)
-Формирует строку полного адреса для записи регистра классификатора с кодом «КодЭлемента». При необходимости полноту записи можно ограничить, регулируя НачальныйУровеньДетализации и КонечныйУровеньДетализации.
Ямало-Ненецкий АО, Ноябрьск г, Советская ул, 90А,94,96А,98А,107 ДОМ
Процедура ПолучитьПоКодуАдресногоЭлементаЕгоКомпоненты(КодАдресногоЭлемента, Регион, Район, Город, НаселенныйПункт, Улица, Дом)
— Раскладывает запись регистра классификатора (элемент с кодом КодАдресногоЭлемента) на составляющие. Результаты будут переданы в переменные-аргументы Регион, Район, Город, НаселенныйПункт, Улица, Дом
Функция ПолучитьИндекс(Знач НазваниеРегиона, Знач НазваниеРайона, Знач НазваниеГорода, Знач НазваниеНаселенногоПункта, Знач НазваниеУлицы, Знач НомерДома, Знач НомерКорпуса)
— определяет индекс по переданным региону, району, городу, населенному пункту, улице, дому и корпусу.
В форме списка записей регистра сведений АдресныйКлассификатор полный код отображается с разделениями по триадам. Помните, что такое разделение не соответствует разгруппировке цифр кода по составляющим!
При подготовке статьи использованы описания объектов из типовых конфигураций для «1С:Предприятие 8.2».
Задача со звездочкой: как мы перекодировали ФИАС в КЛАДР
С 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 выдает одинаковый результат на нашем КЛАДР и на справочнике ФНС.
Получили КЛАДР с преферансом и обновлениями
Теперь у нас есть КЛАДР, который будет жить в веках. Нашим клиентам не нужно спешно переделывать ПО под ФИАС: они подключают новый справочник и все работает как раньше.