Как изменить ширину и адаптировать начальную страницу веб-клиента 1С для мобильных устройств?

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

Разберем распространенную техническую проблему: при открытии веб-клиента 1С через мобильный браузер на смартфоне начальная страница отображается некорректно. Область просмотра растягивается в 5–6 раз шире реального экрана устройства, из-за чего шрифт и элементы интерфейса становятся микроскопическими, а читать текст без постоянного ручного приближения становится невозможно.

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

Причины некорректного масштабирования веб-клиента на смартфонах

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

  1. Виртуальный Viewport: Браузер смартфона определяет веб-клиент как полноразмерный десктопный сайт и принудительно устанавливает виртуальную ширину области просмотра (~980px), масштабируя весь интерфейс под физический экран телефона (360–430px).
  2. Жесткая ширина элементов: В управляемых формах 1С по умолчанию задана минимальная ширина для командных панелей, таблиц и групп. Из-за этого браузер не может автоматически сжать содержимое формы без потери структуры.
  3. Отсутствие адаптивной сетки: В классическом веб-клиенте нет встроенного механизма CSS Media Queries, который мог бы на лету перестраивать многоколоночный интерфейс в одну колонку.

Решение 1. Использование приложения «1С:Мобильный клиент»

Рассмотрим наиболее технологичное и официальное решение фирмы «1С». Начиная с версии платформы 8.3.12, для работы с мобильных устройств рекомендуется использовать не веб-клиент в браузере, а 1С:Мобильный клиент.

Мобильный клиент представляет собой полноценное приложение под Android и iOS, которое динамически подключается к информационной базе и автоматически трансформирует управляемый интерфейс:

  1. Автоматическая компоновка: Горизонтальные группы элементов автоматически перестраиваются в вертикальные колонки, удобные для чтения с узких экранов.
  2. Нативная поддержка жестов: Корректно работают тач-скролл, свайпы, вызов нативной клавиатуры, а также доступ к оборудованию смартфона (камера, сканер штрихкодов, геолокация).
  3. Адаптация таблиц: Длинные списки и таблицы сворачиваются в удобные мобильные карточки.

Решение 2. Адаптация элементов управляемой формы в Конфигураторе

Если требуется, чтобы начальная страница или формы конфигурации корректно сжимались под небольшие экраны, проанализируем настройки свойств элементов в Конфигураторе.

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

  1. Сброс фиксированной ширины: Для всех полей ввода, надписей и кнопок установите свойство Ширина в значение 0, а свойство АвтоМаксимальнаяШирина переведите в значение Истина. Это позволит элементам сжиматься до минимально допустимых размеров.
  2. Изменение группировки: Для родительских групп формы установите свойство Группировка в значение Горизонтальная если возможно или Вертикальная. В этом случае на узких экранах элементы будут выстраиваться друг под другом.
  3. Настройка важности отображения: Используйте свойство ВажностьПриОтображении (значения: Высокая, Обычная, Низкая). На узких экранах элементы с низкой важностью будут автоматически скрываться платформой, освобождая место.

Посмотрим на пример программной установки свойств элементов формы при ее открытии:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Обходим элементы формы и снимаем жесткие ограничения по ширине
    Для Каждого Элемент Из Элементы Цикл
        Если ТипЗнч(Элемент) = Тип("ПолеФормы") Или ТипЗнч(Элемент) = Тип("КнопкаФормы") Тогда
            Элемент.Ширина = 0;
            Элемент.АвтоМаксимальнаяШирина = Истина;
        ИлиЕсли ТипЗнч(Элемент) = Тип("ГруппаФормы") Тогда
            Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Решение 3. Изменение масштаба в интерфейсе «Такси»

Рассмотрим вариант быстрого решения проблемы на стороне пользователя без изменения конфигурации. В интерфейсе «Такси» встроен механизм пользовательского масштабирования.

Выполним следующие действия в мобильном браузере:

  1. Откроем главное меню веб-клиента 1С (значок в правом верхнем углу).
  2. Перейдем в раздел «Вид» -> «Изменить масштаб».
  3. Увеличим масштаб интерфейса до 150% – 200% в зависимости от диагонали экрана.
  4. Нажмем кнопку «Установить для всех». Настройка сохранится в системных настройках пользователя и будет применяться при каждом последующем входе через данный браузер.

Решение 4. Создание легкого веб-фронтенда через HTTP-сервисы или OData

В ситуациях, когда мобильным пользователям требуется лишь часть функций (например, просмотр остатков, согласование заявок или вводом заказов), оптимальным архитектурным решением является разделение бэкенда и фронтенда.

Проанализируем структуру этого подхода:

  1. Бэкенд (1С): В базе 1С разрабатываются HTTPСервисы или активируется встроенный REST-интерфейс OData. 1С отвечает только за бизнес-логику и хранение данных.
  2. Фронтенд (Web / PWA): Разрабатывается легкий адаптивный веб-сайт (Single Page Application или Progressive Web App) с использованием HTML5, CSS3 и JavaScript frameworks (Vue.js, React). Верстка полностью адаптируется под любые разрешающие способности экранов мобильных телефонов.

Рассмотрим пример простого HTTP-сервиса в 1С для передачи данных начальной страницы на внешне разработанный веб-интерфейс:


Функция ПолучитьДанныеНачальнойСтраницы(Запрос)
    
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
    
    СтруктураДанных = Новый Структура;
    СтруктураДанных.Вставить("Пользователь", Пользователи.ТекущийПользователь().Наименование);
    СтруктураДанных.Вставить("ДатаСервера", ТекущаяДата());
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, СтруктураДанных);
    
    Ответ.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
    Возврат Ответ;
    
КонецФункции

Решение 5. Корректировка публикаций на веб-сервере (Apache / IIS)

Системные администраторы могут принудительно задать параметры отображения веб-клиента на стороне веб-сервера. Для этого в шаблоны HTML-страниц публикации (находящиеся в каталоге публикации веб-клиента) внедряется метатег Viewport:


<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

Обратите внимание: данный метод требует ручной правки файлов публикации при каждом обновлении версии платформы 1С:Предприятие, так как файлы веб-клиента перезаписываются заново.

Итоги и рекомендации

Мы проанализировали основные варианты работы с 1С на мобильных устройствах. Для полноценной и комфортной работы пользователей со стандартными формами следует выбирать 1С:Мобильный клиент. Если же стоит задача дать клиентам или сотрудникам ограниченный функционал с мгновенным доступом из любого мобильного браузера, наиболее эффективным выбором станет разработка отдельного адаптивного PWA-интерфейса, интегрированного с 1С через HTTPСервисы.

← На главную