Skip to content

Instantly share code, notes, and snippets.

@agershun
Created September 11, 2018 15:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save agershun/f1a233f313a2a844f8093b946f45306b to your computer and use it in GitHub Desktop.
Save agershun/f1a233f313a2a844f8093b946f45306b to your computer and use it in GitHub Desktop.
Пример программы на языке 1С, использующую Naviaddress API
&НаСервере
Процедура ПолучитьДанныеНавиадресаНаСервере()
Сервер = "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