ФИАС
Компонент на базе модального окна, который позволяет указывать адрес в соответствии с Федеральной информационной адресной системой, сокращённо - ФИАС.
Адрес на странице
В форме или на странице реквизитов адрес отображается как блок текста, со ссылкой «Заполнить адрес» или «Изменить адрес»:
![](img/fias-buttons.png)
В блоке с адресом не используются сокращения типов топонимов «ул.» «пер.» и прочие. Вместо этого пишем слова полностью «улица», «переулок» и так далее.
Топо́ним (от др.-греч. τόπος — место + ὄνομα — имя, название) — имя собственное, обозначающее название географического объекта: Москва, Екатеринбург, Волга, Исеть, Байкал и т.д.
Тип топонима — родовой географический термин: город, село, деревня, хутор, река и т.п.
Между наименованием типа топонима и топонимом ставятся неразрывные пробелы, чтобы при переносах они не отрывались друг от друга.
Если в адресе отсутствует какой-то тип топонима, он просто не показывается вместе с разделителем:
![](img/double-commas.png)
Состав модального окна
При клике на ссылку открывается модальное окно с определенным набором полей.
Не все поля обязательны для заполнения, но после потери фокуса все заполненные поля проверяются на соответствие справочнику
![](img/fias-default.png)
Поле быстрого поиска адреса
Поле представляет собой комбобокс без стрелки с настройкой «Поиск по вхождению» и иконкой поиска справа
При получении полем фокуса выпадающий список не появляется, пока не начался ввод
![](img/fias-combobox.png)
При начале ввода начинается поиск по самому крупному топониму — региону
![](img/fias-combobox-region.png)
Если в произвольный момент ввода пользователь поставил пробел или запятую, начинается поиск по следующему в иерархии топониму
![](img/fias-combobox-toponym.png)
И так далее до последнего по иерархии топонима: «Дом, сооружение»
![](img/fias-combobox-building-1.png)
![](img/fias-combobox-building-2.png)
![](img/fias-combobox-building-3.png)
Если в произвольный момент поиска пользователь выбирает стрелкой или мышью подходящий адрес, то он автоматически подставляется в соответствующие в поля модального окна адреса. Фокус ввода при этом перемещается на следующий по иерархии топоним
![](img/fias-fill-order.png)
В поле поиска подставляется выбранный вариант полностью. Если названия топонимов изменяются пользователем в полях ввода, они автоматически обновляются и в поле поиска. Если значение в поле поиска длиннее поля, оно обрезается с конца
При повторном получении поиском фокуса введенное значение выделяется и в поле становится виден конец введенной строки.
![](img/fias-combobox-filled-focus.png)
При изменении пользователем любой части адреса поиск возобновляется с того топонима, который был изменен
![](img/fias-combobox-value-edit.png)
Автоматическое заполнение
В поля справочника — комбобоксы без стрелки с настройкой «Поиск по вхождению».
Состояние по умолчанию
![](img/fias-combobox-default.png)
Фокус на пустом поле
При получении полем фокуса выпадающий список не появляется, пока не введен хотя бы один символ.
![](img/fias-combobox-empty-focus.png)
Поиск
Ищем по подстроке. Результаты упорядочены по алфавиту или номерам в порядке возрастания. Показываем первые 5 результатов.
Ищем в следующем порядке:
- по подстроке названий, тип топонима которых совпадает с названием поля;
- по подстроке названий с другим типом топонима;
![](img/fias-building-search-order.png)
Сначала отображаются результаты, где подстрока найдена раньше, затем остальные. При одинаковом положении подстроки, результаты упорядочены по возрастанию.
![](img/fias-street-search-order.png)
Есть два варианта поиска: поиск топонима по всему справочнику адресов и поиск по справочнику, ограниченному родительским топонимом.
Поиск по всему справочнику
Такой поиск работает для полей «Район», «Город», «Населенный пункт», «Иная территория».
Для этих полей ищем по всему справочнику адресов. В результатах поиска показываем через запятую все вышестоящие по иерархии топонимы. Названия топонимов при этом отображаются всегда у всех элементов в цепочке. Результаты упорядочены сначала по положению топонима в цепочке, а затем по возрастанию названий родительских топонимов.
Например, при поиске по городу «Нижн» результат «Нижегородская область, город Нижний Новгород» стоит выше, чем «Республика Татарстан, Нижнекамский район, город Нижнекамск», а последний - выше, чем «Свердловская область, Алапаевский район, город Нижняя Синячиха».
![](img/fias-dictionary-search.png)
При выборе результата поля выше заполняются автоматически.
Если пользователь уже ввел значения в поля выше, используем их для уточнения поиска. В этом случае сначала ищем непосредственно по родительскому топониму, а затем - по его дочерним топонимам. Например, если ввели регион «Свердловская область» и начинают вводить город, то сначала ищем по городам Свердловской области, а затем по городам районов Свердловской области.
При этом в результатах поиска не показываем название топонима если оно совпадает с названием поля и стоит первым в цепочке иерархии топонимов.
![](img/fias-dictionary-filled-search-order.png)
Поиск по ограниченному справочнику
Для всех остальных полей-комбобоксов поиск происходит только по справочнику адресов, ограниченному родительским топонимом: для улицы необходимо заполнить населенный пункт, для дома - улицу и так далее.
Отображение названий топонимов
Если в результатах поиска тип топонима совпадает с названием поля, не выводим его в списке результатов. Например, для поля «Улица» в результатах будет просто «Мамина-Сибиряка», но полностью «проспект Ленина» или «переулок Васильковый». Первыми выводятся совпадения в топонимах, и только потом, результаты поиска по подстроке в названии типа.
![](img/fias-toponym-name-shrink-1.png)
![](img/fias-toponym-name-shrink-2.png)
После выбора значения подставляем в поле тип топонима, только если он не совпадает с названием поля.
![](img/fias-toponym-name-shrink-example.png)
Валидация
У адреса РФ есть три состояния:
- Заполнен по справочнику адресов;
- Заполнен не по справочнику адресов;
- Не заполнен.
В зависимости от требований аналитики критичность ошибки может меняться. Кнопка модального окна «Сохранить» доступна всегда — можно закрыть модальное окно сохранив любое его состояние, даже с ошибкой.
![](img/fias-validation.png)
Поля в модальном окне проверяются по иерархии сверху вниз, каждый раз по потере фокуса любым из полей и подсвечивается первое по старшинству среди неправильно заполненных полей.
Например, выбрали регион Свердловская обл, город Екатеринбург, потом меняем регион на Калужскую область, подсветится поле «Город».
![](img/fias-relative-validation.png)
Адреса не в Российской Федерации
Если требуется указывать адрес не только в Российской Федерации, то добавляется поле с автокомплитом «Страна».
![](img/fias-country.png)
Если выбрана страна, отличная от «Россия», показываем только многострочное поле «Адрес» и поле «Индекс».
![](img/fias-country-address.png)
Если пользователь вводит страну «Россия», ниже показываем все поля ввода адреса по справочнику ФИАС.
![](img/fias-country-ru.png)
Модальное окно с дополнительными полями ФИАС
В зависимости от требований аналитики возможно наличие полей «Индекс», «ОКАТО», «ОКТМО» и «Номер адреса в реестре».
![](img/fias-additional-fields.png)
У дополнительных полей показываем значок вопроса с подсказкой о том, что поля заполняются автоматически.
![](img/fias-combobox-hint.png)
Описание полей
Страна
Автокомплит работает всегда, ищет как по полным названиям стран так и по общепринятым сокращениям. Значения упорядочены по алфавиту.
Название поля в справочнике ФИАС: Наименование страны
Регион
Автокомплит работает всегда, ищет как по названиям так и по коду региона.
При поиске по году региона, ищем по подстроке. Первыми отображаются результаты, где подстрока встречается раньше. При одинаковом положении подстроки - упорядочено по возрастанию значений.
![](img/fias-region.png)
При поиске по названию ищем по подстроке. Первыми идут результаты с совпадением в названиях регионов, затем - в названиях топонимов.
![](img/fias-region-search-order.png)
Коды регионов показываются только в выпадающем списке, в поле будет подставлено лишь название региона. Тип региона (республика, автономный округ, край, область) пишется без сокращений.
![](img/fias-region-codes.png)
Название поля в справочнике ФИАС: Наименование субъекта Российской Федерации
Район
Автокомплит работает всегда. Работает поиск по всему справочнику адресов. В выпадающем списке у вариантов не пишем название топонима «район». Если регион не выбран, в списке показываем варианты через запятую с регионом и пишется название топонима «район». После выбора подставится регион.
Для выбранного значения названия топонима «район» и «р-н» не пишем, только название выбранного района.
Название поля в справочнике ФИАС: Наименование муниципального района, городского округа или внутригородской территории (для городов федерального значения) в составе субъекта Российской Федерации
Город
Автокомплит работает всегда. Работает поиск по всему справочнику адресов. В выпадающем списке у вариантов не пишем название топонима «город». Если не выбраны значения в полях выше, в списке показываем варианты через запятую с регионом и районом и пишем название топонима «город». После выбора подставится район и регион.
Городов федерального значения (которые на самом деле регионы) четыре: Москва, Санкт-Петербург, Севастополь, Байконур.
Для выбранного значения не пишем название топонима «город» или «г.».
Название поля в справочнике ФИАС: Наименование городского или сельского поселения в составе муниципального района (для муниципального района) или внутригородского района городского округа
Населенный пункт
Автокомплит работает всегда. Работает поиск по всему справочнику адресов. Если не указаны поля выше, в списке показываем полный путь через запятую до населенного пункта.
В результатах поиска и для выбранного значения пишем тип населенного пункта.
Название поля в справочнике ФИАС: Наименование населенного пункта
Иная территория
Автокомплит работает всегда. Работает поиск по всему справочнику адресов. Если не указаны поля выше, в списке показываем полный путь через запятую до иной территории.
В результатах поиска и для выбранного значения пишем тип территории.
![](img/fias-other-type.png)
Если в указанном в полях выше топониме нет иных территорий, показываем сообщение.
![](img/fias-other-empty.png)
Название поля в справочнике ФИАС: Наименование элемента планировочной структуры
Улица
Автокомплит работает, только если заполнены поля «Город» или «Населенный пункт».
Если не заполнены, показываем сообщение.
![](img/fias-street-no-town.png)
Если результат поиска - улица, то название топонима не выводим. Если это не улица, а проспект, переулок и т.д., вместе с названием пишем тип топонима. Как и в регионе не сокращаем названия типов: Космонавтов пр. — проспект Космонавтов; Базовый пер. — переулок Базовый.
Ищем по подстроке. Первыми идут результаты с совпадением в названиях улиц, затем - в названиях других типов топонима (проспект, переулок и т.д.), последними - с совпадениями в названиях типов топонима.
![](img/fias-street-search-order.png)
Название поля в справочнике ФИАС: Наименование элемента улично-дорожной сети
Участок
Автокомплит работает, только если заполнено поле «Улица». Если не заполнено, выводится cообщение.
![](img/fias-site-no-street.png)
Если в топониме «Улица» нет участков, показываем сообщение.
![](img/fias-site-empty.png)
Название поля в справочнике ФИАС: Номер земельного участка
Дом, сооружение
Автокомплит работает, только если заполнено поле «Улица». Если не заполнено, показываем сообщение.
![](img/fias-building-no-street.png)
В поле «Дом, сооружение» предлагаются все варианты и сочетания значений «дом», «владение», «домовладение», «корпус», «строение», «сооружение», «литер». Название топонима «дом» не пишется ни в списке, ни в выбранном значении.
![](img/fias-building-search-order.png)
Название поля в справочнике ФИАС: Тип и номер здания, сооружения или объекта незавершенного строительства
Квартира, помещение
Текстовое поле.
Название поля в справочнике ФИАС: Тип и номер помещения, расположенного в здании или сооружении
Индекс, ОКАТО, ОКТМО и Номер адреса в реестре
Поля заполняются автоматически на основании заполненных выше полей адреса, но пользователь может ввести собственное значение.
Во все эти поля можно ввести только цифры, а в поле «Номер адреса в реестре» - допускаются еще первые 6 латинских букв и дефис.
Если адрес введен неверно, поля очищаются.
Если пользователь изменяет поля вручную, показывается предупреждение с возможностью вернуть исходное значение.
![](img/fias-index-validation.png)
Устаревшие адреса
В зависимости от требований аналитики устаревшие адреса могут отображаться или не отображаться в результатах поиска.
Если в сервисе используется отображение устаревших названий, нужно учитывать случаи, когда не требуется обновлять значения.
Если требуется заполнять адрес, как есть в документе, например, при указании прописки. То в сервисе должно быть выведено предупреждение о том, что введенный адрес является устаревшим. И предложение пользователю выбрать один из вариантов - заменить актуальным или оставить устаревшее.
![](img/fias-old-name-not-strict.png)
При выборе замены новым, адрес поменяется во всех полях. Если пользователь выбрал вариант оставить устаревшим, то предупреждение больше не показывается.
Если же в сервисе требуется ввод только актуальных адресов, например, при отчетности в ФНС, то устаревший адрес будет отмечен ошибкой и предложен вариант заменить актуальным.
![](img/fias-old-name-strict.png)