При разработке нестандартных рабочих мест на управляемых формах (например, интерактивных досок задач или канбан-панелей) разработчики часто сталкиваются с задачей горизонтального размещения нескольких динамических списков или таблиц. По умолчанию механизм автоматической компоновки управляемого интерфейса (flow layout) пытается пропорционально ужать все элементы, чтобы они целиком уместились в видимую область окна. В результате списки становятся чересчур узкими, данные в колонках обрезаются, а горизонтальная полоса прокрутки так и не появляется.
Разберем причины такого поведения платформы 1С:Предприятие 8.3 и выясним, как правильно настроить свойства формы и элементов для появления горизонтального скролла, а также рассмотрим архитектурные альтернативы.
Проанализируем специфику работы компоновщика управляемых форм:
ОбычнаяГруппа не имеет собственной встроенной полосы прокрутки. Скролл может формироваться только на уровне самого окна формы, внутри таблицы (динамического списка) или внутри поля HTML-документа.Чтобы заставить управляемую форму прокручиваться по горизонтали и не сжимать списки, выполним комплексную настройку свойств:
Ширина фиксированное крупное значение (например, 150 или 200 в зависимости от суммарной ширины размещаемых объектов). Именно увеличение ширины самой формы сигнализирует клиенту о необходимости включения горизонтальной прокрутки окна при нехватке физического разрешения монитора.РастягиватьПоГоризонтали в значение Ложь.АвтоМаксимальнаяШирина, а также укажем конкретные значения в свойствах Ширина и МаксимальнаяШирина.РастягиватьПоГоризонтали и зададим четкую ширину.ОбычнаяГруппа с группировкой Горизонтальная и убедимся, что у группы отключено растягивание по горизонтали.Размещение большого числа независимых динамических списков (от 5 до 10 и более) на одной форме создает существенную нагрузку на базу данных и интерфейс, так как платформа инициирует отдельный серверный запрос для каждого списка. Рассмотрим более производительные и удобные варианты реализации подобных интерфейсов:
ПолеHTMLДокумента, в который передается верстка с использованием CSS-стилей (например, Flexbox с параметром overflow-x: auto). Данный способ обеспечивает плавную горизонтальную прокрутку, карточный вид и поддержку перетаскивания (Drag-and-Drop) без перегрузки клиентского интерфейса платформы.Страницы (закладки) или отображать информацию в виде иерархического дерева.Планировщик штатно поддерживает шкалы измерений, горизонтальную прокрутку временных или статусных интервалов и интерактивное распределение задач.Видимость элементов.