Служба поддержки DaData.ru
Если чего-то не хватает, или вы столкнулись с проблемой — оставьте сообщение, и мы ответим в течение 24 часов. Работаем с понедельника по пятницу, с 10 до 19 по Москве.
Справочник кодов ошибок для подсказок
Добрый день!
Можно получить перечень кодов ошибок для сервиса Подсказки? Хотим обрабатывать их на своей стороне.
Добрый день! Список здесь: https://dadata.ru/api/suggest/address/#return.
Устаревшие названия
Добрый день! Есть необходимость выводить бывшие названия адресов. Подсказка выводит эти названия в скобках, но при выборе адреса, передается только текущее актуальное значение. Каким образом можно получить полную строку подсказки с устаревшим названием?
Здравствуйте! Можно смотреть на поле "history_values", в нём будут возвращаться исторические названия, если они были. И если их сохранили в справочнике адресов налоговой — бывает, что удаляют старую запись и создают новую без каких-либо связей.
Загрузка ОКВЭД/ОКТМО целиком
Добрый день. Есть необходимость периодически загружать и обновлять справочники ОКВЭД и ОКТМО целиком. Подскажите, пожалуйста, как получить больше 20 записей справочника ОКВЭД/ОКТМО при загрузке из DaData ? Как это сделать? Спасибо.
Здравствуйте, Анастасия! Скачать справочники целиком в Дадате нельзя, но можно найти списки в открытых источниках. Например, на normativ.kontur.ru или rosstat.gov.ru.
Совместное использование с google maps
Здравствуйте. Как подружить ваш сервис совместно с google maps? Вместо autocomplete от google использовать ваши подсказки, но при этом чтобы осуществлялся поиск по карте и чтобы проставлялся балун.
Добрый день! Вот пример. В скрипте подставьте ваш API-ключ Google-карт вместо GOOGLE_API_KEY.
Как изменить запрос перед отправкой в onSearchStart?
Пытался сделать так:
onSearchStart: function(query) {
query.value = city+' '+query.value;
} // и так onSearchStart: function(query) { query = city+' '+query; } // Но ничего из этого никак не влияет на запрос
Вот так:
function onSearchStart(params) { params.query = ... } $(el).suggestions({ ... onSearchStart: onSearchStart };
О работе метода FindAddress
Добрый день.
Пишем на языке C# (Dadata.dll).
Суть задачи: нужно передать с сайта в ERP систему адрес (одноразово, прямо в момент заказа).
Решили сделать так:
1. На сайте из строки адреса получаем его структуру.
2. Берем из структуры два кода адреса (kladr_id
и fias_id
)
3. на стороне ERP берем эти коды (2) и ищем адрес по коду методом https://dadata.ru/api/find-address/
И вот что обнаружили, по fias_id
(если он есть) адрес находится, в вот kladr_id
поиск ни когда не возвращает результатов.
Примеры поиска:
2200000100001660049 и e63427cd-bf63-4a60-8e74-2d832fb9366e
2900600005400070007 и 81a0833e-a86f-472f-aa9e-ea8d0419fa97
В документации (https://dadata.ru/api/find-address/ ) сказано, что сервис ищет по любому из этих кодов.
Подскажите, пожалуйста, в чем ошибка?
Добрый день! Метод Адрес по коду КЛАДР или ФИАС ищет по КЛАДР-коду только до улицы. У домов нет постоянных КЛАДР-кодов, поэтому использовать их вовсе не стоит. В целом, лучше всегда использовать ФИАС-код вместо КЛАДР, даже для улиц и выше.
Что значит в ограничениях Количество условий (параметр locations) — не более 10.
Что значит в ограничениях
Количество условий (параметр locations
) — не более 10.
Это значит, что параметр locations принимает не более 10 ограничений.
Ограничение на количество новых соединений и интеграция на Laravel
Здравствуйте, у меня вопрос по ограничению количества соединений. Вот здесь написано:
Если используете PHP — возьмите нашу библиотеку, создайте один раз объект DadataClient и переиспользуйте его — так новые соединения не будут создаваться.
А как насчёт интеграций? Если использовать интеграцию для Laravel, то в ней этот механизм уже предусмотрен? Как им пользоваться?
Добрый день! Обе интеграции для Laravel сделаны сторонними разработчиками. Лучше уточнить у них этот вопрос.
Возвращается пустой ответ на запрос в 1С 8.3
Здравствуйте! Написал процедуру для автоматического заполнения карточки контрагента в 1С 8.3 данными с dadata, в итоге приходит пустой ответ на запрос {"suggestions":[]}, подскажите в какую сторону копать, уже всю голову сломал, код прилагаю.
Процедура ЗаполнитьПоИНН();
ИНН = Объект.ИНН;
Наименование = Объект.Наименование;
ИмяВремФайла = ПолучитьИмяВременногоФайла();
APIКлючDaData = Константы.APIКлючDaData.Получить();
//XSecreet = Константы.СекретныйКлюч.Получить();
ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("query", ИНН);
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, , , , , , , , Ложь);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
ТелоЗапросаСтрокой = ЗаписьJSON.Закрыть();
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Сервер = "suggestions.dadata.ru";
//СтрокаЗапроса = "/suggestions/api/4_1/rs/suggest/party";
СтрокаЗапроса = "/suggestions/api/4_1/rs/findById/party";
HTTPСоединение = Новый HTTPСоединение(сервер,,,,,, SSL);
HTTPЗапрос = Новый HTTPЗапрос(СтрокаЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Token " + APIКлючDaData);
//HTTPЗапрос.Заголовки.Вставить("X-Secret", XSecreet);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрокой,КодировкаТекста.UTF8);
Попытка
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Исключение
Сообщить("Произошла ошибка при отправке запроса");
КонецПопытки;
Попытка
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
ТекстJSON = HTTPОтвет.ПолучитьТелоКакСтроку();
Исключение
Сообщить("При отправке запроса произошла ошибка");
Возврат;
КонецПопытки;
Если HTTPОтвет = Неопределено Тогда
Сообщить("Получен не верный ответ от сервера dadata.ru");
ИначеЕсли HTTPОтвет.КодСостояния <> 200 Тогда
Сообщить("Получен не верный ответ от сервера dadata.ru");
КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ТекстJSON);
ОтветСервера = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Если ОтветСервера.количество() = 0 Тогда
Сообщить("Ни чего не найдено");
КонецЕсли;
Сообщить(ТекстJSON);
КонецПроцедуры
Решение найдено.
APIКлючDaData = "Указать свой токен"; ИНН = "7707782563"; ТелоЗапроса = Новый Структура; ТелоЗапроса.Вставить("query", ИНН); ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, , , , , , , , Ложь); ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON); ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса); ТелоЗапросаСтрокой = ЗаписьJSON.Закрыть(); SSL = Новый ЗащищенноеСоединениеOpenSSL(); Сервер = "suggestions.dadata.ru"; СтрокаЗапроса = "/suggestions/api/4_1/rs/findById/party"; HTTPСоединение = Новый HTTPСоединение(Сервер,,,,,, SSL); HTTPЗапрос = Новый HTTPЗапрос(СтрокаЗапроса); HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json"); HTTPЗапрос.Заголовки.Вставить("Accept", "application/json"); HTTPЗапрос.Заголовки.Вставить("Authorization", "Token " + APIКлючDaData); HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрокой,КодировкаТекста.UTF8); Попытка HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); JSON = HTTPОтвет.ПолучитьТелоКакСтроку(); Сообщить(JSON); Исключение Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки;
Feature 'CLEAN' disabled
Добрый день.
при запросе с php получаю такой ответ
[GuzzleHttp\Exception\ClientException]
Client error: `POST https://cleaner.dadata.ru/api/v1/clean/address` resulted in a `403 Forbidden` response:
{"timestamp":"2021-12-16T07:50:19.677+00:00","status":403,"error":"Forbidden","message":"Feature 'CLEAN' disabled for to (truncated...)
(403)
10.12.21 все работало нормально. Что мы сделали не так?
Здравствуйте, Роман! Вы используете API Стандартизации, а 10 000 бесплатных запросов — в API Подсказок.
После регистрации мы дарим 100 записей для обработки, дальше API Стандартизации (CLEAN) оплачивается за каждый запрос, 1 адрес — 10 коп: https://dadata.ru/pricing/#metered. Нужно пополнить баланс.
Сервис поддержки клиентов работает на платформе UserEcho