Группа: Местный
Сообщений: 237
Спасибо сказали: 47 раз
Рейтинг: 42
Уважаемые коллеги, помогите разобраться. Нужно сделать стыковку УТП с Новой почтой, платформа 1С:Предприятие 8.3 (8.3.10.2505). Через xml получилось, но хочется через json, а с ним чего-то не взлетает.
В ответе приходит: {"success":false,"data":[],"errors":["Data is invalid"],"warnings":[],"info":[],"messageCodes":[],"errorCodes":[],"warningCodes":[],"infoCodes":[]}
Меня в Гугле еще не забанили - смотрите сами - форматировать неохота
Процедура ОбновитьОтделенияV2() Экспорт СтрокаJSON = Новый ЗаписьJSON; СтрокаJSON.УстановитьСтроку(); СтруктураЗнч = новый Структура; СтруктураЗнч.Вставить("apiKey","хххххххххххххххххххххххххххх"); СтруктураЗнч.Вставить("modelName","Address"); СтруктураЗнч.Вставить("calledMethod","getWarehouses"); Соот = Новый Соответствие; Соот.Вставить("",""); СтруктураЗнч.Вставить("methodProperties",Соот); Настройка = Новый НастройкиСериализацииJSON; ЗаписатьJSON(СтрокаJSON, СтруктураЗнч,); исхстрокаJSON = СтрокаJSON.Закрыть(); структураОтвета = ЗапросКСерверуНовойПочты(исхстрокаJSON); Если НЕ структураОтвета=Неопределено тогда ВремТабл = Новый ТаблицаЗначений; ТСтруктура = структураОтвета.data[0]; Для Каждого знч из ТСтруктура Цикл Если ТипЗнч(знч.Значение) = Тип("Структура") тогда продолжить; КонецЕсли; ВремТабл.Колонки.Добавить(СокрЛП(знч.Ключ), Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(250))); КонецЦикла; Для каждого стрЗнч из структураОтвета.data Цикл нСтрока= ВремТабл.Добавить(); ЗаполнитьЗначенияСвойств(нСтрока,стрЗнч); КонецЦикла; КонецЕсли; КонецПроцедуры // Функция - Запрос к серверу новой почты // // Параметры: // вхЗначение - только строка от JSON // // Возвращаемое значение: // - // Функция ЗапросКСерверуНовойПочты(Знач вхЗначение) Защищенное = Новый ЗащищенноеСоединениеOpenSSL; СоединениеHTTP = Новый HTTPСоединение("<a href="http://api.novaposhta.ua" target="_blank">api.novaposhta.ua</a>",,,,,,Защищенное); ЗапросHTTP = Новый HTTPЗапрос("/v2.0/json/"); ЗапросHTTP.УстановитьТелоИзСтроки(вхЗначение,КодировкаТекста.UTF8); ЗапросHTTP.Заголовки.Вставить("Host","<a href="http://api.novaposhta.ua" target="_blank">api.novaposhta.ua</a>"); ЗапросHTTP.Заголовки.Вставить("Content-Type","application/json"); Результат = СоединениеHTTP.ВызватьHTTPМетод("POST",ЗапросHTTP); исхJSON = Новый ЧтениеJSON; РезультатJSON = Результат.ПолучитьТелоКакСтроку(); исхJSON.УстановитьСтроку(РезультатJSON); исхСтруктура = ПрочитатьJSON(исхJSON); исхJSON.Закрыть(); Если НЕ ТипЗнч(исхСтруктура)=Тип("Структура") тогда ЗаписатьВЖурналРегистрации("Обновление отделений не понятный возврат, запрос:"+вхЗначение+"; результат:"+РезультатJSON,УровеньЖурналаРегистрации.Ошибка); Возврат Неопределено; ИначеЕсли ТипЗнч(исхСтруктура)=Тип("Структура") и не исхСтруктура.success тогда ЗаписатьВЖурналРегистрации("Обновление отделений не правильный возврат, запрос:"+вхЗначение+"; результат:"+РезультатJSON,УровеньЖурналаРегистрации.Ошибка); Возврат Неопределено; КонецЕсли; Возврат исхСтруктура; КонецФункции
Группа: Местный
Сообщений: 237
Спасибо сказали: 47 раз
Рейтинг: 42
Я это видел. так тоже ошибка {"success":false,"data":[],"errors":["Data is invalid"],"warnings":[],"info":[],"messageCodes":[],"errorCodes":[],"warningCodes":[],"infoCodes":[]}
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
alex1c @ Сегодня, 10:10
, Ориентируюсь на стыковку которую писал сам через json. У меня работало. Во-первых адрес сервиса неправильно указываете, во-вторых тип соединения:
АдресСервиса = "api.novaposhta.ua"; СоединениеHTTP = Новый HTTPСоединение(АдресСервиса, , , , , , Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено));
В третьих, запрос выглядит таким образом:
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, Символы.Таб);
ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.ПроверятьСтруктуру = Ложь; ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
Ответ = СоединениеHTTP.ОтправитьДляОбработки(ЗапросHTTP);
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!