Служба поддержки DaData.ru

Если чего-то не хватает, или вы столкнулись с проблемой — оставьте сообщение, и мы ответим в течение 24 часов. Работаем с понедельника по пятницу, с 10 до 19 по Москве.

0
Исправлен

Ошибка в jQuery плагине при формированию value по объекту адреса

Кирилл 10 лет назад обновлен Антон Жиянов 9 лет назад 7
У Вас явная ошибка в jQuery плагине.
если передать плагину следующий параметр
{ bounds: "city-settlement" }, тогда при вводе "Железнодорожный" в подсказках будет показываться "Московская обл, г Железнодорожный", а при выборе этого варианта - в поле запишется "г Железнодорожный", а должно писаться именно как в подсказке.

Чтобы изменить это поведение, я изменил параметр на { bounds: "region-area-city-settlement" }, тогда при вводе "Железнодорожный" - все правильно и показывается в подсказках и при выборе "Московская обл, г Железнодорожный"
а вот для запроса "Москва" - в подсказках будет показываться "г Москва" а при выборе - "г Москва, г Москва", соответственно для этого варианта ситуация следующая - когда происходит выбор варианта подсказки - к вам на сервер уходит запрос с параметром { count: 1 }, он возвращает объект suggestion, внутри которого поле value заполнено как надо "г Москва", потом этот объект suggestion попадает вот в эту функцию:

checkValueBounds: function (suggestion) {
    var that = this,
        valueData;

    // If any bounds set up
    if (that.bounds.own.length && that.type.composeValue) {
        valueData = that.copyBoundedData(suggestion.data, that.bounds.own);
        suggestion.value = that.type.composeValue(valueData);
    }
}
И здесь поле value перезаписывается через функцию composeValue
composeValue: function (data) {
    return utils.compact([
        data.region_with_type || utils.compact([data.region, data.region_type]).join(' '),
        data.area_with_type || utils.compact([data.area_type, data.area]).join(' '),
        data.city_with_type || utils.compact([data.city_type, data.city]).join(' '),
        data.settlement_with_type || utils.compact([data.settlement_type, data.settlement]).join(' '),
        data.street_with_type || utils.compact([data.street_type, data.street]).join(' '),
        utils.compact([data.house_type, data.house, data.block_type, data.block]).join(' '),
        utils.compact([data.flat_type, data.flat]).join(' '),
        data.postal_box ? 'а/я ' + data.postal_box : null
    ]).join(', ');
}
Но она очевидно работает не правильно, т.к. вы в обновлении 15.7 - сделали следующий пункт:
Адрес одной строкой формируем с учетом требований Почты России: если город — центр региона, название региона не пишется (г Новосибирск, ул Абаканская, д 21). Если центр района — не пишется название района (Московская обл, г Одинцово, ул Ракетчиков).
А в функции composeValue - value просто формируется объединеннием всего подряд - вот и получается что от сервера приходит правильный value "г Москва", а функция composeValue возвращает неправильное значение "г Москва, г Москва".

Т.к. запрос к вашему серверу при выборе подсказки уходит с параметрами { count: 1, from_bound: {value: "region"}, to_bound: {value: "settlement"} }, т.е. с учетом bounds, то и ответ приходит правильно отформатированный уже, поэтому по-сути вызов composeValue - просто лишний, поэтому у себя я просто исправил функцию checkValueBounds вот так:
checkValueBounds: function (suggestion) {
    return;
    var that = this,
        valueData;

    // If any bounds set up
    if (that.bounds.own.length && that.type.composeValue) {
        valueData = that.copyBoundedData(suggestion.data, that.bounds.own);
        suggestion.value = that.type.composeValue(valueData);
    }
}


P.S. Еще у меня есть проблема - наша компания задумывается о приобретении standalone версии подсказок, чтобы обезопасить себя от вопросов доступности вашего сервиса, но мне никак не может ваш менеджер толком объяснить - что именно будет работать по-другому в standalone версии, но говорит что точно чего-то не будет, а чего до конца не ясно, в общем плавает ваш менеджер в этом вопросе... Я предложил чтобы не разбираться с этим вопросом на словах, а опробовать в деле - можете ли вы запустить у себя отдельную чистую standalone версию, и давать к ней доступ хотя бы по запросу через менеджера, а то как-то стремно покупать лицензию на что-то что работает так же, но только не совсем точно так же, а вот по-другому:) Хочется перед покупкой оттестировать именно на том функционале который и будет приобретен.

P.P.S. Спасибо за ваш сервис - все очень круто!)
0
Не ошибка

Только при count = 1 в запросе возвращается пустой массив(объект)

Stas 11 лет назад обновлен 11 лет назад 12
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Authorization: Token ****key***" -d "{ \"count\": 1, \"query\": \"Москва, Ленинский пр-кт, 99\" }" https://dadata.ru/api/v2/suggest/address
возвращает:
{"suggestions":[]}
При том всё где ">1" по 2 и более объекта масиве:
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Authorization: Token ****" -d "{ \"count\": 2, \"query\": \"Москва, Ленинский пр-кт, 99\" }" https://dadata.ru/api/v2/suggest/address
{"suggestions":[{"value":"Ханты-Мансийский Автономный округ - Югра, г Сургут, ул Курортная, д 99б","unrestricted_value":"Ханты-Мансийский Автономный округ - Югра, г Сургут, ул Курортная, д 99б","data":{"qc_complete":null,"qc_house":null,"qc_geo":null,"postal_code":"628403","postal_box":null,"country":"Россия","region_with_type":"Ханты-Мансийский Авт
╨╛╨╜╨╛╨╝╨╜╤ï╨╣ ╨╛╨║╤Ç╤â╨│ - ╨«╨│╤Ç╨░","region_type":"╨░╨╛","region_type_full":"╨░╨▓╤é╨╛╨╜╨╛╨╝╨╜╤ï╨╣ ╨╛╨║╤Ç╤â╨│","region":"╨Ñ╨░╨╜╤é╤ï-╨£╨░╨╜╤ü╨╕╨╣╤ü╨║╨╕╨╣ ╨É╨▓╤é╨
╛╨╜╨╛╨╝╨╜╤ï╨╣ ╨╛╨║╤Ç╤â╨│ - ╨«╨│╤Ç╨░","area_with_type":null,"area_type":null,"area_type_full":null,"area":null,"city_with_type":"╨│ ╨í╤â╤Ç╨│╤â╤é","city_type":"╨│","city_type_full":"╨│╨╛╤Ç╨╛╨┤","city":"╨í╤â╤Ç╨│╤â╤é","settlement_with_type":null,"settlement_type":null,"settlement_type_full":null,"settlement":null,"street_with_type":"╤â╨╗ ╨Ü╤â╤Ç╨╛╤Ç╤é╨╜╨░╤Å","street_type":"╤â╨╗","street_type_full":"╤â╨╗╨╕╤å╨░","street":"╨Ü╤â╤Ç╨╛╤Ç╤é╨╜╨░╤Å","house_type":"╨┤","house_type_full":"╨┤╨╛╨╝","house":"99╨▒","block_type":null,"block":null,"flat_area":null,"flat_type":null,"flat":null,"fias_id":null,"kladr_id":"8600001000000480006","tax_office":"8602","tax_office_legal":null,"okato":"71136000000","oktmo":null,"geo_lat":null,"geo_lon":null,"unparsed_parts":null,"qc":null}},{"value":"╤Ç╨╡╤ü╨┐ ╨í╨╡╨▓╨╡╤Ç╨╜╨░╤Å ╨₧
сетия - Алания, г Владикавказ, ул Ардонская, д 99","unrestricted_value":"респ Северная Осетия - Алания, г Владикавказ, ул Ардонская, д 99","data":{"qc_complete":null,"qc_house":null,"qc_geo":null,"postal_code":"362008","postal_box":null,"country":"Россия","region_with_type":"респ Северная Осетия - Алания","region_type":"респ","region_type_full":"республик
╨░","region":"╨í╨╡╨▓╨╡╤Ç╨╜╨░╤Å ╨₧╤ü╨╡╤é╨╕╤Å - ╨É╨╗╨░╨╜╨╕╤Å","area_with_type":null,"area_type":null,"area_type_full":null,"area":null,"city_with_type":"╨│ ╨Æ╨╗╨░╨
┤╨╕╨║╨░╨▓╨║╨░╨╖","city_type":"╨│","city_type_full":"╨│╨╛╤Ç╨╛╨┤","city":"╨Æ╨╗╨░╨┤╨╕╨║╨░╨▓╨║╨░╨╖","settlement_with_type":null,"settlement_type":null,"settlement_type_full":null,"settlement":null,"street_with_type":"╤â╨╗ ╨É╤Ç╨┤╨╛╨╜╤ü╨║╨░╤Å","street_type":"╤â╨╗","street_type_full":"╤â╨╗╨╕╤å╨░","street":"╨É╤Ç╨┤╨╛╨╜╤ü╨║╨░╤Å","house_type":"╨┤","house_type_full":"╨┤╨╛╨╝","house":"99","block_type":null,"block":null,"flat_area":null,"flat_type":null,"flat":null,"fias_id":null,"kladr_id":"1500000100000080017","tax_office":"1513","tax_office_legal":null,"okato":"90401000000","oktmo":null,"geo_lat":null,"geo_lon":null,"unparsed_parts":null,"qc":null}}]}

Мне всё равно нужен первый элемент, но без count=1 нету геолокации, если я верно понял.
Ответ
Антон Жиянов 10 лет назад
Полный тип записываем именно для поселка, потому что он сокращается как «п», и точно также сокращается поселение. Поэтому пишем полный тип, чтобы избежать неоднозначности.
0
Отвечен

Модуль на Престашоп 1.4Х

Анонимный 11 лет назад обновлен Анастасия 9 лет назад 3
Планируется модуль для Престашоп 1.4х ?
Ответ
Антон Жиянов 11 лет назад
Нет, но есть модуль для 1.5+
0
Отвечен

Индекс для Организаций

Дмитрий «campusboy» Кобяков 10 лет назад обновлен Антон Жиянов 10 лет назад 1

Здравствуйте. Использую модуль "Организации", получаю юридический адрес без индекса. Как получить индекс?

0
Отвечен

Не работает blur() в подсказках PARTY и EMAIL

Давид 10 лет назад обновлен Антон Жиянов 10 лет назад 7

Добрый день.

Суть вопроса такова. На onSelect даю инпуту событие blur(). В ADDRESS работает великолепно. В EMAIL и PARTY упорно держит курсор на поле и не переставляет его на другое место. Иных перекрывающих blur/on ('blur') событий/масок и тп на эти инпуты нет. Даже не могу зафокусить другое поле на onSelect (в ADDRESS могу - заполняемые зависимые поля или независимые поля с раскладываемыми значениями - не важно).

Ответ
Антон Жиянов 10 лет назад

Добрый день!

Вижу проблему. Как понимаю, речь идет только о фокусе мышью, с клавиатуры работает. Быстрое решение – в onSelect все операции с фокусом сделать через setTimeout(..., 0)

0
Отвечен

Как получить общее количество организаций ЕГРЮЛ/ЕГРИП по введенным данным?

Анонимный 11 лет назад обновлен Антон Жиянов 11 лет назад 4
Как получить общее количество организаций по введенным данным? Мы выводим последние 20, хотелось бы подсчитать полное количество для статистики. Спасибо.
0
Отвечен

Получение значения геолокации в javascript

Анонимный 12 лет назад обновлен Антон Жиянов 12 лет назад 1
Здравствуйте, меня интересует следующий вопрос: можно ли как-то получить данные из автоматического определения геолокации при использовании jQuery плагина с помощью javascript?
Ответ
Антон Жиянов 12 лет назад
Добрый день! Прямо сейчас можно получить только полный адрес, включая часть, определенную через геолокацию. Но в сентябре добавим возможность получить именно данные геолокации.
0
Отвечен

Как сделать подсказки только по России?

Виталий 10 лет назад обновлен 8 лет назад 6

Исползую jQuery плагин. Хочу сделать, чтобы нельзя было ввести в поле города и регионы за пределами РФ. Как это можно сделать?

Ответ
Валерия Таныгина 8 лет назад

Ограничить поиск только по России можно так: https://codepen.io/dadata/pen/LkJxvw

0
Не ошибка

Cдвиг полей вправо в подсказказ адреса

Анонимный 10 лет назад обновлен Антон Жиянов 10 лет назад 3
Добрый день!

Я сделал для себя модуль для интеграции подсказок по адресам с SuiteCRM. Почему-то иногда при использовании firefox непонятным образом адрес после ввода его строкой и разложением по полям смещается вправо.
Вот пример ввода адреса
https://mega.nz/#!L0gTEBTK!7zcnz48I-l8iA49LV1cTd63iAElQwHJ6Pb57lILIOvs
Вот что получаем после выбора
https://mega.nz/#!e0ISRaoA!55PKePr_Nx_HtlM9-32pfLHXnEvwRFF7P8k647vTR18
Если пройти по полям табом, то проблема уходит и больше не проявляется (только при первой попытке использования)
https://mega.nz/#!a1ZmmarS!MJ8CpUUTYdPwTpFr9-BgA3EhI9zN6wV9EZHngcieJqE
Если вводит адрес покомпонентно, то проблемы нет вообще
https://mega.nz/#!X5x0SRyY!PlkYyXlCwtO5l8MIyz-JDthMEx92AiDrZzCH3shlr-A
var serviceUrl = "https://dadata.ru/api/v2",
	token = "МОЙ КЛЮЧ",
	type  = "ADDRESS",
	country = $("#billing_address_country"),
	postalcode = $("#billing_address_postalcode"),
	state =	$("#billing_address_state"),
	district = $("#billing_address_district"),
	city = $("#billing_address_city"),
	locality = $("#billing_address_locality"),
	street = $("#billing_address_street"),
	house = $("#billing_address_house"),
	building = $("#billing_address_building"),
	appt = $("#billing_address_appt"),
	full = $("#billing_address_full"),
	kladr = $("#billing_address_kladr");
full.suggestions({
	serviceUrl: serviceUrl,
	token: token,
	type: type,
	count: 5,
	onSelect: fillAddrFields
});
state.suggestions({
	serviceUrl: serviceUrl,
	token: token,
	type: type,
	hint: false,
	bounds: "region",
	onSelect: fillAddrFields
});
district.suggestions({
	serviceUrl: serviceUrl,
	token: token,
	type: type,
	hint: false,
	bounds: "area",
	constraints: state,
	onSelect: fillAddrFields
});
city.suggestions({
	serviceUrl: serviceUrl,
	token: token,
	type: type,
	hint: false,
	bounds: "city",
	constraints: district,
	onSelect: fillAddrFields
});
locality.suggestions({
	serviceUrl: serviceUrl,
	token: token,
	type: type,
	hint: false,
	bounds: "settlement",
	constraints: city,
	onSelect: fillAddrFields
});
street.suggestions({
	serviceUrl: serviceUrl,
	token: token,
	type: type,
	hint: false,
	bounds: "street",
	constraints: locality,
	onSelect: fillAddrFields
});
house.suggestions({
	serviceUrl: serviceUrl,
	token: token,
	type: type,
	hint: false,
	bounds: "house",
	constraints: street,
	onSelect: fillAddrFields
});
В других браузерах проблемы вроде нет.

Дмитрий

Сервис поддержки клиентов работает на платформе UserEcho