Имя: Пароль:
1C
 
api DaData.ru получение данных Организаций
0 spiller26
 
27.09.17
13:24
Есть сервис api DaData.ru для получение данных Организаций (Контрагентов), т.к. бывают моменты что сервис 1С:Контрагенты не глючит (сегодня не захотел пускать, хотя подписка ИТС Проф заканчавается в следующем году) и хочется резерв для вытаскивания данных контрагентов по ИНН или Наименованию.

Все успешно проходит, только вот ответ пустой: "{"suggestions":[]}"
Кто либо пользовался данным сервисом?

&НаСервере
Процедура ЗапросDaDataНаСервере()

    Попытка
        ssl1 = Новый ЗащищенноеСоединениеOpenSSL();
        
        АдресСервера = "suggestions.dadata.ru";
        HTTPСоединение = Новый HTTPСоединение(АдресСервера, 443,,,, 4,ssl1);
        URL = "/suggestions/api/4_1/rs/suggest/party";
        ЗаголовокGET = Новый Соответствие();
        ЗаголовокGET.Вставить("Content-Type", "application/json");
        ЗаголовокGET.Вставить("Accept", "application/json");
        ЗаголовокGET.Вставить("Authorization", "Token 33879879879e9c4bd3af41f76467a51102158b0ba");
        
        HTTPЗапрос = Новый HTTPЗапрос(URL, ЗаголовокGET);
        ТелоЗапроса = Новый Структура;
        ТелоЗапроса.Вставить("query", "7736050003 Газ");
        
        JSONСоответствие = СформироватьСтрокуJSON(ТелоЗапроса);
        HTTPЗапрос.УстановитьТелоИзСтроки(JSONСоответствие, КодировкаТекста.UTF8);
        HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
        ОтветDaData = HTTPОтвет.ПолучитьТелоКакСтроку();
    Исключение
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());            
    КонецПопытки;    
    
КонецПроцедуры

&НаСервере
Функция СформироватьСтрокуJSON(СтруктураЗапроса)
    
    СтрокаJSON = "{";
    
    Для каждого Элемент Из СтруктураЗапроса Цикл
        
        СтрокаJSON = СтрокаJSON + """" + Элемент.Ключ + """" + ":";
        
        Если ТипЗнч(Элемент.Значение) = Тип("Строка") Тогда
            СтрокаJSON = СтрокаJSON + """" + Элемент.Значение + """";
        ИначеЕсли ТипЗнч(Элемент.Значение) = Тип("Число") Тогда
            СтрокаJSON = СтрокаJSON + СтрЗаменить(Строка(Элемент.Значение), Символы.НПП, "");
        Иначе
            СтрокаJSON = СтрокаJSON + """" + КодироватьСтроку(Строка(Элемент.Значение), СпособКодированияСтроки.КодировкаURL) + """";
        КонецЕсли;
        
        СтрокаJSON = СтрокаJSON + ",";
        
    КонецЦикла;
    
    Если Прав(СтрокаJSON, 1) = "," Тогда
        СтрокаJSON = Лев(СтрокаJSON, СтрДлина(СтрокаJSON)-1);
    КонецЕсли;
    
    Возврат СтрокаJSON + "}";
    
КонецФункции
1 spiller26
 
27.09.17
15:45
(0)
Всё разобрался

&НаСервере
Процедура ЗапросDaDataНаСервере()

    Попытка
        АдресСервера = "suggestions.dadata.ru";
        URL = "/suggestions/api/4_1/rs/suggest/party";
        
        HTTPЗапрос = Новый HTTPЗапрос(URL);
        HTTPЗапрос.Заголовки.Вставить("Content-Type",  "application/json");
        HTTPЗапрос.Заголовки.Вставить("Accept",        "application/json");
        HTTPЗапрос.Заголовки.Вставить("Authorization", "Token 33879879879e9c4bd3af41f76467a51102158b0ba");
        
        JSONСоответствие = "{ ""query"": ""7736050003 Газ"" }";
        HTTPЗапрос.УстановитьТелоИзСтроки(JSONСоответствие, КодировкаТекста.UTF8);
        
        HTTPСоединение = Новый HTTPСоединение(АдресСервера, 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
        HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
        
        ОтветDaData = HTTPОтвет.ПолучитьТелоКакСтроку();
    Исключение
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());            
    КонецПопытки;    
    
КонецПроцедуры
2 spiller26
 
27.09.17
15:46
хватай пока горячее
3 spiller26
 
27.09.17
15:47
разобрался по этому методу
http://anton.fly7.ru/api-dadata-ru-1c/