Как настроить горизонтальную прокрутку на управляемой форме в 1С 8.3

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

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

Разберем причины такого поведения платформы 1С:Предприятие 8.3 и выясним, как правильно настроить свойства формы и элементов для появления горизонтального скролла, а также рассмотрим архитектурные альтернативы.

Причины сжатия элементов на управляемой форме

Проанализируем специфику работы компоновщика управляемых форм:

  1. Отсутствие полос прокрутки у групп: Элемент ОбычнаяГруппа не имеет собственной встроенной полосы прокрутки. Скролл может формироваться только на уровне самого окна формы, внутри таблицы (динамического списка) или внутри поля HTML-документа.
  2. Приоритет сжатия контента: Алгоритм позиционирования платформы стремится сжать дочерние элементы до их минимальных размеров, прежде чем выносить содержимое за пределы видимости экрана.
  3. Влияние автоширины: Если для формы и элементов оставлены стандартные значения автоподбора размеров, платформа игнорирует попытки принудительного расширения группы.

Пошаговая настройка гарантированного появления горизонтального скролла

Чтобы заставить управляемую форму прокручиваться по горизонтали и не сжимать списки, выполним комплексную настройку свойств:

  1. Настройка ширины формы: Перейдем в свойства корневого элемента формы. Зададим свойству Ширина фиксированное крупное значение (например, 150 или 200 в зависимости от суммарной ширины размещаемых объектов). Именно увеличение ширины самой формы сигнализирует клиенту о необходимости включения горизонтальной прокрутки окна при нехватке физического разрешения монитора.
  2. Отключение растягивания у списков: Для каждой таблицы динамического списка на форме установим свойство РастягиватьПоГоризонтали в значение Ложь.
  3. Фиксация размеров таблиц: Для каждого динамического списка снимем флаг АвтоМаксимальнаяШирина, а также укажем конкретные значения в свойствах Ширина и МаксимальнаяШирина.
  4. Фиксация ширины колонок: Внутри списков у колонок также отключим свойство РастягиватьПоГоризонтали и зададим четкую ширину.
  5. Параметры родительской группы: Поместим динамические списки в элемент ОбычнаяГруппа с группировкой Горизонтальная и убедимся, что у группы отключено растягивание по горизонтали.

Альтернативные архитектурные решения

Размещение большого числа независимых динамических списков (от 5 до 10 и более) на одной форме создает существенную нагрузку на базу данных и интерфейс, так как платформа инициирует отдельный серверный запрос для каждого списка. Рассмотрим более производительные и удобные варианты реализации подобных интерфейсов:

  1. Использование поля HTML-документа: Для полноценных канбан-досок стандартом является интеграция веб-технологий. На форме создается элемент ПолеHTMLДокумента, в который передается верстка с использованием CSS-стилей (например, Flexbox с параметром overflow-x: auto). Данный способ обеспечивает плавную горизонтальную прокрутку, карточный вид и поддержку перетаскивания (Drag-and-Drop) без перегрузки клиентского интерфейса платформы.
  2. Режим страниц или закладок: Если вывод 10 списков в ряд перегружает внимание пользователя, целесообразно заменить горизонтальную доску на группу страниц с типом Страницы (закладки) или отображать информацию в виде иерархического дерева.
  3. Элемент формы «Планировщик»: Встроенный элемент управления Планировщик штатно поддерживает шкалы измерений, горизонтальную прокрутку временных или статусных интервалов и интерактивное распределение задач.
  4. Карусель колонок (пагинация сдвигом): На форму выводятся фиксированные 3–4 списка, а переключение между остальными колонками реализуется программно с помощью кнопок «Влево» и «Вправо», управляющих свойством Видимость элементов.
← На главную