В процессе разработки мобильных решений на платформе 1С:Предприятие разработчики часто сталкиваются с тем, что стандартные функции телефонии отказываются работать, несмотря на корректный программный код. Если при попытке совершить звонок вы получаете предупреждение о том, что функциональность «Набор номера» отключена, давайте разберем, как диагностировать и устранить эту проблему.
Первым делом необходимо проверить настройки самой конфигурации. Одной из самых частых причин блокировки вызовов является отсутствие активации соответствующей «галочки» в свойствах мобильного приложения. Это фундаментальный параметр, без которого платформа 1С даже не пытается запрашивать системные разрешения у операционной системы.
Разберем, как правильно организовать проверку доступности метода в коде, чтобы приложение корректно реагировало на настройки платформы. Использование функции ПоддерживаетсяФункциональностьМобильногоПриложения позволяет избежать аварийного завершения работы или вывода некорректных сообщений.
Рассмотрим пример правильной организации вызова:
Если ПоддерживаетсяФункциональностьМобильногоПриложения(ФункциональностьМобильногоПриложения.НаборНомера) Тогда
СредстваТелефонии.НабратьНомер(Номер, Ложь);
Иначе
// Альтернативный метод, если системная функция недоступна
ЗапуститьПриложение("tel:" + Номер);
КонецЕсли;
Если условие ПоддерживаетсяФункциональностьМобильногоПриложения возвращает «Ложь», это означает, что проблема кроется глубже кода — либо на уровне настроек сборки, либо на уровне манифеста приложения.
Даже если в Конфигураторе включена нужная галочка, при сборке мобильного приложения (особенно если вы используете сборку через сервис 1С или локальный сборщик) необходимо удостовериться, что в файле AndroidManifest.xml корректно прописаны разрешения CALL_PHONE.
Разберем основные моменты, на которые стоит обратить внимание при сборке:
targetSdkVersion). Устаревшие платформы могут некорректно транслировать системные вызовы телефонии.Если вы разрабатываете самописную конфигурацию, проанализируйте, на каком шаблоне происходит сборка. Попробуйте сменить шаблон на более свежий или протестируйте работоспособность на «пустой» конфигурации. Если на пустой базе функция работает, значит, в вашей основной конфигурации существуют программные блокировки, расширения или внешние компоненты, которые ограничивают доступ к системным ресурсам ради безопасности.
В завершение, если автоматизированный набор через СредстваТелефонии все равно вызывает ошибки, использование метода ЗапуститьПриложение("tel:" + Номер) является универсальным «обходным» путем. Он вызывает стандартный интент Android для открытия «звонилки» с уже подставленным номером, что обычно требует меньше прав доступа, чем прямой вызов метода НабратьНомер.