Как работать с элементом формы «Планировщик» в 1С и обойти проблему скроллинга заголовков?

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

При разработке интерфейсов для распределения задач, графиков загрузки персонала или бронирования ресурсов разработчики часто выбирают встроенный элемент управления управляемой формы — Поле планировщика (тип Планировщик). Однако при отображении больших объемов данных возникает ряд ограничений: заголовки и шкала времени исчезают при вертикальной прокрутке формы, элементы сворачиваются в гиперссылки «Еще», а управление шириной и высотой ячеек ограничено платформой. Разберем по шагам причины такого поведения, способы оптимизации и альтернативные варианты реализации интерактивных расписаний.

Причины пропадания шапки и особенности рендеринга планировщика

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

Рассмотрим ключевые особенности и технические ограничения элемента:

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

Где посмотреть примеры реализации в типовых конфигурациях

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

  1. «1С:Управление нашей фирмой» и «1С:Розница» — рабочее место «Журнал записи». В нем продемонстрирована работа с ресурсами, наложение графиков работы специалистов и быстрая фильтрация интервалов.
  2. «1С:Документооборот» — функционал бронирования помещений и переговорных комнат в календаре.
  3. «1С:CRM» — календарное планирование встреч, телефонных звонков и взаимодействий менеджеров с клиентами.
  4. Методические материалы 1С:ИТС — практические примеры настройки измерений и элементов планировщика в материалах для начинающих разработчиков.

Методы оптимизации и обхода ограничений стандартного планировщика

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

  1. Пагинация и ограничение интервалов: Не выводите расписание за длительный период на весь экран. Ограничивайте шкалу текущим днем или рабочей неделей (свойства ТекущийПериодОтображения, ТекущиеПериодыОтображения), добавляя на форму кнопки переключения периодов («День», «Неделя», «Предыдущий», «Следующий»).
  2. Установка жестких отборов: Используйте фильтры по подразделениям, типам работ или проектам, чтобы количество строк в измерениях не превышало видимую область экрана.
  3. Применение коллекции «ИнтервалыФона»: Не создавайте пустые блоки для обозначения нерабочего времени или праздников. Заполняйте коллекцию ИнтервалыФона — это снижает нагрузку на рендеринг и исключает появление лишних кнопок «Еще».
  4. Иерархия измерений: Группируйте сотрудников или виды работ по категориям в коллекции Измерения, чтобы логически структурировать сетку.

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

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

  1. Элемент формы «Диаграмма Ганта»: Если модель данных предполагает список задач/работ по вертикали и календарную шкалу по горизонтали, объект ДиаграммаГанта подходит лучше всего. Он содержит фиксированную левую таблицу с деревом задач и независимую синхронизированную шкалу времени справа, которая скроллится без потери заголовков.
  2. Табличный документ с фиксацией областей: Кастомное расписание формируется в объекте ТабличныйДокумент. Свойства ФиксацияСверху и ФиксацияСлева гарантируют, что заголовки дат и списка сотрудников останутся видимыми при любой длине списка. Интерактивные действия реализуются через события ОбработкаРасшифровки и Выбор.
  3. Поле HTML-документа и JS-библиотеки: В элемент формы ПолеHTMLДокумента внедряется внешний веб-компонент (например, FullCalendar или vis-timeline). Это дает полный контроль над версткой, плавный скроллинг и независимую фиксацию заголовков, а обмен данными с платформой 1С настраивается через сериализацию в формат JSON.
← На главную