что означает уровень кода фиас

Уровень ФИАС должен быть больше или равен 6: что это такое?

18.01.2021 2 Просмотры

Ежедневно многие пользователи сталкиваются с огромным потоком информации. Такое количество для объективности восприятия должно в обязательном порядке систематизироваться и соответствовать конкретным целям и задачам. Это непросто и требует определенных усилий и регулярной проверки данных на актуальность и корректность заполнения. С этой целью был разработан и успешно применяется уровень ФИАС. В идеале оптимальной градацией считается, когда показатель равен или больше 6.

Уровни и критерии оценки

ФИАС – Федеральная информационная адресная система, официальная страна которой задана как https://fias.nalog.ruчто означает уровень кода фиас

Чтобы детальнее разобраться в вопросе, следует ознакомиться с таблицей:

Уровень ФИАСОписание ФИАС
1регион
2автономный округ
3район
4город
5внутригородская территория
6населенный пункт

что означает уровень кода фиас

Для чего

Необходимость проводимых работ преследует цель синхронизации баз данных Росреестра и ФНС. Это касается актуальности и достоверности адресов, что в рамках страны с множеством регионов нередко привносит путаницу и снижает эффективность взаимодействия.

Оценка качества данных предполагает необходимость сбора и общей систематизации перечня адресов, включенных в реестр ФИАС с дальнейшим анализом формирования адресных записей. Полнота сведений оценивается, опираясь на долю заполненных обязательных полей в выбранном сегменте. Еще один параметр – согласованность. По сути – это соответствие записей требованиям форматно-логического контроля (ФЛК). С учетом обоих критериев проводят анализ контента. Оптимально для сравнения, если адреса представлены на уровне 6 и выше по градации ФИАС.что означает уровень кода фиас

В ходе регулярных проверок периодически обнаруживаются факты, когда, к примеру, часть органов местного самоуправления не вводят и не актуализируют сведения в ФИАС. К тому же возникают недоработки из-за элементарной невнимательности на местах, ведь почтовые индексы сейчас вручную передаются Почтой России. Несмотря на все сложности Федеральная информационная адресная система работает стабильно с уровнем данных от 6 и выше.

Источник

Уровни ФИАС и уровни адреса Дадаты

В ФИАС предусмотрено больше десяти уровней адреса (регион, автономный округ, район и т.д.) В Дадате у адреса тоже есть уровни, но не совсем такие, как в ФИАС — более привычные в быту и для отправки почты.

Соответствие между уровнями в ФИАС и уровнями Дадаты:

Уровень ФИАСОписание ФИАСУровень ДадатыОписание Дадаты
1регионregionрегион
2автономный округregionрегион
3районareaрайон в регионе
4городcityгород
5внутригородская территорияsettlementнаселенный пункт
6населенный пунктsettlementнаселенный пункт
65планировочная структураsettlementнаселенный пункт / улица
city_districtрайон в городе
(районы Дадата берет не из ФИАС, а из справочника ОКАТО)
7улицаstreetулица
90не используется
91не используется
8домhouseдом
8домblockкорпус / строение
9помещениеflatквартира

Разбор планировочной структуры работает так:

Источник

ФИАС: особенности, этапы перехода и обязательность применения

что означает уровень кода фиас

ФИАС: что это такое

Федеральная информационная адресная система (ФИАС) была создана в соответствии с распоряжением Правительства РФ от 10.06.2011 № 1011-р и начала работать уже с 01.11.2011 года. До этого времени в целях систематизации информации об адресах использовался КЛАДР – классификатор адресов, разработанный ФНС России исключительно в налоговых целях.

В ФИАС вносятся сведения обо всех имеющихся на территории России адресах, а также о реквизитах документов о присвоении, изменении и аннулировании этих адресов (ст. 4 Федерального закона от 28.12.2013 № 443-ФЗ «О федеральной информационной адресной системе…»).

Сведения об адресах включают в себя следующую информацию:

Также в ФИАС представлены присвоенные объектам коды ОКТМО и коды ОКАТО.

Информация об адресах в ФИАС постоянно актуализируется и дополняется. В случае изменения или аннулирования адреса все ранее внесенные сведения об адресе сохраняются в ФИАС со статусом «архивная информация».

Предоставление сведений об адресах в электронном виде осуществляется бесплатно. Для получения сведений на бумажном носителе потребуется заплатить пошлину (ч. 6 ст. 8 Федерального закона от 28.12.2013 № 443-ФЗ).

Чем ФИАС отличается от КЛАДР

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

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

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

В отличие от КЛАДР, в ФИАС добавлены такие весьма важные компоненты, как:

Для рядовых пользователей учетных программ (приложений) и их разработчиков основное различие между ФИАС и КЛАДР сводится к тому, что файлы первой адресной системы гораздо «тяжелее» файлов второй. Так, если файлы КЛАДР «весят» 300 Мб, то файлы ФИАС занимают уже 9 Гб файлового пространства.

Данное обстоятельство обуславливает следующие моменты:

Этапы внедрения ФИАС

Федеральный закон от 28.12.2013 № 443-ФЗ «О федеральной информационной адресной системе…» вступил в силу с 1 июля 2014 года. С этого момента содержащиеся в ФИАС сведения об адресах стали обязательны для использования следующими субъектами:

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

При этом ФНС России официально поддерживала и регулярно обновляла КЛАДР до 31.12.2017.

Но и сейчас ведомство по-прежнему регулярно выгружает ФИАС в формате КЛАДР и публикует его.

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

Единственным форматом, в котором требовался обязательный ввод идентификатора адреса по ФИАС, в январе 2018 года стал формат «Спецификации на обмен данными в электронном виде о нетрудоспособности и других сведениях…», используемый при оформлении документов на прямые выплаты пособий в пилотных регионах ФСС.

С 1 января 2018 года при заполнении данного формата нельзя было использовать коды из КЛАДР. Между тем, уже в ноябре 2018 года ФСС утвердил спецификацию версии 1.7.6, в которой изменилась обязательность полей. Вместо GUID из ФИАС появилась возможность передавать код того же адреса по КЛАДР.

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

ФИАС в учетных решениях 1С

В программе «1С:Бухгалтерия 8» начиная с версии 3.0.37.25 в качестве источника адресной информации используется ФИАС. Вся линейка других современных программ 1С также поддерживает работу с ФИАС с 2014 года.

Проверка адреса по ФИАС доступна в разделе Администрирование – Общие настройки – Контактная информация.

ФИАС не поддерживается только в программах «старого поколения». К ним, в частности, относятся:

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

Источник

Как перейти от КЛАДР к ФИАС и ничего себе не сломать

ГНИВЦ ФНС сообщает, что с начала 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

Подводные камни

LEVELSCNAMESOCRNAMEKOD_T_ST
7трактТракт727
7тупТупик728
7улУлица729
7уч-кУчасток730
7ф/хФермерское хозяйство789
7фермаФерма769
7хХутор758
7шШоссе731

Таблица SOCRBASE хранит полные и сокращенные типы объектов

Тип по КЛАДР может быть сокращенным и полным: «ул» — «Улица», «х» — «Хутор». В ФИАС в явном виде хранится только сокращенный тип (в поле ShortName). Полный тип в сокращенный можно превратить с помощью таблицы SOCRBASE, в ней для каждого уровня хранится соответствие сокращённых и полных типов.

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

Источник

Дома ФИАС в среде PostgreSQL

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

Поэтому имеет смысл описать аналогичные функции на языке PL/pgSQL для работы со списком домов ФИАС, загруженным в базу данных под управлением PostgreSQL.

что означает уровень кода фиас

Родословная дома

Вызов функции fstf_Houses_AddressObjectTree (‘42301ab8-9ead-4f8e-8281-e64f2769a254’) приведет к получению следующего списка записей.

Таблица 1. Результат выполнения функции.

что означает уровень кода фиас

При внимательном рассмотрении можно заметить, что в качестве аргумента функции передан идентификатор элемента (HOUSEGUID) «д. 1, корп. 2, стр. 26», в результате получены шесть записей:

У функции есть еще один необязательный параметр — дата окончания действия записи (EndDate), с помощью которого можно просматривать родословную не только актуальной записи о доме, но и уже устаревших записей.

Полный текст функции приведен в Приложении в подразделе Создание функции fstf_Houses_AddressObjectTree.

С самого начала

Если вы знаете как устроена таблица домов ФИАС, то этот раздел можно пропустить.
Дома ФИАС (HOUSES) представляют собой дочерний список для списка адресообразующих элементов ФИАС (ADDROBJ). Каждая запись списка домов ссылается на адресообразующий элемент ФИАС значением поля AOGUID. Для того чтобы определить на какой улице и в каком населенном пункте находится дом нужно по значению AOGUID записи HOUSES найти соответствующую запись с таким же идентификатором списка ADDROBJ.

При всей внешней простоте механизма взаимодействия списка домов со списком адресообразующих элементов в их взаимодействии особенности, осложняющие реализацию функций на HOUSES.

Во-первых, каждая запись списка домов по идентификатору AOGUID ссылается на группу адресообразующих элементов, один из которых является актуальным.

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

В-третьих, запись о доме не всегда наследуется от записи об улице населенного пункта.

Но, обо всем по порядку.

Для дальнейшего рассмотрения хранения сведений о домах в ФИАС достаточно ограничиться на 4 таблицах (DBF-файлах):

что означает уровень кода фиас

ADDROBJ подробно рассмотрена в предыдущей публикации «Адреса ФИАС в PostgreSQL», поэтому здесь о ее особенностях будет говорится ровно столько, сколько необходимо для описания характеристик домов.

Таблица 2. История дома «Красноярский край, р-н Таймырский Долгано-Ненецкий, г Дудинка, ул. Дудинская, д. 1»

что означает уровень кода фиас

Как видно из таблицы, в отличии от адресообразующих объектов, записи истории дома не имеют специальных признаков актуальности. Актуальной является запись с самой старшей датой окончания периода, которая больше текущей. Пока актуальные записи о домах помечаются датой «06.06.2079». Все остальные записи о доме считаются историческими, а даты начала и окончания характеризуют период актуальности каждой записи.

Список домов ФИАС не содержит указателей на предыдущую и следующую записи о доме. Поэтому порядок следования записей от актуальной в глубь истории дома определяются по убыванию даты окончания и за ней даты начала периода, соответственно EndDate и StartDate.

Внимательный читатель, глядя на Рис. 1, наверняка задал себе вопрос: зачем упомянуты справочники признаков строения и владения? В ФИАС используется свыше 10 подобного рода справочников, так почему особо выделены эти два?

Ответ многих удивит – с точки зрения «логики ФИАС» адрес дома не полностью идентифицируется адресом улицы, номерами дома, корпуса и строения. Термин «логики ФИАС» использован в ответе сотрудника ФНС на мой вопрос почему в списке домов Красноярского края находится свыше 250 парных адресов домов. В этом же ответе было сказано, что уникальность записи обеспечивают значения AOGUID, HOUSENUM, BUILDNUM, STRUCNUM, STRSTATUS, ESTSTATUS.

что означает уровень кода фиас

Другими словами, для нахождения объекта недостаточно знать населенных пункт, улицу, номер дома. Необходимо еще знать:

Вот так выглядит выборка из общего списка домов ФИАС с повторяющимися адресами.
В том, что разные объекты имеют одинаковый адрес нет ничего удивительного. Здание и земельный участок под ним; дом, гараж, баня у одного хозяина. Все они имеют один и тот же адрес. Но ФИАС – это адресный реестр, т.е. список адресов. Поэтому естественно ожидать, что уникальными в нем будут адреса, а не здания, строения, сооружения.

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

Каждый желающий может сам проверить наличие домов с повторяющимися адресами, выполнив оператор SELECT подобный следящему. При этом, функцию fsfn_Houses_TreeActualName можно не применять, т.к. она использована только для того, чтобы сократить число колонок результата. Не обязательно использовать справочники fias_StructureStatus (аналог STRSTAT) и fias_EstateStatus (аналог ESTSTAT), т.к. отмеченный эффект можно проследить и на кодах признаков строения и владения.

что означает уровень кода фиас

И наконец, еще одна особенность списка домов ФИАС. Каждая запись о доме этого списка содержит ссылку на адресообразующий элемент, список которых представляет собой иерархию таких элементов. На каждом уровне иерархии находятся адресообразующие элементы, относящиеся к различным типам. Так корневым элементом является регион (Красноярский край в нашем случае), на следующем уровне автономный округ, район или город регионального подчинения. И так далее. (Подробности смотри в «Адреса ФИАС в PostgreSQL»).

Формально запись о доме позволяет ссылаться на элемент иерархии любого уровня. К счастью, домов, ссылающихся на район или регион, среди данных Красноярского края не встретилось. И тем не менее не все дома ссылаются на улицу населенного пункта:

Размножение адресов дома по владельцам (ФИАС vs карта)

Здесь описана проблема, которая приводит к неоднозначному толкованию родословной дома. (На эту проблему мое внимание обратил Игорь Леонидович Тимощенков, ГИС-специалист, компании ООО «Айгео», Красноярск).

Выше показано как несколько записей содержат один и тот же адрес дома. Что можно объяснить желанием налоговой инспекции хранить не только запись о частном доме, но и об окружающих постройках: гараже, сарае, и т.д. Но есть обратные примеры, когда одному строению (дому) соответствуют несколько записей таблицы fias_Houses с различными значениями номеров этого дома.

что означает уровень кода фиас

Вглядитесь в этот рисунок. Слева на нем снимок экрана с картой поселка, где расположены домами на два хозяина. Это обычные одноэтажные дома с двумя входами. Справа живет одна семья, а слева другая. Их еще можно представлять, как дома из двух квартир.

А теперь посмотрите на таблицу справа. В ней практически каждому дому на два хозяина соответствует по 3 записи. Т.е. таблице домов ФИАС указаны как адрес отдельного дома («д. 1»), так и адреса частей дома («д. 1/1», «д. 1/2»), принадлежащих одному хозяину.

Как это работает

Функция fstf_Houses_AddressObjectTree имеет две версии: с четырьмя или с двумя параметрами. В версии функции с двумя параметрам передается идентификатор дома (HouseGUID) и дата окончания действия записи (EndDate). Версия с четырьмя параметрами дополнительно требует идентификатор адресообразующего элемента (AOGUID) и текущий статус (CurrStatus).

что означает уровень кода фиас

Функция с меньшим числом параметров вычисляет значения недостающих параметров и вызывает функцию с большим числом параметров. Для этого предварительно идентификатор адресообразующего элемента просто извлекается из соответствующего поля таблицы домов (fias_Houses). А значение текущего статуса (CurrStatus) вычисляется по следующим правилам:

Функция с большим числом параметров сначала вызывает функцию fstf_AddressObjects_AddressObjectTree, которая возвращает родительские адресообразующие элементы для дома. Подробнее о функции fstf_AddressObjects_AddressObjectTree можно прочитать в разделе Родословная адресообразующего элемента документа «Адреса ФИАС в среде PostgreSQL»

Затем записи об адресообразующих элементах дополняются записями о номерах дома, корпуса, строения (см. Таблица 1), которые создаются для каждого непустого поля о номере дома, корпуса и строения.

Для того чтобы все выводимые записи имели одинаковую структуру и не без некоторой доли пижонства, в теле функции искусственно создаются значения полей код уровня (AOLevel), текущий статус (CurrStatus) и статус актуальности (ActStatus).

Коду уровня дома (корпуса, строения) всегда присваивается значение 8, смотри справочник «Уровней адресных объектов» из документа Сведения о составе информации ФИАС).

Статусу актуальности присваивается значение 1, если дата окончания действия записи (EndDate) равна 06.06.2079, и 0 в противном случае.

Со значениями поля CurrStatus дело обстоит сложнее. При помощи его значений решаются две задачи одновременно: устанавливается идентификатор каждой версии записи об адресообразующем элементе и присваивается признак актуальности записи. Поэтому последняя актуальная запись об элементе содержит значение 0 в этом поле, а все исторические записи нумеруются в порядке появления – «1» самая ранняя запись, следующая за ней по времени – «2» и т.д. Подробнее порядок присвоения значений полю CurrStatus рассмотрен в публикации «Адреса ФИАС в PostgreSQL».

что означает уровень кода фиас

Полный адрес дома

Основная идея функции fsfn_Houses_TreeActualName в том, чтобы возвратить соединенные в одну строку номер дома вместе с названиями всех его предков – адресообразующих элементов.

Например, пусть функция родословной дома (fstf_Houses_AddressObjectTree) возвращает следующий список значений.

Таблица 4. Результат выполнения функции fstf_Houses_AddressObjectTree(‘0c0d670f-097c-4e1d-bcac-9e9b22fb1b99’)

что означает уровень кода фиас

Тогда fsfn_Houses_TreeActualName (‘0c0d670f-097c-4e1d-bcac-9e9b22fb1b99’) должна возвратить: «г Красноярск, ул им Сергея Лазо, д. 34А, корп. 6, стр. 17».

Функцию fsfn_Houses_TreeActualName упрощенно можно представлять, как агрегатную функцию STRING_AGG над результатом функции, возвращающей родословную дома.

У рассматриваемой функции есть еще одни необязательный параметр — массив масок (a_MaskArray), с помощью которого можно включать в результат не все названия элементов, а только те, которые нужны.

Таблица 5. Список масок функции.

что означает уровень кода фиас

ЗначениеПримечание
Маска — номер дома
Маска — номер корпуса
Маска — номер строения
Маска — улица
Маска — почтовый индекс
Маска — городской район
Маска — подчиненный населенный пункт
Маска — основной населенный пункт
Маска — района субъекта федерации
Маска — субъект федерации (регион)
Маска — страна

Поиск дома ФИАС

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

Рассмотрим несколько примеров. И для начала найдем все дома с номером «220».

Таблица 6. Результат выполнения функции fstf_Houses_SearchByName(‘220’)

что означает уровень кода фиас

В отличие от функции поиска адресообразующих элементов (fstf_AddressObjects_SearchByName) результат этой функции не содержит эфекта «плавания» по уровням адресообразующих элементов. Первый параметр функции всегда содержит шаблон поиска номера дома, второй – номера корпуса, третий номера строения.

Теперь изменим запрос. Найдем все дома адресообразующих элементов, номер которых содержит цифру «1», и в названиях встречается слово «Красноярск».

Таблица 7. Результат выполнения функции fstf_Houses_SearchByName(‘1′,NULL,NULL,’Красноярск’)

что означает уровень кода фиас

Назначение остальных параметров в точности совпадает с назначением параметров функции поиска адресообразующих эелементов (fstf_AddressObjects_SearchByName).
Текст функции приведен в разделе Приложения «Создание функции fstf_Houses_SearchByName»

Как это работает

Реализация fstf_Houses_SearchByName во многом похожа на реализацию функции поиска адресообразующих элементов (fstf_AddressObjects_SearchByName). Главное отличие заключается в том, что поиск осуществляется в двух, связанных таблицах fias_Houses и fias_AddressObjects.

У функции 9 аргументов. Первые три из них – это номера дома (a_HouseNum), корпуса (a_BuildNum) и строения (a_StrucNum). Остальные 6 (a_FormalName, a_ShortName, a_ParentFormalName, a_ParentShortName, a_GrandParentFormalName, a_GrandParentShortName) полностью совпадают с параметрами функции.

Если задать только значение параметра «номер дома», то функция возвратит все адреса в номере дома, которых встречаются указанная последовательность символом. Если в качестве номера дома передать значение NULL или пустую строку («»), то будут возвращены адреса всех домов, адресные элементы которых заданы набором прочих параметров.

что означает уровень кода фиас

Эпилог

Этот раздел содержит рекомендации к тому, как загрузить список домов ФИАС в таблицу fias_Houses.

Загрузка данных в таблицу домов выполняется примерно также как загрузка данных в таблицу адресообразующих элементов. Только исходным файлом станет HOUSE99.DBF, а не ADDROB99.DBF. Здесь 99 – это номер региона (Республики, области, края). Например, для Красноярского края исходным является файл HOUSE24.DBF.

Сначала с страницы «Обновления» ФИАС скачивается очередной архив с обновлением. Из него извлекается файл HOUSE99.DBF

Затем файл HOUSE99.DBF преобразуется к формату CSV и уже преобразованный он загружается оператором COPY во временную таблицу fias_Houses_Temp.

И, наконец, данные временной используют для обновления основной таблицы, т.е. несуществующие в fias_Houses добавляются, а уже существующие – заменяются.
Пример скрипта обновления таблицы домов приведен в разделе «Загрузка обновлений домов ФИАС в таблицу fias_Houses».

Источник


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *