Как программно вызвать окно «О программе» и информацию для техподдержки в мобильном приложении 1С

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

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

Использование системного идентификатора sysForm:About

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

Рассмотрим пример кода, который позволяет открыть это окно и при необходимости переопределить некоторые данные, отображаемые в нем. Это особенно полезно, если вы хотите подчеркнуть принадлежность приложения к вашей корпоративной среде.


ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Platform", "Моя мобильная платформа");
ПараметрыФормы.Вставить("Copyright", "© 2024 Ваша Компания");
ПараметрыФормы.Вставить("Application", "Мобильный склад v2.0");

// Важно соблюдать регистр символов в имени формы
ИмяФормыИнформации = "sysForm:About";

ОткрытьФорму(ИмяФормыИнформации, ПараметрыФормы, ЭтотОбъект, Истина, , , , РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);

Проанализируем этот подход. Передавая структуру ПараметрыФормы, мы можем динамически менять текстовые поля в окне. Если же оставить структуру пустой или не передавать ее вовсе, платформа автоматически подставит данные из свойств конфигурации (имя, авторские права и версию), которые указаны в корне дерева метаданных.

Вызов окна «Информация для техподдержки»

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

Разберем, как программно предоставить пользователю доступ к этой информации:


// Прямой вызов формы информации для технической поддержки
Попытка
    ОткрытьФорму("sysForm:SupportInfo");
Исключение
    Сообщить("Не удалось открыть форму технической информации");
КонецПопытки;

Это окно содержит расширенный набор данных, включая разрешение экрана, объем свободной памяти и выжимку из последних событий. Использование блока Попытка...Исключение здесь крайне желательно, так как работа с недокументированными именами форм (sysForm) потенциально может измениться в будущих мажорных релизах платформы.

Расширенные параметры настройки формы «О программе»

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

  1. Version — позволяет явно указать версию сборки, если она отличается от версии конфигурации.
  2. Vendor — информация о поставщике или разработчике решения.
  3. Description — краткое описание назначения приложения.

Если ваша задача — полностью изменить дизайн этого окна, мы рекомендуем использовать объект Система.Информация. Рассмотрим, как программно собрать данные для собственной формы «О программе»:


Инфо = Система.Информация;
ТекстИнфо = "Платформа: " + Инфо.ВерсияПриложения + Символы.ПС;
ТекстИнфо = ТекстИнфо + "ОС: " + Инфо.ТипПлатформы + " " + Инфо.ВерсияОС + Символы.ПС;
ТекстИнфо = ТекстИнфо + "Устройство: " + Инфо.ИдентификаторКлиента;
// Далее эти данные можно вывести в обычное текстовое поле на вашей форме

Реализация скрытого «режима разработчика»

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

Реализуем алгоритм, при котором форма техподдержки открывается только после серии быстрых нажатий на логотип компании или определенную надпись:


&НаКлиенте
Перем СчетчикНажатий;
Перем ВремяПоследнегоНажатия;

&НаКлиенте
Процедура ЛоготипНажатие(Элемент)
    ТекущееВремя = ТекущаяУниверсальнаяДатаВМиллисекундах();
    
    // Если прошло более 2 секунд с последнего клика, сбрасываем счетчик
    Если ВремяПоследнегоНажатия = Неопределено Или (ТекущееВремя - ВремяПоследнегоНажатия > 2000) Тогда
        СчетчикНажатий = 1;
    Иначе
        СчетчикНажатий = СчетчикНажатий + 1;
    КонецЕсли;
    
    ВремяПоследнегоНажатия = ТекущееВремя;
    
    // Если пользователь нажал 5 раз подряд
    Если СчетчикНажатий >= 5 Тогда
        СчетчикНажатий = 0; // Сброс
        ОткрытьФорму("sysForm:SupportInfo");
    КонецЕсли;
КонецПроцедуры

Этот метод позволяет не перегружать интерфейс лишними кнопками и при этом сохраняет возможность оперативной диагностики приложения на месте.

Другие полезные системные формы

Для разработчика, работающего в условиях ограниченного стандартного интерфейса, могут быть полезны и другие системные идентификаторы:

Использование вышеуказанных методов позволяет создавать гибкие и профессиональные интерфейсы в мобильной 1С, сохраняя при этом доступ ко всем мощным инструментам диагностики, которые предоставляет платформа «из коробки».

← На главную