<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Razum2um</id>
	<title>GIS-Lab - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Razum2um"/>
	<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/w/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Razum2um"/>
	<updated>2026-04-28T20:56:47Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%98%D0%90%D0%A1&amp;diff=14989</id>
		<title>ФИАС</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%98%D0%90%D0%A1&amp;diff=14989"/>
		<updated>2013-09-08T16:36:00Z</updated>

		<summary type="html">&lt;p&gt;Razum2um: из файла doc с описанием: 0 – недействующий адресный объект 1 - действующий&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
= Введение =&lt;br /&gt;
&amp;lt;font size=&amp;quot;6&amp;quot;&amp;gt;Вопросы/пожелания/замечания - [http://gis-lab.info/forum/viewtopic.php?f=3&amp;amp;t=12568 форум]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Адреса официальной публикации:&lt;br /&gt;
# [http://fias.nalog.ru/ Федеральная информационная адресная система]&lt;br /&gt;
# [http://www.nalog.ru/opendata/fias_bank/ Банк данных федеральной информационной адресной системы]&lt;br /&gt;
Оба источника предлагают идентичные данные.&lt;br /&gt;
&lt;br /&gt;
Федеральная информационная адресная система (ФИАС) создана Распоряжением Правительства Российской Федерации от 10.06.2011 №1011-р. С целью...&lt;br /&gt;
&lt;br /&gt;
Статья &amp;quot;[http://кладр.рф/kladr.html КЛАДР: Настоящее, прошлое и будущее]&amp;quot; (примерно 2004 г.)&lt;br /&gt;
&lt;br /&gt;
Замена КЛАДР... Тем не менее классификатор КЛАДР продолжает публиковаться и обновляться - [http://www.nalog.ru/el_usl/no_software/3776653/ версия 4.0 от 24.12.2012].&lt;br /&gt;
&lt;br /&gt;
С момента первой публикации структура и содержание ФИАС многократно критиковались. Тем не менее, за время существования базы, она объективно улучшается и часть ошибок уже устранена. Поэтому указанные в этом документе несоответствия могут быть исправлены в будущем и их следует уточнять на свежих данных.&lt;br /&gt;
&lt;br /&gt;
//ToDo - понятие &amp;quot;адрес&amp;quot; из докум. &amp;quot;Перечень типовых вопросов и предложений по использованию ПО «ФИАС»&amp;quot; // Секретность&lt;br /&gt;
&lt;br /&gt;
= Загрузка данных =&lt;br /&gt;
&lt;br /&gt;
Процесс импорта данных из файлов XML в реляционную базу данных дается на примере PostgreSQL. Все применяемые инструменты являются кросплатформенными. Для других БД (MySQL, Oracle и т.п.) процедура потребует незначительной доработки. См. также гл. 2.3, в которой приводятся ссылки на сторонние проекты, предоставляющие подготовленные данные в других форматах.&lt;br /&gt;
&lt;br /&gt;
=== Создание таблиц ===&lt;br /&gt;
&lt;br /&gt;
На сайте ФИАС представлены схемы XSD, описывающие структуру данных. Для преобразования схемы в формат SQL (CREATE TABLE...) применим XSL Transformation (XSLT). В зависимости от БД может потребоваться изменить типы данных колонок.&lt;br /&gt;
&lt;br /&gt;
{{Скрытый&lt;br /&gt;
|Рамка = 1px dashed #aa0000&lt;br /&gt;
|Ссылка = left&lt;br /&gt;
|Выравнивание_заголовка = left&lt;br /&gt;
|Заголовок = Схема XSLT&lt;br /&gt;
|Фон_заголовка = #ccccff&lt;br /&gt;
|Содержание = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;2.0&amp;quot;&lt;br /&gt;
	xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;br /&gt;
	xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:output method=&amp;quot;text&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;no&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:variable name=&amp;quot;filename&amp;quot; select=&amp;quot;lower-case(tokenize(tokenize(base-uri(.), '/')[last()],'\.')[1])&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DROP TABLE IF EXISTS &amp;lt;xsl:value-of select=&amp;quot;$filename&amp;quot;/&amp;gt;;&lt;br /&gt;
CREATE TABLE &amp;lt;xsl:value-of select=&amp;quot;$filename&amp;quot;/&amp;gt; (&lt;br /&gt;
&amp;lt;xsl:for-each select=&amp;quot;/xs:schema/xs:element[1]/xs:complexType[1]/xs:sequence[1]/xs:element[1]/xs:complexType[1]/xs:attribute&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;xsl:text&amp;gt;  &amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
		&amp;lt;!-- тип данных --&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:when test=&amp;quot;xs:simpleType/xs:restriction/@base='xs:integer'&amp;quot;&amp;gt;integer&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:when test=&amp;quot;xs:simpleType/xs:restriction/@base='xs:byte'&amp;quot;&amp;gt;integer&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:when test=&amp;quot;xs:simpleType/xs:restriction/@base='xs:string'&amp;quot;&amp;gt;text&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:when test=&amp;quot;@type='xs:date'&amp;quot;&amp;gt;date&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:if test=&amp;quot;@use='required'&amp;quot;&amp;gt; NOT NULL&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:if test=&amp;quot;position()!=last()&amp;quot;&amp;gt;,&amp;amp;#xa;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:for-each select=&amp;quot;/xs:schema/xs:element[1]/xs:complexType[1]/xs:sequence[1]/xs:element[1]/xs:complexType[1]/xs:attribute&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;a&amp;gt;COMMENT ON COLUMN &amp;lt;xsl:value-of select=&amp;quot;$filename&amp;quot;/&amp;gt;.&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot; /&amp;gt; IS &amp;lt;/a&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
    		&amp;lt;!-- Часть комментариев слишком длинная, обрезаем лишние строки --&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:when test=&amp;quot;contains(xs:annotation/xs:documentation,'&amp;amp;#xa;')&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;a&amp;gt;'&amp;lt;xsl:value-of select=&amp;quot;substring-before(xs:annotation/xs:documentation,'&amp;amp;#xa;')&amp;quot;/&amp;gt;'&amp;lt;/a&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:otherwise&amp;gt;'&amp;lt;xsl:value-of select=&amp;quot;xs:annotation/xs:documentation&amp;quot;/&amp;gt;'&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:text&amp;gt;;&amp;amp;#xa;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}Схема подходит для всех таблиц ФИАС. Для работы требуется процессор, поддерживающий XSLT 2.0. Например, [http://sourceforge.net/projects/saxon/ Saxon XSLT Processor] (MPL). Тогда обработка файлов принимает вид (версии .NET, Windows):&lt;br /&gt;
&lt;br /&gt;
{{Скрытый&lt;br /&gt;
|Рамка = 1px dashed #aa0000&lt;br /&gt;
|Ссылка = left&lt;br /&gt;
|Выравнивание_заголовка = left&lt;br /&gt;
|Заголовок = batch file processing&lt;br /&gt;
|Фон_заголовка = #ccccff&lt;br /&gt;
|Содержание = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
@echo off&lt;br /&gt;
SET PATH=%PATH%;d:\Program Files\Saxonica\SaxonHE9.4N\bin&lt;br /&gt;
&lt;br /&gt;
for %%f in (*.xsd) do (&lt;br /&gt;
    Transform ^&lt;br /&gt;
        -xsl:xsd2db.xslt ^&lt;br /&gt;
        -s:%%f ^&lt;br /&gt;
        -o:sql\%%~nf.sql&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}Далее, полученные файлы SQL желательно откорректировать, чтобы явно назначить ключи (primary keys).&lt;br /&gt;
&lt;br /&gt;
//// Ссылка на готовые файлы&lt;br /&gt;
&lt;br /&gt;
=== Импорт данных ===&lt;br /&gt;
&lt;br /&gt;
Для работы с большими файлами XML предпочтительнее применять потоковые парсеры: используется фиксированное количество оперативной памяти (в приведенном скрипте - порядка 80 Мб) на протяжении всего процесса работы.&lt;br /&gt;
&lt;br /&gt;
Ниже приводится скрипт [http://scriptella.javaforge.com/  ETL Scriptella] (Apache License) на базе парсера SAX. Он подходит для любой реляционной БД, для которой есть java-драйвер.&lt;br /&gt;
&lt;br /&gt;
{{Скрытый&lt;br /&gt;
|Рамка = 1px dashed #aa0000&lt;br /&gt;
|Ссылка = left&lt;br /&gt;
|Выравнивание_заголовка = left&lt;br /&gt;
|Заголовок = Скрипт для ETL Scriptella&lt;br /&gt;
|Фон_заголовка = #ccccff&lt;br /&gt;
|Содержание = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE etl SYSTEM &amp;quot;http://scriptella.javaforge.com/dtd/etl.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;etl&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;&lt;br /&gt;
        Загрузка данных из xml-файла в предварительно созданную таблицу&lt;br /&gt;
    &amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;properties&amp;gt;&lt;br /&gt;
        &amp;lt;include href=&amp;quot;db.properties&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;connection id=&amp;quot;in&amp;quot; driver=&amp;quot;janino&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;connection id=&amp;quot;out&amp;quot; driver=&amp;quot;${driver}&amp;quot; url=&amp;quot;${url}&amp;quot; user=&amp;quot;${user}&amp;quot; password=&amp;quot;${password}&amp;quot;&amp;gt;&lt;br /&gt;
        autocommit.size=100&lt;br /&gt;
    &amp;lt;/connection&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;query connection-id=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
        import javax.xml.parsers.SAXParser;&lt;br /&gt;
        import javax.xml.parsers.SAXParserFactory;&lt;br /&gt;
        import org.xml.sax.Attributes;&lt;br /&gt;
        import org.xml.sax.SAXException;&lt;br /&gt;
        import org.xml.sax.helpers.DefaultHandler;&lt;br /&gt;
&lt;br /&gt;
        SAXParserFactory factory = SAXParserFactory.newInstance();&lt;br /&gt;
        SAXParser saxParser = factory.newSAXParser();&lt;br /&gt;
&lt;br /&gt;
        DefaultHandler handler = new DefaultHandler() {&lt;br /&gt;
            boolean isObject = false;&lt;br /&gt;
            int nodeCnt = 0;&lt;br /&gt;
            int recordCnt = 0;&lt;br /&gt;
&lt;br /&gt;
            public void startElement(String uri, String localName,String qName, Attributes attr) throws SAXException {&lt;br /&gt;
                if (nodeCnt &amp;amp;lt; 1) {    // skip first node&lt;br /&gt;
                    nodeCnt++;&lt;br /&gt;
                } else {&lt;br /&gt;
                    String names = &amp;quot;&amp;quot;;&lt;br /&gt;
                    String values = &amp;quot;&amp;quot;;&lt;br /&gt;
                    &lt;br /&gt;
                    int attrCnt = attr.getLength();&lt;br /&gt;
                    for (int i=0; i &amp;amp;lt; attrCnt; i++) {&lt;br /&gt;
                        names += attr.getQName(i) + &amp;quot;,&amp;quot;;&lt;br /&gt;
                        values += &amp;quot;'&amp;quot; + attr.getValue(i).replaceAll(&amp;quot;'&amp;quot;, &amp;quot;''&amp;quot;) + &amp;quot;',&amp;quot;;&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    names = names.substring(0, names.length()-1);&lt;br /&gt;
                    values = values.substring(0, values.length()-1);&lt;br /&gt;
                    set(&amp;quot;sql_names&amp;quot;, names);&lt;br /&gt;
                    set(&amp;quot;sql_values&amp;quot;, values);&lt;br /&gt;
                    &amp;lt;script connection-id=&amp;quot;out&amp;quot;&amp;gt;&lt;br /&gt;
                        INSERT INTO ###TABLE### ($sql_names) VALUES ($sql_values);&lt;br /&gt;
                    &amp;lt;/script&amp;gt;&lt;br /&gt;
                    next();&lt;br /&gt;
&lt;br /&gt;
                    recordCnt++;&lt;br /&gt;
                    System.out.print(&amp;quot;\rprocessed: &amp;quot; + recordCnt);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;\n\n\nConverting...&amp;quot;);&lt;br /&gt;
        saxParser.parse(&amp;quot;../xml/###TABLE###.xml&amp;quot;, handler);&lt;br /&gt;
    &amp;lt;/query&amp;gt;&lt;br /&gt;
&amp;lt;/etl&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}'''Примечания:'''&lt;br /&gt;
# Паттерн ###TABLE### следует заменить на имя файла/таблицы (например, ADDROBJ);&lt;br /&gt;
# Да работы требуются дополнительные библиотеки: [http://janino.codehaus.org/ Janino], [http://jdbc.postgresql.org/ PostgreSQL JDBC Driver];&lt;br /&gt;
# Выполняется простейшее экранирование значений (одиночная кавычка '). //ToDo: пустые &amp;gt; null&lt;br /&gt;
&lt;br /&gt;
== Другие источники ==&lt;br /&gt;
Данные ФИАС также распространяются в формате DBF. Для работы с ними рекомендуются утилиты типа [http://pgdbf.sourceforge.net/ PgDBF] ([http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&amp;amp;tid=976608&amp;amp;msg=13347482 импорт ФИАС]).&lt;br /&gt;
&lt;br /&gt;
* [http://basicdata.ru/ BasicData.ru] - WebAPI и файлы для импорта в БД MySQL. Также может быть интересна БД &amp;quot;Почтовые отделения&amp;quot;.&lt;br /&gt;
* [http://code.google.com/p/rus-ref/w/list Классификаторы России (rus-ref)]&lt;br /&gt;
* [http://zgbox.ru/articles/soft/parsing-baz-fias-v-mysql-potokovyy-xml-parser zXML Parser] - &amp;quot;Парсинг баз ФИАС в MySQL (потоковый XML парсер)&amp;quot;. Программа из данных XML создает файл с sql-запросами.&lt;br /&gt;
&lt;br /&gt;
= Структура данных ФИАС (описание таблиц) =&lt;br /&gt;
Для понимания структуры данных ФИАС требуются следующие документы:&lt;br /&gt;
# [http://fias.nalog.ru/Public/Docs/Сведения%20о%20составе%20информации%20ФИАС.doc Сведения о составе информации Федеральной информационной адресной системы] (DOC);&lt;br /&gt;
# [http://www.nalog.ru/html/opendata/FNSR.03.1/struct03.doc Описание структуры наборов данных  ФИАС] (DOC);&lt;br /&gt;
# [http://www.nalog.ru/el_usl/no_software/3776653/ Описание Классификатора адресов российской федерации (КЛАДР)] (в архиве DOCUM.ARJ)&lt;br /&gt;
&lt;br /&gt;
== Таблицы ==&lt;br /&gt;
Основные&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;ADDROBJ&amp;lt;/span&amp;gt; - Классификатор адресообразующих элементов (край &amp;gt; область &amp;gt; город &amp;gt; район &amp;gt; улица)&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;HOUSE&amp;lt;/span&amp;gt; - Сведения по номерам домов улиц городов и населенных пунктов, номера земельных участков и т.п&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;HOUSEINT&amp;lt;/span&amp;gt; - Интервалы домов&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;LANDMARK&amp;lt;/span&amp;gt; - Описание мест расположения  имущественных объектов&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;NORMDOC&amp;lt;/span&amp;gt; - Сведения по нормативному документу, являющемуся основанием присвоения адресному элементу наименования&lt;br /&gt;
Справочники&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;ACTSTAT&amp;lt;/span&amp;gt; - Статус актуальности ФИАС&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;CENTERST&amp;lt;/span&amp;gt; - Статус центра&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;CURENTST&amp;lt;/span&amp;gt; - Статус актуальности КЛАДР 4.0&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;ESTSTAT&amp;lt;/span&amp;gt; - Признак владения&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;HSTSTAT&amp;lt;/span&amp;gt; - Статус состояния объектов недвижимости&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;INTVSTAT&amp;lt;/span&amp;gt; - Статус интервала домов&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;NDOCTYPE&amp;lt;/span&amp;gt; - Тип нормативного документа (закон, приказ, справка) // ''не упоминается в официальной документации''&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;OPERSTAT&amp;lt;/span&amp;gt; - Статус действия&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;SOCRBASE&amp;lt;/span&amp;gt; - Типы адресных объектов (условные сокращения и уровни подчинения)&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;STRSTAT&amp;lt;/span&amp;gt; - Признак строения&lt;br /&gt;
&lt;br /&gt;
== ADDROBJ ==&lt;br /&gt;
&lt;br /&gt;
=== Текстовые элементы адреса ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;OFFNAME&amp;lt;/span&amp;gt; - Официальное наименование&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;FORMALNAME&amp;lt;/span&amp;gt; - то же что и &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;OFFNAME&amp;lt;/span&amp;gt;, но оптимизированная для поиска&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;SHORTNAME&amp;lt;/span&amp;gt; - Тип объекта: обл, р-н, г, ул. Расшифровку сокращений см. по табл. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;SOCRBASE&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поле &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;FORMALNAME&amp;lt;/span&amp;gt; создано специально для поиска: из него исключены все нестандартные символы и знаки пунктуации, буква &amp;quot;ё&amp;quot; заменена на &amp;quot;е&amp;quot; и т.п. Все записи удовлетворяют запросу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;tsql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT * FROM addrobj WHERE formalname !~ '[0-9А-Яа-я ]'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Иерархия административных единиц ===&lt;br /&gt;
В таблице ADDROBJ иерархия построена по типу плоского дерева. И родительские и дочерние элементы хранятся в одной таблице. Воссоздание иерархии выполняется с помощью полей:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;AOGUID&amp;lt;/span&amp;gt; - Глобальный уникальный идентификатор адресного объекта. Не смотря на название, уникальным в пределах таблицы он не является. Могут существовать несколько исторический версий и одна единственная актуальная для данного объекта. Подробнее см. раздел &amp;quot;Статус актуальности&amp;quot;.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;PARENTGUID&amp;lt;/span&amp;gt; - Идентификатор объекта родительского объекта. Содержит ссылку на &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;AOGUID&amp;lt;/span&amp;gt; родительского элемента.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;AOLEVEL&amp;lt;/span&amp;gt; - Уровень адресного объекта. Условные названия уровней (подробнее см. табл. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;SOCRBASE&amp;lt;/span&amp;gt;):&lt;br /&gt;
*: 1 - регион&lt;br /&gt;
*: 2 - &amp;lt;span style=&amp;quot;color:gray;&amp;quot;&amp;gt;''зарезервирован''&amp;lt;/span&amp;gt;&lt;br /&gt;
*: 3 - район&lt;br /&gt;
*: 4 - город&lt;br /&gt;
*: 5 - внутригородская территория&lt;br /&gt;
*: 6 - населенный пункт&lt;br /&gt;
*: 7 - улицы&lt;br /&gt;
*: 8 - &amp;lt;span style=&amp;quot;color:gray;&amp;quot;&amp;gt;''зарезервирован''&amp;lt;/span&amp;gt;&lt;br /&gt;
*: 90 - дополнительная территория (ГСК, СНТ, лагери отдыха и т.п.)&lt;br /&gt;
*: 91 - улицы на дополнительной территории (улицы, линии, проезды)&lt;br /&gt;
&lt;br /&gt;
Получение полного адреса (от младшего к старшему):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;tsql&amp;quot;&amp;gt;&lt;br /&gt;
WITH RECURSIVE child_to_parents AS (&lt;br /&gt;
  SELECT addrobj.* FROM addrobj&lt;br /&gt;
      WHERE aoid = '51f21baa-c804-4737-9d5f-9da7a3bb1598'&lt;br /&gt;
  UNION ALL&lt;br /&gt;
  SELECT addrobj.* FROM addrobj, child_to_parents&lt;br /&gt;
      WHERE addrobj.aoguid = child_to_parents.parentguid&lt;br /&gt;
        AND addrobj.currstatus = 0&lt;br /&gt;
)&lt;br /&gt;
SELECT * FROM child_to_parents ORDER BY aolevel;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;AOLEVEL&amp;lt;/span&amp;gt; отражает административно-правовое подчинение, поэтому одни и те же текстовые элементы адреса могут располагаться на разных уровнях. Например, в снт. &amp;quot;Волжанка&amp;quot; (AOLEVEL=90) улицы имеют уровень 91 (против более распространенного 7):&lt;br /&gt;
:(1) обл. Самарская&lt;br /&gt;
::(3) р-н Сызранский&lt;br /&gt;
:::(90) снт Волжанка&lt;br /&gt;
::::(91) ул. Ягодная&lt;br /&gt;
::::(91) ул. Дачная&lt;br /&gt;
::::(91) ул. Рябиновая&lt;br /&gt;
&lt;br /&gt;
Аналогично, существуют населенные пункты без улиц. Например, в пос. Лужки иерархия заканчивается на уровне 6:&lt;br /&gt;
:(1) обл. Орловская&lt;br /&gt;
::(3) р-н Мценский&lt;br /&gt;
:::(6) п. Лужки&lt;br /&gt;
&lt;br /&gt;
Таким образом, построение таблицы полных адресов следует начинать от верхних элементов (AOLEVEL=1) к нижним (AOLEVEL=91), как правило, запрос оформляется в виде множества подзапросов (subquery). Или рекурсивно подниматься от нижних, не имеющих дочерних элементов. Рассмотрим для примера второй вариант. Поскольку число полей в обоих случаях не определено, то полный адрес будет формироваться единой строкой:&lt;br /&gt;
&lt;br /&gt;
{{Скрытый&lt;br /&gt;
|Рамка = 1px dashed #aa0000&lt;br /&gt;
|Ссылка = left&lt;br /&gt;
|Выравнивание_заголовка = left&lt;br /&gt;
|Заголовок = Функция получения полного адреса (аналогично предыдущему примеру)&lt;br /&gt;
|Фон_заголовка = #ccccff&lt;br /&gt;
|Содержание = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;tsql&amp;quot;&amp;gt;&lt;br /&gt;
DROP FUNCTION IF EXISTS make_full(text);&lt;br /&gt;
CREATE FUNCTION make_full(IN id text, OUT fulladdress text, OUT postalcode text) AS $$&lt;br /&gt;
  -- &amp;quot;id&amp;quot; is an unique identificator (use AOID)&lt;br /&gt;
  WITH RECURSIVE to_parents AS (&lt;br /&gt;
    SELECT format('&amp;lt;addr type=&amp;quot;%s&amp;quot;&amp;gt;%s&amp;lt;/addr&amp;gt;', shortname, formalname) AS fulladdress,&lt;br /&gt;
           postalcode, parentguid, aolevel&lt;br /&gt;
      FROM addrobj&lt;br /&gt;
     WHERE aoid = id&lt;br /&gt;
    UNION ALL&lt;br /&gt;
    SELECT format('&amp;lt;addr type=&amp;quot;%s&amp;quot;&amp;gt;%s&amp;lt;/addr&amp;gt;%s', addrobj.shortname, addrobj.formalname, to_parents.fulladdress) AS fulladdress,&lt;br /&gt;
           CASE&lt;br /&gt;
             WHEN to_parents.postalcode IS NULL THEN addrobj.postalcode&lt;br /&gt;
             ELSE to_parents.postalcode&lt;br /&gt;
           END AS postalcode,&lt;br /&gt;
           addrobj.parentguid, addrobj.aolevel&lt;br /&gt;
      FROM addrobj, to_parents&lt;br /&gt;
     WHERE addrobj.aoguid = to_parents.parentguid&lt;br /&gt;
       AND addrobj.currstatus = 0&lt;br /&gt;
  )&lt;br /&gt;
  SELECT fulladdress, postalcode FROM to_parents WHERE aolevel = 1&lt;br /&gt;
$$ LANGUAGE SQL;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&amp;lt;syntaxhighlight lang=&amp;quot;tsql&amp;quot;&amp;gt;&lt;br /&gt;
-- сбор всех parentguid&lt;br /&gt;
WITH all_parents AS (&lt;br /&gt;
  SELECT DISTINCT parentguid&lt;br /&gt;
    FROM addrobj&lt;br /&gt;
   WHERE (currstatus = 0) AND (parentguid IS NOT NULL)&lt;br /&gt;
)&lt;br /&gt;
-- выбор элементов самого нижнего уровня (не входящих в список all_parents)&lt;br /&gt;
-- и получение полного адреса&lt;br /&gt;
SELECT (make_full(aoid)).*&lt;br /&gt;
  FROM addrobj&lt;br /&gt;
 WHERE (currstatus = 0) AND (aoguid NOT IN (SELECT parentguid FROM all_parents))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Образцы результатов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;addr type=&amp;quot;обл&amp;quot;&amp;gt;Волгоградская&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;г&amp;quot;&amp;gt;Волгоград&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;ул&amp;quot;&amp;gt;Лавровая&amp;lt;/addr&amp;gt;&lt;br /&gt;
&amp;lt;addr type=&amp;quot;обл&amp;quot;&amp;gt;Орловская&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;р-н&amp;quot;&amp;gt;Мценский&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;п&amp;quot;&amp;gt;Лужки&amp;lt;/addr&amp;gt;&lt;br /&gt;
&amp;lt;addr type=&amp;quot;обл&amp;quot;&amp;gt;Челябинская&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;г&amp;quot;&amp;gt;Челябинск&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;ул&amp;quot;&amp;gt;Балтийская&amp;lt;/addr&amp;gt;&lt;br /&gt;
&amp;lt;addr type=&amp;quot;край&amp;quot;&amp;gt;Приморский&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;г&amp;quot;&amp;gt;Артем&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;ул&amp;quot;&amp;gt;Григорьева&amp;lt;/addr&amp;gt;&lt;br /&gt;
&amp;lt;addr type=&amp;quot;обл&amp;quot;&amp;gt;Калужская&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;р-н&amp;quot;&amp;gt;Ульяновский&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;д&amp;quot;&amp;gt;Бродок&amp;lt;/addr&amp;gt;&lt;br /&gt;
&amp;lt;addr type=&amp;quot;обл&amp;quot;&amp;gt;Свердловская&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;г&amp;quot;&amp;gt;Екатеринбург&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;ул&amp;quot;&amp;gt;Окраинная&amp;lt;/addr&amp;gt;&lt;br /&gt;
&amp;lt;addr type=&amp;quot;Респ&amp;quot;&amp;gt;Тыва&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;р-н&amp;quot;&amp;gt;Чаа-Хольский&amp;lt;/addr&amp;gt; &amp;lt;addr type=&amp;quot;м&amp;quot;&amp;gt;Сесеге&amp;lt;/addr&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Примечания:'''&lt;br /&gt;
# На настоящий момент существует 10 уровней (&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;AOLEVEL&amp;lt;/span&amp;gt;). Но могут быть введены дополнительные. Например, ранее все ГСК и СНТ вносились на уровень 7 (улицы). Позднее, для них был выделен уровень 90 (дополнительные территории).&lt;br /&gt;
# На зарезервированных уровнях (2 и 8) не содержится записей, в том числе и исторических.&lt;br /&gt;
&lt;br /&gt;
=== Статус актуальности ===&lt;br /&gt;
&lt;br /&gt;
В базе ФИАС никогда не удаляются элементы. Они могут быть только переведены в разряд &amp;quot;отключенных&amp;quot; (устаревшие, измененные и т.п.). Поведение аналогично работе КЛАДР. Рассмотрим поля, определяющие действительность объекта:&lt;br /&gt;
&lt;br /&gt;
Для выбора актуальных записей рекомендуется ориентироваться на поля &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;CURRSTATUS&amp;lt;/span&amp;gt; и &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;LIVESTATUS&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим подробнее:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;LIVESTATUS&amp;lt;/span&amp;gt; - Признак действующего адресного объекта. Принимает значения: 0 - не действующий, 1 - действующий (см. прим. 1).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;CURRSTATUS&amp;lt;/span&amp;gt; - Статус актуальности КЛАДР 4. Принимает значения: 0 - актуальный, 1-50 - исторический, 51 - переподчиненный (см. табл. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;CURENTST&amp;lt;/span&amp;gt; и гл. 1.2. &amp;quot;Коды адресных объектов&amp;quot; документации КЛАДР).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;OPERSTATUS&amp;lt;/span&amp;gt; - Статус действия. Принимает значения: 1 - Инициация, 10 - Добавление, 20 - Изменение и др (см. табл. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;OPERSTAT&amp;lt;/span&amp;gt;).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;ACTSTATUS&amp;lt;/span&amp;gt; - Статус актуальности адресного объекта ФИАС. Принимает значения: 1 - актуальный, 0 – не актуальный (см. табл. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;ACTSTAT&amp;lt;/span&amp;gt;). Отвечает непосредственно за актуальность &amp;quot;имени&amp;quot;. Если объект был переименован (чаще это исправление опечаток), то старая запись получает CURRSTATUS=1 и ACTSTATUS=0. Если же административная единица была ликвидирована или переподчинена, то имя останется по-прежнему актуальным: CURRSTATUS=99/51 и ACTSTATUS=1. В тоже время, при внесении изменений, не касающихся непосредственно адресной части, признак актуальности все равно сбрасывается (ACTSTATUS=0).&lt;br /&gt;
&lt;br /&gt;
Также, в категорию актуальности можно отнести поля &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;STARTDATE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;ENDDATE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;UPDATEDATE&amp;lt;/span&amp;gt;. Но, на данный момент (декабрь 2012 г.) значения этих полей редко бывают заполнены правильно.&lt;br /&gt;
&lt;br /&gt;
Покажем на примере выбор актуальных и исторический записей. &amp;quot;Пермский край&amp;quot; был образован 01.12.2005 объединением &amp;quot;Пермской области&amp;quot; и &amp;quot;Коми-Пермяцкого АО&amp;quot;. В базе ФИАС это отразилось следующим образом (см. табл. 1):&lt;br /&gt;
&lt;br /&gt;
# Создана новая запись &amp;quot;Пермский край&amp;quot; (1-й столбец);&lt;br /&gt;
# Запись &amp;quot;Пермская область&amp;quot; (2-й столбец) сохранена, причем &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;AOGUID&amp;lt;/span&amp;gt; обеих записей идентичен (для связи с дочерними объектами);&lt;br /&gt;
# Запись &amp;quot;Коми-Пермяцкий АО&amp;quot; (3-й столбец) также сохранена.&lt;br /&gt;
&lt;br /&gt;
'''Таблица 1'''&lt;br /&gt;
{| {{table}} cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Примечание'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Актуальная запись'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Пермская обл.'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Коми-Пермяцкий АО'''&lt;br /&gt;
|-&lt;br /&gt;
| AOID||c685f6ca-d7e1-4938-8b21-7c20035652d2||744e2599-d2bb-4364-9922-c13febb16e81||68824dc3-da0f-42d3-bd0b-1ceb91ff27bf&lt;br /&gt;
|-&lt;br /&gt;
| AOGUID||4f8b1a21-e4bb-422f-9087-d3cbf4bebc14||4f8b1a21-e4bb-422f-9087-d3cbf4bebc14||e3d95b95-cc2d-440d-95c6-65577fae076e&lt;br /&gt;
|-&lt;br /&gt;
| AOLEVEL||1||1||1&lt;br /&gt;
|-&lt;br /&gt;
| PREVID||744e2599-d2bb-4364-9922-c13febb16e81||68824dc3-da0f-42d3-bd0b-1ceb91ff27bf||&lt;br /&gt;
|-&lt;br /&gt;
| NEXTID||||c685f6ca-d7e1-4938-8b21-7c20035652d2||744e2599-d2bb-4364-9922-c13febb16e81&lt;br /&gt;
|-&lt;br /&gt;
| ACTSTATUS||1||0||1&lt;br /&gt;
|-&lt;br /&gt;
| OPERSTATUS||1||1||1&lt;br /&gt;
|-&lt;br /&gt;
| CURRSTATUS||0||1||51&lt;br /&gt;
|-&lt;br /&gt;
| LIVESTATUS||1||0||0&lt;br /&gt;
|-&lt;br /&gt;
| UPDATEDATE||2011-09-13||2011-09-13||2011-09-13&lt;br /&gt;
|-&lt;br /&gt;
| STARTDATE||1900-01-01||1900-01-01||1900-01-01&lt;br /&gt;
|-&lt;br /&gt;
| ENDDATE||2079-06-06||2079-06-06||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| FORMALNAME||Пермский||Пермская||Коми-Пермяцкий&lt;br /&gt;
|-&lt;br /&gt;
| OFFNAME||Пермский||Пермская||Коми-Пермяцкий&lt;br /&gt;
|-&lt;br /&gt;
| SHORTNAME||край||обл||АО&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Значения полей:&lt;br /&gt;
# &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;ACTSTATUS&amp;lt;/span&amp;gt; для Коми-Пермяцкого АО сохранен в значении &amp;quot;Актуальный&amp;quot;;&lt;br /&gt;
# &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;OPERSTATUS&amp;lt;/span&amp;gt; не изменился - ошибочно(?);&lt;br /&gt;
# &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;CURRSTATUS&amp;lt;/span&amp;gt; правильный (0 - актуальный, 1 - исторический, 51 - переподчиненный);&lt;br /&gt;
# &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;LIVESTATUS&amp;lt;/span&amp;gt; показывает единственную актуальную запись, но значения инвертированы (см. прим. 1).&lt;br /&gt;
&lt;br /&gt;
//ToDo - изменения в подчиненных объектах&lt;br /&gt;
&lt;br /&gt;
'''Примечания:'''&lt;br /&gt;
# Все актуальные записи (CURRSTATUS = 0) имеют значение (LIVESTATUS = 1) и наоборот. Очевидно, что поведение &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;LIVESTATUS&amp;lt;/span&amp;gt; не соответствует описанному в документации. Поле можно использовать для выбора актуальных записей, но с осторожностью до выяснения ситуации в будущем.&lt;br /&gt;
&lt;br /&gt;
=== Исторические названия ===&lt;br /&gt;
&lt;br /&gt;
Поля &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;AOID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;PREVID&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;NEXTID&amp;lt;/span&amp;gt; в совокупности составляют цепочку от современного к устаревшим наименованиям объекта. Хотя, если имеется два прямых предка (как в примере про &amp;quot;Пермский край&amp;quot;), то наследование невозможно отразить полностью однозначно.&lt;br /&gt;
&lt;br /&gt;
В общем виде получение исторических вариантов наименований объекта имеет вид:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;tsql&amp;quot;&amp;gt;&lt;br /&gt;
WITH RECURSIVE old_names AS (&lt;br /&gt;
    SELECT *&lt;br /&gt;
        FROM addrobj&lt;br /&gt;
        -- вариации отдельной записи:&lt;br /&gt;
        WHERE aoid = '002ff6b9-c2db-46e5-99da-8cf30d239b27'&lt;br /&gt;
        -- полный список:&lt;br /&gt;
        -- WHERE currstatus = 0 AND previd IS NOT NULL&lt;br /&gt;
    UNION&lt;br /&gt;
    SELECT addrobj.*&lt;br /&gt;
        FROM old_names, addrobj&lt;br /&gt;
        WHERE (addrobj.nextid = old_names.aoid)&lt;br /&gt;
)&lt;br /&gt;
SELECT * FROM old_names&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&lt;br /&gt;
{| {{table}} border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''shortname'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''formalname'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''actstatus'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''operstatus'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''currstatus'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''livestatus'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''updatedate'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''startdate'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''enddate'''&lt;br /&gt;
|-&lt;br /&gt;
| д||Малое Пермиево||1||21||0||1||2012-09-08||2012-02-01||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| д||Малое Пермиево||0||1||2||0||2011-09-14||1900-01-01||2012-02-01&lt;br /&gt;
|-&lt;br /&gt;
| с||Малое Пермиево||0||1||1||0||2011-09-14||1900-01-01||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ...&lt;br /&gt;
|-&lt;br /&gt;
| ул||Подстанция 220||1||20||0||1||2012-03-12||1911-11-11||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| ул||Подстанция (Комиссарово)||0||1||1||0||2011-09-15||1900-01-01||1911-11-11&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ...&lt;br /&gt;
|-&lt;br /&gt;
| пер||Рябиновый||1||20||0||1||2011-09-27||1900-01-01||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| ул||Рябиновая||0||1||1||0||2011-09-15||1900-01-01||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ...&lt;br /&gt;
|-&lt;br /&gt;
| снт||Восход(п.Селезнево)||1||1||0||1||2011-09-14||1900-01-01||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| дп||СТ Восход(п.Селезнево)||0||1||1||0||2011-09-14||1900-01-01||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ...&lt;br /&gt;
|-&lt;br /&gt;
| ул||Самбуева В.М.||1||1||0||1||2011-09-14||1900-01-01||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| ул||Ф.Энгельса||0||1||1||0||2011-09-14||1900-01-01||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ...&lt;br /&gt;
|-&lt;br /&gt;
| проезд||3-й Лабинский||1||1||0||1||2011-09-14||1900-01-01||2079-06-06&lt;br /&gt;
|-&lt;br /&gt;
| ул||Лабинская 2-я||0||1||1||0||2011-09-14||1900-01-01||2079-06-06&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
// ToDo: &lt;br /&gt;
&lt;br /&gt;
'''Примечания:'''&lt;br /&gt;
# Наблюдение (в документации не разъяснено): при внесении изменений, предыдущая историческая запись получает значение (CURRSTATUS = 1). Если вносится повторное изменение, то аннулируемая запись принимает значение (CURRSTATUS = 2). Таким образом, цепочка от современного названия к самому старому принимает вид: актуальное (0), предыдущее (3), более раннее (2), самое старое (1).&lt;br /&gt;
&lt;br /&gt;
=== Адресные классификаторы ===&lt;br /&gt;
&lt;br /&gt;
Записи в БД ФИАС содержат ссылки на другие российские адресные классификаторы:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;OKATO&amp;lt;/span&amp;gt; - код объекта административно-территориального деления (ОКАТО)&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;OKTMO&amp;lt;/span&amp;gt; - код муниципального образования (ОКТМО)&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;CODE&amp;lt;/span&amp;gt; - код КЛАДР&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;PLAINCODE&amp;lt;/span&amp;gt; - код КЛАДР без признака актуальности (последних двух цифр), см. также &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;CURRSTATUS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ФИАС предлагает собственный &amp;quot;классификационный код&amp;quot;, который хранится, разбитым на отдельные элементы: &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;REGIONCODE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;AUTOCODE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;AREACODE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;CITYCODE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;CTARCODE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;PLACECODE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;STREETCODE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;EXTRCODE&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;SEXTCODE&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В целом, код является расширенным вариантом КЛАДР: &lt;br /&gt;
&lt;br /&gt;
        СС А РРР ГГГ ВВВ ППП УУУУ ЭЭЭЭ ЦЦЦ&lt;br /&gt;
  ФИАС: 74 0 026 000 000 032 0021 0000 000&lt;br /&gt;
 КЛАДР: 74   026 000     032 0021&lt;br /&gt;
&lt;br /&gt;
Подробное описание см. в документе &amp;quot;Сведения о составе информации Федеральной информационной адресной системы&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Прочие поля ===&lt;br /&gt;
&lt;br /&gt;
* Ведомственные классификаторы ФНС России: СОНО - &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;IFNSFL&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;IFNSUL&amp;lt;/span&amp;gt;; СОУН - &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;TERRIFNSFL&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;TERRIFNSUL&amp;lt;/span&amp;gt;.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;CENTSTATUS&amp;lt;/span&amp;gt; - статус центра; ненулевое значение присвоено столицам, административным центрам и центральным районам регионов (подробнее см. табл. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;CENTERST&amp;lt;/span&amp;gt;).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;NORMDOC&amp;lt;/span&amp;gt; - нормативный документ (табл. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;NORMDOC&amp;lt;/span&amp;gt;).&lt;/div&gt;</summary>
		<author><name>Razum2um</name></author>
	</entry>
</feed>