Служба поддержки DaData.ru
Если чего-то не хватает, или вы столкнулись с проблемой — оставьте сообщение, и мы ответим в течение 24 часов. Работаем с понедельника по пятницу, с 10 до 19 по Москве.
Тип данных для полей email / телефон
Привет!
В ответе на запрос к API подсказок приходят поля "phones" и "emails". Судя по названию - в данных этих полей может содержаться несколько значений.
Какой для них тип данных? Строка? Массив? JS объект? Не нашел примеров компаний, где эти данные есть.
Вообще, было бы здорово добавить типы для полей в документацию по API (https://confluence.hflabs.ru/pages/viewpage.action?pageId=592412794)
Станислав, привет! Пока в phones и emails всегда пусто, а будет массив объектов.
Павловский Посад препятствует распознаванию
Нас атаковали адресами в Павлово-Посадском районе, которые распознаются некорректно:
Евсеево, гор. округ Павловский Посад, Московская область;
Гаврино, гор. округ Павловский Посад, Московская область;
Заозерье, гор. округ Павловский Посад, Московская область;
и так далее.
Добавление почтовых индексов не помогает.
Все они начинают распознаваться, если "гор. округ Павловский Посад" заменить на "Павлово-Посадский".
Было бы здорово с этим разобраться.
Добрый день! Дадата честно сообщает, что она не уверена в разборе, и адрес надо проверить вручную (на это указывает код проверки).
Мы, со своей стороны, постараемся улучшить разбор таких адресов в будущем.
При вводе адреса отдельными полями не находится адрес "г Брянск, ул Вокзальная, д 150"
Здравствуйте.
При вводе адреса отдельными полями не находится адрес "г Брянск, ул Вокзальная, д 150". При вводе в свободной форме все работает.
Спасибо
Сергей, добрый день!
Подсказки используют справочник адресов налоговой службы (ФИАС). В нем две улицы Вокзальные в Брянске.
Из-за дублирования гранулярным Подсказкам приходится выбирать только одну улицу из двух. На ней дома 150 нет. К сожалению, более полной базы, чем ФИАС, просто не существует.
Пока в ФИАС есть дублирование улиц мы не можем решить эту проблему в гранулярных подсказках.
Поскольку 100% покрытия домов добиться невозможно, рекомендуем всегда разрешать человеку ввести адрес, даже если его нет в Подсказках.
Где мои 100 бесплатных запросов?)
Почему у меня сразу начали списываться деньги за запросы стандартизации через API?
И второй вопрос, 100 бесплатных запросов это в день или в месяц?
Спасибо.
В файловой стандартизации для каждого загруженного файла Дадата бесплатно обрабатывает 100 первых записей и показывает результат.
В API-стандартизации после активации API-ключа дарим 10 рублей на счет. Этого хватит для обработки 100 записей через API.
100 бесплатных записей вы можете использовать только один раз.
jQuery плагин - ошибка при обходе массива через for key in и расширенными прототипами Array
Доброго времени суток.
В проекте используем jQuery плагин (suggestions-jquery) стабильной версии 17.10.1
При расширении прототипа объекта Array (методы для удаления элемента из массива по значению и др.), в поиске появляется ошибка на подсказках по адресам, связанная с тем, что данный метод (св-во) объекта Array перечисляется при обходе массива через цикл for(historyValueIndex in historyValues) в методе getFormattedHistoryValues. И для функций расширений пытается вызваться toLowerCase().
Так же подобный перебор происходит в методе findUnusedTokens.
Обход массива через данный цикл - плохой тон. Как правило, предлагается проверять наличие св-ва в массиве через .hasOwnProperty, но не хотелось бы лезть руками в плагин, ведь для него выходят более свежие версии.
Прилагаю код методов.
/**
* Возвращает исторические названия для слов запроса, для которых не найдено совпадения в основном значении
*/
getFormattedHistoryValues: function(unusedTokens, historyValues) {
var tokenIndex,
token,
historyValueIndex,
historyValue,
values = [],
formatted = '';
for(historyValueIndex in historyValues) {
historyValue = historyValues[historyValueIndex];
for(tokenIndex in unusedTokens) {
token = unusedTokens[tokenIndex];
if (historyValue.toLowerCase().indexOf(token) >= 0) {
values.push(historyValue);
break;
}
}
}
if (values.length > 0) {
formatted = ' (бывш. ' + values.join(', ') + ')';
}
return formatted;
},
Метод findUnusedTokens из плагина
/**
* Возвращает список слов в запросе для которых не найдено соответствующего слова в ответе
*/
findUnusedTokens: function(tokens, value) {
var tokenIndex,
token,
unused = [];
for(tokenIndex in tokens) {
token = tokens[tokenIndex];
if (value.indexOf(token) === -1) {
unused.push(token);
}
}
return unused;
},
Спасибо.
Юр адрес
Добрый день!
Подсказки отдают адрес организации из официального справочника налоговой службы (ЕГРЮЛ).
Адрес юридического лица содержится в поле suggestion.data.address. Это объект. У него всегда есть поле «адрес одной строкой» (address.value). И дополнительно, если Дадате удалось уверенно распознать адрес, есть набор гранулярных полей (address.data).
Если Дадата уверенно распознала адрес компании, индекс лежит в отдельном поле address.data.postal_code. Если нет — индекс вместе с остальным адресом лежит одной строкой в поле address.value
В подсказках ввода адреса отсутствуют литеры зданий
Например при вводе адреса: г Санкт-Петербург, ул Магнитогорская, д 30
подсказки выдают только 30 дом, хотя в том же фиасе по 30 дому есть еще 5 литер.
как можно получать подсказки по литерам и корпусам в полном обьеме?
В ФИАС очень много несуществующих адресов с литерами, которые ничем не отличаются от реальных.
Мы выборочно проанализировали дома с литерами в ФИАС и выяснили, что есть множество домов-дублей с литерами. Поэтому не показываем их в Подсказках.
К сожалению, сейчас нет возможности разделять реально существующие дома и те, которые есть только в ФИАС.
Подсказки не мешают человеку вводить адреса с литерами. В данном случае ему просто придётся сделать это самому, не выбирая из вариантов.
Разный результат при работе через java и rest
Используем javascript при вводе адреса на фронтэнде и REST при вводе на бекэнде.
Например запрос "ленинский 17 4 9":
Результат javascript как и ожидается, "г Москва, Ленинский пр-кт, д 17 к 4, кв 9"
REST API при аналогичном запросе выдает "Респ Башкортостан, Куюргазинский р-н, с/с Ленинский", а при ограничении поиска по Москве вообще никаких результатов
Плагин использует геолокацию по IP-адресу. Через REST её тоже можно использовать:
- Сначала вызываете detectAddressByIp.
- Из ответа берёте kladr_id и подставляете в параметр locations_boost.
Если ограничить поиск по Москве, тоже будет корректный результат, только надо указать параметр restrict_value = true. Запрос в этом случае будет выглядеть так:
{ "query":"ленинский 17 4 9", "locations": [{ "kladr_id": "7700000000000" }], "restrict_value": true }
код кладра
Добрый день. почему адрес татарстан, зеленодольский район, зеленодольск г, гоголя ул, 34. выходит код кладра 1602100100000520115, а не 1602100100000520015 ?
Руслан, добрый день!
Дадата работает по справочнику адресов налоговой службы (ФИАС).
В ФИАС нет кодов КЛАДР для домов. Поэтому код дома (последние четыре цифры в коде КЛАДР) Дадата берёт из поля «Счетчик записей для формирования классификационного кода» (COUNTER). Эти коды часто отличаются от указанных в КЛАДРе.
В ФИАС COUNTER для дома 34 на улице Гоглоля равен именно 115.
Что касается самого справочника КЛАДР, то он доживает последний месяц. С 2018 года останется только ФИАС.
Надпись "выберите вариант или продолжите ввод"?
Здравствуйте, а можно ли убрать из подсказки надпись "выберите вариант или продолжите ввод" и тд? Можно ли в отдельных случаях убрать, а некоторых оставить?
Добрый день! Да, просто передайте параметр hint = false:
$("#id").suggestions({ ... hint: false, ... });
Сервис поддержки клиентов работает на платформе UserEcho