Почему в мобильном приложении 1С не работает функция «Набор номера» и как это исправить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе разработки мобильных решений на платформе 1С:Предприятие разработчики часто сталкиваются с тем, что стандартные функции телефонии отказываются работать, несмотря на корректный программный код. Если при попытке совершить звонок вы получаете предупреждение о том, что функциональность «Набор номера» отключена, давайте разберем, как диагностировать и устранить эту проблему.

Шаг 1: Проверка настроек функциональности в Конфигураторе

Первым делом необходимо проверить настройки самой конфигурации. Одной из самых частых причин блокировки вызовов является отсутствие активации соответствующей «галочки» в свойствах мобильного приложения. Это фундаментальный параметр, без которого платформа 1С даже не пытается запрашивать системные разрешения у операционной системы.

  1. Откройте вашу конфигурацию в режиме Конфигуратор.
  2. Перейдите в свойства конфигурации (правой кнопкой мыши по корню дерева конфигурации — «Открыть свойства»).
  3. В разделе, отвечающем за параметры мобильного приложения, найдите пункт «Функциональность».
  4. Убедитесь, что в списке доступных возможностей отмечен флаг «Набор номера».
  5. Если конфигурация находится на «поддержке», этот пункт может быть недоступен для редактирования. В таком случае вам потребуется частичное снятие с поддержки или внесение изменений через расширение, если это позволяет архитектура вашего приложения.

Шаг 2: Проверка кода и работы метода проверки

Разберем, как правильно организовать проверку доступности метода в коде, чтобы приложение корректно реагировало на настройки платформы. Использование функции ПоддерживаетсяФункциональностьМобильногоПриложения позволяет избежать аварийного завершения работы или вывода некорректных сообщений.

Рассмотрим пример правильной организации вызова:


Если ПоддерживаетсяФункциональностьМобильногоПриложения(ФункциональностьМобильногоПриложения.НаборНомера) Тогда
    СредстваТелефонии.НабратьНомер(Номер, Ложь);
Иначе
    // Альтернативный метод, если системная функция недоступна
    ЗапуститьПриложение("tel:" + Номер);
КонецЕсли;

Если условие ПоддерживаетсяФункциональностьМобильногоПриложения возвращает «Ложь», это означает, что проблема кроется глубже кода — либо на уровне настроек сборки, либо на уровне манифеста приложения.

Шаг 3: Манифест приложения и системные разрешения

Даже если в Конфигураторе включена нужная галочка, при сборке мобильного приложения (особенно если вы используете сборку через сервис 1С или локальный сборщик) необходимо удостовериться, что в файле AndroidManifest.xml корректно прописаны разрешения CALL_PHONE.

Разберем основные моменты, на которые стоит обратить внимание при сборке:

Шаг 4: Анализ использования шаблонов

Если вы разрабатываете самописную конфигурацию, проанализируйте, на каком шаблоне происходит сборка. Попробуйте сменить шаблон на более свежий или протестируйте работоспособность на «пустой» конфигурации. Если на пустой базе функция работает, значит, в вашей основной конфигурации существуют программные блокировки, расширения или внешние компоненты, которые ограничивают доступ к системным ресурсам ради безопасности.

В завершение, если автоматизированный набор через СредстваТелефонии все равно вызывает ошибки, использование метода ЗапуститьПриложение("tel:" + Номер) является универсальным «обходным» путем. Он вызывает стандартный интент Android для открытия «звонилки» с уже подставленным номером, что обычно требует меньше прав доступа, чем прямой вызов метода НабратьНомер.

← На главную