Служба поддержки DaData.ru
Если чего-то не хватает, или вы столкнулись с проблемой — оставьте сообщение, и мы ответим в течение 24 часов. Работаем с понедельника по пятницу, с 10 до 19 по Москве.
Где мои 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,
...
});
Запрос идет, но подсказки не отображаются
Для тестирования просто скопировал текст примера со страницы https://dadata.ru/suggestions/usage/ со вставленным ключем без каких либо изменений. Запрос, видимо, делается, судя по анимации в правом углу поля ввода, но подсказки не отображаются.
Не работает в 1С Bitrix
1) dbi@kolesa-kik.ru
2) Добрый день. У вас есть бесплатный api, пытаюсь его внедрить в 1c Bitrix.
> Есть шаблон компонента sale.order.ajax у него есть поле input c id="soa-property-1", указываю id в скрипте, при этом input удаляю. Не работает.
>
> А вот в примере:
>
> <input id="fullname" name="fullname" type="text" size="100"/>
> <link href="https://cdn.jsdelivr.net/npm/suggestions-jquery@17.5.0/dist/css/suggestions.min.css" type="text/css" rel="stylesheet" />
> <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
> <!--[if lt IE 10]>
> <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest.min.js"></script>
> <![endif]-->
> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/suggestions-jquery@17.5.0/dist/js/jquery.suggestions.min.js"></script>
> <script type="text/javascript">
> $("#fullname").suggestions({
> token: "",
> type: "NAME",
> /* Вызывается, когда пользователь выбирает одну из подсказок */
> onSelect: function(suggestion) {
> console.log(suggestion);
> }
> });
> </script>
>
>
>
> если его вставить <input id="fullname" name="fullname" type="text" size="100"/> в шаблон. Он работает.
p.s.
Отключал подключение JS, тоже не работает
Василий, добрый день! Поле #soa-property-1 на момент инициализации подсказок скрыто. Подсказки игнорируют такие поля.
Для Битрикса мы рекомендуем использовать готовое решение компании Gorillas, чтобы не наступать самостоятельно на всевозможные «грабли».
К сожалению, документации на английском языке нет. Уточните, пожалуйста, а зачем вам английская документация?
У нас есть идея перевести документацию. Вы можете проголосовать за неё, мы отслеживаем спрос.
Сервис поддержки клиентов работает на платформе UserEcho