Created
September 11, 2018 15:58
-
-
Save agershun/f1a233f313a2a844f8093b946f45306b to your computer and use it in GitHub Desktop.
Пример программы на языке 1С, использующую Naviaddress API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
&НаСервере | |
Процедура ПолучитьДанныеНавиадресаНаСервере() | |
Сервер = "staging-api.naviaddress.com"; | |
Версия = "1.5"; | |
Контейнер = "7"; | |
Навиадрес = Объект.Навиадрес; | |
АдресРесурса = СтрШаблон("/api/v%1/Addresses/%2/%3", Версия, Контейнер, Навиадрес); | |
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL; | |
Заголовки = Новый Соответствие; | |
Заголовки.Вставить("Accept", "application/json"); | |
Заголовки.Вставить("Content-Type", "application/json"); | |
HTTPСоединение = Новый HTTPСоединение(Сервер,,,,,, ЗащищенноеСоединение); | |
HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки); | |
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос); | |
ТекстОтвета = HTTPОтвет.ПолучитьТелоКакСтроку(); | |
Если Не HTTPОтвет.КодСостояния = 200 Тогда | |
Объект.ДанныеНавиадреса = "Данные не найдены"; | |
Возврат; | |
КонецЕсли; | |
ЧтениеJSON = Новый ЧтениеJSON; | |
ЧтениеJSON.УстановитьСтроку(ТекстОтвета); | |
Ответ = ПрочитатьJSON(ЧтениеJSON); | |
Если Не ТипЗнч(Ответ) = Тип("Структура") Или Не Ответ.Свойство("result") Тогда | |
Объект.ДанныеНавиадреса = "Данные не найдены"; | |
Возврат; | |
КонецЕсли; | |
ДанныеНавиадреса = "Name: " +Ответ.result.name; | |
Если Ответ.result.Свойство("description") Тогда | |
ДанныеНавиадреса = ДанныеНавиадреса + Символы.ПС + "Description: " + Ответ.result.description; | |
КонецЕсли; | |
Если Ответ.result.Свойство("postal_address") Тогда | |
ДанныеНавиадреса = ДанныеНавиадреса + Символы.ПС + "Postal address: " + Ответ.result.postal_address; | |
КонецЕсли; | |
Если Ответ.result.Свойство("point") Тогда | |
ДанныеНавиадреса = ДанныеНавиадреса + Символы.ПС + "Point: " + Ответ.result.point.lat +"; "+Ответ.result.point.lng; | |
КонецЕсли; | |
Если Ответ.result.Свойство("last_mile") Тогда | |
ДанныеНавиадреса = ДанныеНавиадреса + Символы.ПС + "Last mile: "; | |
Если Ответ.result.last_mile.type = "text" Тогда | |
ДанныеНавиадреса = ДанныеНавиадреса + Ответ.result.last_mile.text; | |
Иначе | |
НомерШага = 0; | |
Для каждого Шаг Из Ответ.result.last_mile.steps Цикл | |
НомерШага = НомерШага + 1; | |
ДанныеНавиадреса = ДанныеНавиадреса + Символы.ПС + " " + НомерШага + ") " + Шаг.Text | |
КонецЦикла; | |
КонецЕсли; | |
КонецЕсли; | |
Объект.ДанныеНавиадреса = ДанныеНавиадреса; | |
КонецПроцедуры |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment