&НаКлиенте Процедура ВключитьАвтоЗаписьКоординат(Команда) #Если МобильноеПриложениеКлиент Тогда Оп = Новый ОписаниеОповещения("ОбработкаОповещения", ЭтаФорма); СредстваГеопозиционирования.ПодключитьОбработчикИзмененияМестоположения(Оп,"gps",,5); Элементы.ВключитьАвтоЗаписьКоординат.Доступность = ложь; Элементы.ОтключитАвтозаписьКоординат.Доступность = Истина; #КонецЕсли КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Экспорт ЗаписатьПуть(Параметр); КонецПроцедуры &НаКлиенте Процедура ОтключитАвтозаписьКоординат(Команда) #Если МобильноеПриложениеКлиент Тогда Оп = Новый ОписаниеОповещения("ОбработкаОповещения", ЭтаФорма); СредстваГеопозиционирования.ОтключитьОбработчикИзмененияМестоположения(Оп ,"gps"); Элементы.ВключитьАвтоЗаписьКоординат.Доступность = истина; Элементы.ОтключитАвтозаписьКоординат.Доступность = Ложь; #КонецЕсли КонецПроцедуры &НаКлиенте Процедура ПоказатьОпции(Команда) #Если МобильноеПриложениеКлиент Тогда МассивСвойств = Новый Массив; МассивСвойств.Добавить("Имя"); МассивСвойств.Добавить("ИспользуетСетьПередачиДанных"); МассивСвойств.Добавить("ИспользуетСотовуюСеть"); МассивСвойств.Добавить("ИспользуетСпутники"); МассивСвойств.Добавить("Платный"); МассивСвойств.Добавить("ПоддерживаетВысоту"); МассивСвойств.Добавить("ПоддерживаетНаправление"); МассивСвойств.Добавить("ПоддерживаетСкорость"); МассивСвойств.Добавить("Точность"); МассивСвойств.Добавить("Энергопотребление"); Провайдеры = СредстваГеопозиционирования.ПолучитьПровайдеров(); Для каждого Провайдер Из Провайдеры Цикл Для каждого СвойствоПровайдера Из МассивСвойств Цикл Сообщить(СвойствоПровайдера + ": " + Провайдер[СвойствоПровайдера]) КонецЦикла; КонецЦикла; Сообщить("Самый точный:" + СредстваГеопозиционирования.ПолучитьСамогоТочногоПровайдера().Имя); Сообщить("Самый экономичный:" + СредстваГеопозиционирования.ПолучитьСамогоЭнергоЭкономичногоПровайдера().Имя); #КонецЕсли КонецПроцедуры &НаКлиенте Процедура ПоказатьТекущиеКоодинаты(Команда) #Если МобильноеПриложениеКлиент Тогда МассивСвойств = Новый Массив; МассивСвойств.Добавить("ВертикальнаяТочность"); МассивСвойств.Добавить("ГоризонтальнаяТочность"); МассивСвойств.Добавить("Дата"); МассивСвойств.Добавить("Координаты"); МассивСвойств.Добавить("Направление"); МассивСвойств.Добавить("Скорость"); Провайдеры = СредстваГеопозиционирования.ПолучитьПровайдеров(); Для каждого Провайдер Из Провайдеры Цикл Сообщить("Данные провайдера " + Провайдер.Имя); Данные = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(Провайдер.Имя); Для каждого СтрДан Из МассивСвойств Цикл Сообщить(СтрДан + ": " + Данные[СтрДан]) КонецЦикла; КонецЦикла; #КонецЕсли КонецПроцедуры &НаКлиенте Процедура ПоказатьНаКартеКоординаты(Команда) #Если МобильноеПриложениеКлиент Тогда Данные = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение("passive"); ПоказатьНаКарте(Данные.Координаты); ЗаписатьПуть(Данные); #КонецЕсли КонецПроцедуры &НаСервере Процедура ЗаписатьПуть(Данные) Рег = РегистрыСведений.ПройденныйПуть.СоздатьМенеджерЗаписи(); Рег.Период = Данные.Дата; Рег.Высота = Данные.Координаты.Высота; Рег.Долгота = Данные.Координаты.Долгота; Рег.Широта = Данные.Координаты.Широта; Попытка Рег.Записать(Ложь); Исключение Сообщить("Координаты не обновлены!") КонецПопытки; КонецПроцедуры &НаКлиенте Процедура ОбновитьМестоположение(Команда) #Если МобильноеПриложениеКлиент Тогда ДатаНачало = ТекущаяДата(); Если СредстваГеопозиционирования.ОбновитьМестоположение("gps",5) Тогда Сообщить("Время обновления = " + Строка(ТекущаяДата() - ДатаНачало)); Иначе Сообщить("Не удалось получить координаты") КонецЕсли; #КонецЕсли КонецПроцедуры &НаКлиенте Процедура ОбновитьМестоположениеИнет(Команда) #Если МобильноеПриложениеКлиент Тогда ДатаНачало = ТекущаяДата(); СредстваГеопозиционирования.ОбновитьМестоположение("network"); Сообщить("Время обновления = " + Строка(ТекущаяДата() - ДатаНачало)); #КонецЕсли КонецПроцедуры &НаКлиенте Процедура СформироватьФиктивныеКоординаты(Команда) #Если МобильноеПриложениеКлиент Тогда ПоказатьНаКарте(ПолучитьСписокКоординат()); #КонецЕсли КонецПроцедуры &НаСервере Функция ПолучитьСписокКоординат() Список = Новый СписокЗначений; ВыборкаРегистра = РегистрыСведений.ПройденныйПуть.Выбрать(); Пока ВыборкаРегистра.Следующий() Цикл Список.Добавить(Новый ГеографическиеКоординаты(ВыборкаРегистра.Широта, ВыборкаРегистра.Долгота,ВыборкаРегистра.Высота),ВыборкаРегистра.Период); КонецЦикла; Возврат Список; КонецФункции