В мобильной платформе 1С определение местоположения работает через Google сервисы. Если Google сервисы на телефоне (планшете) недоступны, то определить геокоординаты средствами платформы не получится. В частности, такая проблема возникает на планшетах Huawei.
Предлагаем альтернативный способ определения геокоординат - с помощью внешней компоненты "GetLocation". Определение геокоординат происходит в фоновом режиме (чтобы не блокировать интерфейс), результат передаётся в 1С с помощью внешнего события:
ПодключитьВнешнююКомпоненту("ОбщийМакет.GetLocation","Z9846",ТипВнешнейКомпоненты.Native);
КомпонентаGetLocation = Новый("AddIn.Z9846.GetLocation");
КомпонентаGetLocation.GetLocation();
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник="GetLocation" Тогда
Если Событие="LocationChanged" Тогда
х = СтрНайти(Данные,"_");
Если х=0 Тогда
Возврат;
КонецЕсли;
А = Лев(Данные,х-1);
Б = Сред(Данные,х+1);
Широта = Число(А);
Долгота = Число(Б);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Общие требования
Компонента предназначена для мобильной 1С на Android (arm, arm64, x86, x86_64).
Содержание файла
1. Внешняя компонента
2. Исходный код (проект Android Studio)