Как отобразить все строки таблицы значений в мобильном клиенте 1С, если часть из них обрезается до 200?

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

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

Анализируем проблему: почему мобильный клиент обрезает строки?

Первоначально проблема проявляется в следующем: у нас есть обработка в конфигурации, например, на базе 1С:Управление торговлей 10, адаптированная для работы в мобильном клиенте. В этой обработке имеется таблица значений (ТЗ), в которую загружается значительное количество строк, скажем, более 2000. При открытии формы в мобильном клиенте и попытке прокрутки вниз, мы обнаруживаем, что отображается только первые 200 строк. При этом отладчик показывает, что ТЗ действительно содержит все 2000+ строк, и поиск по несуществующей на экране, но присутствующей в ТЗ строке, успешно находит ее.

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

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

Ключевое решение: свойство ВариантУправленияВысотой

Основным и наиболее эффективным способом решения проблемы с обрезкой строк в мобильном клиенте является правильная настройка свойства табличного поля формы ВариантУправленияВысотой. Это свойство появилось в платформе 1С:Предприятие 8.3.10 и предназначено специально для управления высотой таблицы в управляемых формах, особенно актуально для мобильной платформы.

Рассмотрим по шагам, как применить это решение:

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

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

  3. Найдите свойство ВариантУправленияВысотой. В палитре свойств выбранного табличного поля найдите свойство с именем ВариантУправленияВысотой.

  4. Установите значение ВСтрокахТаблицы. По умолчанию это свойство может быть установлено в Авто или ФиксированнаяВысота. Для корректного отображения всех строк в мобильном клиенте необходимо установить его в значение ВСтрокахТаблицы.

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

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

Дополнительные аспекты и шаги по устранению неполадок

Хотя свойство ВариантУправленияВысотой является ключевым, иногда могут потребоваться дополнительные действия или понимание других аспектов поведения мобильного клиента:

Режим совместимости платформы

В обсуждаемой ситуации конфигурация работала в режиме совместимости с версией 8.3.7, а мобильный клиент использовал версию 8.3.18. Такое несоответствие может быть источником проблем, так как функционал и поведение элементов в разных версиях платформы могут значительно отличаться. Свойство ВариантУправленияВысотой появилось в 8.3.10. Если ваша конфигурация использует режим совместимости ниже этой версии, это свойство может не работать или работать некорректно. Мы рекомендуем по возможности повысить режим совместимости до версии платформы, поддерживающей этот функционал (8.3.10 или выше). Однако, всегда тщательно тестируйте изменения режима совместимости, так как это может повлиять на другую логику в конфигурации.

Свойства РастягиватьПоВертикали и АвтоВысота

В процессе диагностики могли быть предприняты попытки управления отображением через свойства РастягиватьПоВертикали или АвтоВысота. Эти свойства также влияют на размер элементов, но в контексте мобильного клиента и больших таблиц ВариантУправленияВысотой имеет приоритетное значение. Если ВариантУправленияВысотой установлен корректно, эти свойства обычно не будут причиной обрезки строк, хотя их некорректная настройка может вызывать другие проблемы с компоновкой формы (например, таблица может "уходить" за пределы видимости вниз, не позволяя видеть другие элементы).

Влияние других элементов формы

Бывали случаи, когда наличие или отсутствие других элементов под таблицей влияло на расчет ее высоты. Например, добавление декорации или кнопки под таблицей, которую затем не видно, может указывать на то, что форма некорректно определяет общую высоту макета. Однако, чаще всего это следствие основной проблемы с определением высоты таблицы, а не ее причина.

Отображение больших таблиц в мобильном клиенте: рекомендации

Даже с правильной настройкой ВариантУправленияВысотой, отображение таблиц с очень большим количеством строк (тысячи и более) может вызывать сложности с производительностью или удобством использования на мобильных устройствах. Мы рекомендуем рассмотреть следующие подходы для оптимизации:

  1. "ВажностьПриОтображении" колонок: Используйте свойство ВажностьПриОтображении для колонок табличного поля. Это свойство позволяет платформе адаптировать отображение колонок к ширине экрана. Колонки с более низкой важностью могут быть скрыты или сжаты, чтобы освободить место для более важных данных.

  2. "ПоведениеПриСжатииПоГоризонтали": Это свойство дополняет ВажностьПриОтображении, определяя, как колонки сжимаются или скрываются. Мы можем установить его в НеСжимать, Сжимать или Скрывать в зависимости от приоритета.

  3. Разбиение на страницы или использование карточек: Для очень больших объемов данных или таблиц с множеством колонок, которые не помещаются на экране, рассмотрите альтернативные способы представления:

    • Отображение в виде списка карточек: Каждая строка таблицы представляется отдельной "карточкой" на экране, что удобнее для просмотра на мобильных устройствах.
    • Блоки с раскрывающимся контентом: Изначально показываются только ключевые поля строки, а подробности раскрываются по клику.
    • Пагинация: Загрузка данных не сразу всех, а порциями (например, по 50-100 строк) по мере прокрутки. Это может значительно улучшить производительность. За это отвечает свойство таблицы ЗапросОбновления и обработчик события ОбработкаЗапросаОбновления, позволяющие реализовать "pull to refresh" или подгрузку при достижении конца списка.
  4. Ограничение количества строк: Хотя в мобильном клиенте нет жестких программных ограничений на количество строк, из-за производительности или логики бизнеса иногда целесообразно ограничивать количество выводимых строк на стороне сервера или запроса, предоставляя пользователю возможности для фильтрации или поиска.

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

Если мы сталкиваемся с проблемой обрезки строк таблицы значений в мобильном клиенте 1С, первым делом следует:

  1. Убедиться, что версия мобильного клиента достаточно актуальна (8.3.10 и выше).
  2. Установить свойство табличного поля ВариантУправленияВысотой в значение ВСтрокахТаблицы.
  3. При необходимости, рассмотреть повышение режима совместимости конфигурации, если он ниже 8.3.10.
  4. Если проблема сохраняется или наблюдаются другие аномалии с компоновкой, внимательно проверить другие свойства, такие как РастягиватьПоВертикали, АвтоВысота, а также ВажностьПриОтображении для колонок.

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

← На главную