Поищем на fias.nalog.ru адрес «Новосибирская обл, г Новосибирск, ул Зорге, д 56». Индекса нет.

Если посмотреть этот же адрес на сайте почты России — увидим индекс.

Чтобы нормально работать с почтовыми адресами, сайты подключают справочник адресов налоговой службы (ФИАС). На dadata.ru это сделали уже пять тысяч интернет-магазинов, CRM и стартапов.
А мы поглядели на проблемы клиентов, подумали и собрали увесистый комплект граблей, по которым любят ходить разработчики в обнимку с ФИАСом.
Тех, кто использует ФИАС для доставки писем и посылок, ждет сюрприз. Почему-то все считают, что если ФИАС — общероссийская база адресов, то индексы в нем должны быть правильные. Это не так.
В ФИАС несколько тысяч неправильных или отсутствующих индексов.
Поищем на fias.nalog.ru адрес «Новосибирская обл, г Новосибирск, ул Зорге, д 56». Индекса нет.
Если посмотреть этот же адрес на сайте почты России — увидим индекс.
К сожалению, данные ФНС расходятся с реальностью и с данными Почты. На форуме «Дадаты» каждый месяц задают новый вопрос на эту тему.
Опытные владельцы интернет-магазинов знают про подставу с индексами и дополнительно проверяют индексы ФИАС по базе Почты России. Но и с Почтой не все хорошо: там нет нескольких тысяч индексов, которые есть в ФИАС.
Индексы 742602, 103340 есть в ФИАС, но база Почты России про них не знает.
Мы в «Дадате» работаем над объединенной базой индексов ФИАС и Почты России. Она компенсирует ошибки ведомств и пригодится для доставки писем и посылок. Планируем выпустить до конца года.
Разработчики используют в качестве идентификатора дома код КЛАДР — хотя давно уже существует ФИАС и уникальный код адреса в нем (GUID). Обычно так делают для совместимости со старыми системами.
Идентифицировать дом кодом КЛАДР — очень соблазнительно с девелоперской точки зрения, но так делать не стоит. Потому что код до дома нестабилен и меняется каждый месяц.
Адрес | Код КЛАДР в ФИАС от 10.03.16 | Код КЛАДР в ФИАС от 18.04.16 |
г Казань, ул Космонавтов, д 12 | 1600000100006330009 | 1600000100006330082 |
г Нижний Новгород, ул Панфиловцев, д 4Б | 5200000100008060003 | 5200000100008060018 |
г Самара, поселок Мехзавод, кв-л 16-й, д 7 | 6300000103700170018 | 6300000103700170043 |
Надежнее для идентификации адреса использовать код КЛАДР улицы и домовую часть адреса: 160000010000633, д 12. А еще лучше вместо кода КЛАДР сохранять ФИАС-код улицы.
Идентифицировать адрес до дома с помощью кода ФИАС — тоже не лучшая идея.
Кодом ФИАС часто обозначают не отдельный дом, а диапазон домов, например «1–10». Разумеется, у всех домов внутри диапазона будет один и тот же код. Если дом исходно был в составе диапазона, а потом вылез в отдельную запись — его код изменится.
Адрес | Код ФИАС диапазона, ФИАС от 10.03.16 | Код ФИАС дома, ФИАС от 18.04.16 |
Московская обл, Истринский р-н, с Павловская Слобода, ул Дзержинского, д 1 | 720b25da-f43e-4204-9013-3cb06be3e9e4. Диапазон домов 1–6 | 5bbc0463-ffc4-4d8f-bc5f-632c46eeedca |
г Волгоград, ул им Пархоменко, д 33 | 44de3bc5-a650-4f77-b19a-7a12bb619c21. Диапазон домов 15–35, нечётные | 98216a50-2c52-4b0c-8864-a19dc7a30a73 |
г Ижевск, ул Удмуртская, д 267 к 3 | 92ff5f38-01fb-42e6-97d6-a95f541644f4. Диапазон домов 261–277, нечётные | ac8015c8-0e73-442d-a6aa-427f2e973ec5 |
Поэтому рекомендую поступать так же, как с кодом КЛАДР — использовать ФИАС-код улицы и домовую часть адреса.
Если хранить адрес одной строкой, то со временем база заполнится записями разного формата.
Типичный дубль в базе — «Урюпинск, проспект Ленина» и «Урюпинск, пр-кт Ленина».
Это происходит потому, что формат записей в ФИАС все время меняется:
Поэтому в дополнение к адресу одной строкой хорошо сохранять ФИАС-код улицы.
Бывает, что разработчики ограничивают ввод дома только домами из ФИАС. Это парадоксально приводит одновременно к нехватке и избытку информации:
В ФИАС домов не хватает.
В ФИАС нет дома по адресу «Московская обл., г. Балашиха, Горенский б-р, д. 3» (на карте). Зато есть дом «3 к А».
А иногда их слишком много. В ФИАС есть фальшивые «дома» с литерами, которых в реальной жизни нет (или есть, но радости от них никакой это будка трансформаторная).
Лишние дома: «г. Санкт-Петербург, ул. Кораблестроителей, дома 38к3, 38к3 литера А, 38к3 литера Т».
Лучше не ограничивать ввод дома, а предлагать человеку дома из ФИАС и разрешать ввести свой вариант (в «Подсказках» делаем именно так).
ФИАС скуден не только домами. В России все время появляются новые улицы и поселки, а налоговая служба за жизнью не успевает.
В ФИАС нет поселка Новогорелово из Ленинградской области, и Нового Лапино из Московской области.
Мы в Дадате собираем такие адреса от пользователей и ведем их как дополнительный справочник к ФИАС, чтобы помогать пользователям вводить несуществующие в ФИАС адреса.
Некоторые разработчики, поддавшись магии ФИАС, делают формы ввода адреса по структуре ФИАС: заставляют пользователя различать город и населенный пункт, обязательно вводить регион и район.
Например, интернет-магазин Почты России.
Как, вы еще не помните наизусть свой индекс?!
Правильные ребята позволяют клиентам указывать адрес одной строкой и не заморачиваться вводом индекса.
Я тоже когда-то думала, что с помощью ФИАС избавлюсь от проблем с вводом адресов раз и навсегда. Но у ФИАС есть свои проблемы: прыгучие идентификаторы, кривые индексы и забытые адреса.
Чтобы облегчить себе жизнь и не наступать на известные грабли:
А самый удобный вариант — использовать «Подсказки» для ввода адреса. В них решены все проблемы, кроме последней — ее планируем закрыть до конца года.