Разработка интерфейсов для мобильного клиента 1С:Предприятие существенно отличается от создания форм для настольного приложения. Часто возникают ситуации, когда в конфигураторе на этапе предварительного просмотра (Preview) всё выглядит корректно, однако при запуске на реальном смартфоне или планшете важные элементы интерфейса, такие как ТаблицаЗначений, просто исчезают. Давайте подробно разберем, почему это происходит и какие шаги необходимо предпринять, чтобы гарантировать отображение данных.
Первым делом проанализируем поведение мобильного клиента. В отличие от десктопной версии, мобильное приложение работает в условиях жесткого дефицита экранного пространства. Платформа 1С применяет интеллектуальные алгоритмы оптимизации: если элемент управления признается «неинформативным», он может быть полностью исключен из отрисовки, чтобы не занимать место.
Основная причина, по которой ТаблицаЗначений не отображается на мобильном устройстве, заключается в том, что она пуста. Если в таблице нет ни одной строки и у неё не настроена командная панель (или на панели нет доступных пользователю кнопок), мобильный клиент считает такой элемент бесполезным и скрывает его. Это вводит разработчиков в заблуждение, так как в конфигураторе мы видим заголовки колонок, а на устройстве — пустое место.
Чтобы заставить платформу зарезервировать место под таблицу, даже если в ней еще нет данных, нам необходимо сделать элемент «активным» с точки зрения взаимодействия. Рассмотрим, как это сделать через свойства формы:
ПоложениеКоманднойПанели. По умолчанию там часто стоит значение Авто. В мобильном клиенте это может привести к скрытию панели, если нет доступных команд.Верху или Внизу.РазрешитьДобавление).Как только на форме появится кнопка «Добавить», платформа поймет, что пользователь может взаимодействовать с этим объектом, и отрисует область таблицы даже без существующих записей.
Иногда нам нужно, чтобы таблица отображалась строго при определенных условиях. Проанализируем ситуацию, когда данные загружаются программно. Если вы заполняете таблицу в коде, но она все равно не появляется, попробуйте принудительно обновить интерфейс. Разберем пример кода, который гарантирует обновление отображения:
// Пример заполнения таблицы значений на сервере
&НаСервере
Процедура ЗаполнитьТаблицуНаСервере()
НоваяСтрока = Объект.ТЧ_Данные.Добавить();
НоваяСтрока.Наименование = "Тестовая запись";
НоваяСтрока.Количество = 1;
КонецПроцедуры
&НаКлиенте
Процедура КомандаЗаполнить(Команда)
ЗаполнитьТаблицуНаСервере();
// Принудительно обновляем форму для мобильного клиента
ЭтаФорма.ОбновитьОтображениеДанных();
КонецПроцедуры
Использование метода ОбновитьОтображениеДанных() критически важно именно для мобильных платформ, где отрисовка может кэшироваться ради экономии заряда батареи и ресурсов процессора.
Посмотрим на структуру группы, в которой находится таблица. Если ТаблицаЗначений помещена внутрь группы с типом Страницы или в группу с вертикальной прокруткой, её высота может быть рассчитана как нулевая. Выясним, как правильно настроить свойства растягивания:
Важные параметры для проверки:
Да. Если таблица находится внутри других групп, проверьте это свойство у всех родительских элементов.Мелкий или Умеренный, чтобы колонки не «схлопывались» полностью.Мобильный клиент умеет трансформировать обычную таблицу в список (где колонки располагаются друг под другом для удобства чтения на узком экране). Если вы скрыли почти все колонки, оставив только одну (как пытался сделать автор темы), но при этом у колонки стоит низкая Важность при отображении, платформа может счесть её незначимой.
Проанализируем настройки колонок:
ВажностьПриОтображении.Высокая для ключевых полей. Это гарантирует, что даже на самом маленьком экране 1С попытается показать именно эти данные.Иногда технически таблица отрисована, но из-за большого количества колонок она «уходит» за пределы видимости или сжимается до невидимого состояния. Попробуем повернуть мобильное устройство на 90 градусов (ландшафтный режим). Если в горизонтальном положении таблица появилась, значит, проблема в компоновке элементов. В этом случае стоит пересмотреть использование свойства Отображение (переключить с Авто на Список), чтобы данные адаптировались под вертикальную ориентацию смартфона.
Резюмируем: если ваша таблица значений в мобильном клиенте внезапно исчезла, в 99% случаев это связано с отсутствием данных в ней или отсутствием элементов управления (кнопок). Добавьте хотя бы одну тестовую строку или включите видимость командной панели, и элемент управления вернется на свое место.