При разработке решений для мобильных устройств на платформе «1С:Предприятие 8.3» часто возникает вопрос: почему официальное приложение «1С:Управление торговлей» выглядит как нативное мобильное решение, а самодельный мобильный клиент напоминает обычный удаленный рабочий стол (RDP) с мелким текстом и неудобными кнопками? Разберем пошагово, как добиться правильного отображения интерфейса и реализовать удобную работу пользователей в мобильном клиенте.
Прежде всего, проанализируем разницу в технологиях, чтобы выбрать правильный путь разработки. Это критически важно для архитектуры будущего решения:
Если ваша задача — работа с актуальными остатками без задержек и сложных обменов, мы будем использовать Мобильный клиент.
Чтобы платформа понимала, что конфигурация должна адаптироваться под маленькие экраны, необходимо изменить глобальные свойства. Выясним, как это сделать в конфигураторе:
Приложение для ПК и Мобильный клиент.После включения этой опции в редакторе управляемых форм появится возможность переключать вид предварительного просмотра (иконка «телефончика»), что позволит нам сразу видеть, как элементы располагаются на экране смартфона.
Платформа 1С обладает встроенными механизмами адаптации. Если форма не перерисована специально, система попытается сама сгруппировать элементы. Однако для качественного результата нам потребуется ручная доработка. Проанализируем основные правила компоновки мобильного интерфейса:
Группировка элементов: На мобильных экранах горизонтальное размещение элементов (колонки) практически не применимо. Рассмотрим использование групп:
Группа - Страницы для разделения больших форм на логические блоки, между которыми пользователь будет переключаться свайпами.Вариант управления в значение Адаптивный или Компактный.Динамические списки: Обычная таблица на смартфоне неудобна. Чтобы превратить список в удобные «карточки», в свойствах таблицы (списка) на форме нужно настроить отображение. Если оставить Авто, платформа может выдать стандартную таблицу. Для мобильного клиента лучше принудительно указать состав полей, которые будут видны в режиме предварительного просмотра списка.
Часто возникает ситуация, когда для десктопа нам нужна одна форма (полная), а для мобильного клиента — совершенно другая (упрощенная). Вместо того чтобы перегружать одну форму условиями видимости, мы можем подменять её целиком при запуске. Рассмотрим, как это реализовать в модуле менеджера объекта или через подписки на события.
Разберем пример кода для перехвата формы в модуле менеджера документа (например, ЗаказКлиента):
Процедура ОбработкаПолученияФорм(ВидФормы, Параметры, ВыбраннаяФорма, СтандартнаяОбработка)
#Если МобильныйКлиент Тогда
Если ВидФормы = "ФормаОбъекта" Тогда
ВыбраннаяФорма = "МобильнаяФормаОбъекта";
СтандартнаяОбработка = Ложь;
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Использование инструкции препроцессора #Если МобильныйКлиент позволяет платформе мгновенно определить тип устройства и подсунуть пользователю специально нарисованную форму МобильнаяФормаОбъекта, в которой оставлены только нужные поля (например, сканирование штрихкода и кнопка «Провести»).
Секрет «правильного» вида официальной УТ 11 заключается в глубокой интеграции с БСП. В современных версиях УТ (11.5.6 и выше) многие формы уже имеют встроенную логику адаптации. При создании формы на сервере система проверяет параметры сеанса:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
// Программное изменение интерфейса
Элементы.ГруппаЛеваяКолонка.Видимость = Ложь;
Элементы.КоманднаяПанель.Отображение = ОтображениеКоманднойПанели.КнопкиВДополнительномМеню;
КонецЕсли;
КонецПроцедуры
Важный момент: если вы используете старые версии платформы (ниже 8.3.15), автоматическая адаптация работает слабо. Для корректного «нативного» вида рекомендуется использовать платформу версии 8.3.20 и выше.
Если вы создали формы, настроили конфигурацию, но в приложении всё равно видите «десктопный» вариант, проблема может заключаться в настройках публикации на веб-сервере. Проанализируем файл default.vrd, который создается при публикации базы через Apache или IIS.
В параметрах публикации должны быть разрешены соответствующие типы клиентов. В строке подключения мобильного приложения к серверу не должно быть принудительного указания режима /T (тонкий клиент), так как мобильный клиент должен определяться платформой автоматически по User-Agent устройства.
Для ускорения разработки не обязательно постоянно публиковать базу и скачивать изменения на телефон. В платформе 1С предусмотрен режим эмуляции. В конфигураторе выберите меню Сервис — Параметры — Запуск 1С:Предприятия — Дополнительные. Там можно выбрать тип клиента Мобильный клиент и указать разрешение экрана, соответствующее вашему целевому устройству. Это позволит увидеть все огрехи верстки, не отходя от рабочего места.
Подводя итог, создание качественного мобильного клиента для УТ 11 — это сочетание правильных системных настроек конфигурации, проектирования отдельных «легких» форм для мобильных сотрудников и использования программных механизмов подмены форм в зависимости от типа платформы.