Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1С Предприятие 8.3, заполнение реквизитов по ИНН c dadata

Модерирует : ShIvADeSt

articlebot (02-03-2024 01:44): 1С Программирование и поддержка (1C)  Версия для печати • ПодписатьсяДобавить в закладки

   

rostovweb

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет! Написал процедуру для автоматического заполнения карточки контрагента данными с 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);
КонецПроцедуры

Всего записей: 5 | Зарегистр. 12-04-2014 | Отправлено: 02:39 19-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rostovweb
1С Программирование и поддержка (1C)

Всего записей: 15121 | Зарегистр. 20-09-2014 | Отправлено: 02:45 19-12-2021
rostovweb

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Решил так:
 
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);
    Исключение
        Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    КонецПопытки;

Всего записей: 5 | Зарегистр. 12-04-2014 | Отправлено: 14:19 19-12-2021
merciful2006

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Не подскажите где взять расширение для подключения к сервису DaData 1С БП?





Нарушение п. 2.7. главы VIII Соглашения по использованию

Всего записей: 4 | Зарегистр. 27-01-2019 | Отправлено: 19:37 01-03-2024
   

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » 1С Предприятие 8.3, заполнение реквизитов по ИНН c dadata
articlebot (02-03-2024 01:44): 1С Программирование и поддержка (1C)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru