Почему в отчетах 1С 8.3.15 и 8.3.16 возникают проблемы с прокруткой и как их устранить

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

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

Анализируем причины: переход на графическую библиотеку Cairo

Для начала выясним причину таких масштабных изменений в визуальной части платформы. Начиная с релизов 8.3.15.1830 и полномасштабно в 8.3.16, разработчики компании «1С» осуществили переход на использование графической библиотеки Cairo. Рассмотрим подробнее, для чего это было сделано:

  1. Унификация интерфейса: Раньше отрисовка в Windows выполнялась через GDI/GDI+, а в Linux — через другие механизмы. Это приводило к тому, что одни и те же формы выглядели по-разному. Cairo позволяет добиться идентичного отображения на Windows, Linux и macOS.
  2. Поддержка векторной графики: Платформа получила полноценную поддержку формата SVG для иконок, что критично для современных мониторов с высоким разрешением.
  3. Сглаживание и масштабирование: Новый движок лучше справляется со шрифтами и масштабированием интерфейса (DPI), что актуально для 4K-мониторов.

Однако внедрение такой фундаментальной технологии не прошло гладко. Проанализируем ситуацию: новый механизм инкрементальной отрисовки в Cairo в первых редакциях некорректно обрабатывал события прокрутки в объекте ТабличныйДокумент.

Разбираем симптомы проблемы в версии 8.3.16

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

Проанализируем ситуацию: библиотека Cairo иначе взаимодействует с очередью сообщений операционной системы о перерисовке окон. Если отчет содержит сложные привязки или группировки, расчет координат ползунка (Scroll Info) начинает давать сбои, что и приводит к «прыжкам» интерфейса.

Особенности переходной версии 8.3.15.1830

Многие ошибочно полагают, что ветка 8.3.15 полностью свободна от этих проблем. Однако, начиная со сборки 1830, элементы нового движка начали внедряться и в этот релиз. Выясним, с какими трудностями можно столкнуться здесь:

Во-первых, зафиксированы проблемы с привязками в управляемых формах. Элементы управления могут накладываться друг на друга, если форма была спроектирована в старых версиях платформы с жестко заданными границами. Во-вторых, часто наблюдается баг с «вечными» полосами прокрутки: ПолеСписка или ТабличноеПоле отображают вертикальную полосу прокрутки даже тогда, когда данных мало и они полностью умещаются на экране.

Рассмотрим по шагам, как проверить наличие проблемы на вашем релизе:

  1. Сформируйте любой тяжелый отчет (например, «Оборотно-сальдовая ведомость» за большой период).
  2. Попробуйте быстро прокрутить его колесиком мыши, а затем захватом ползунка.
  3. Обратите внимание на нижнюю границу текста — в версии 8.3.15.1830 иногда наблюдается обрезание нижних пикселей шрифта из-за неверного расчета высоты строки.

Как решить проблему: рекомендации по выбору платформы

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

Вариант 1: Откат на стабильную сборку 8.3.15

Если ваша конфигурация позволяет работать на 15-й ветке, наиболее стабильными считаются сборки до 1830. В них еще не задействованы проблемные механизмы Cairo в той мере, в какой они мешают работе. Это позволит сохранить привычную скорость отрисовки GDI.

Вариант 2: Переход на ветку 8.3.17 и выше

Как показала практика, полноценно ошибки Cairo были исправлены только в ветке 8.3.17 (начиная с релиза 1386 и выше). Разработчики оптимизировали кэширование областей отрисовки и исправили математическую модель расчета координат. Если вы планируете уходить с 8.3.15, мы рекомендуем пропускать 16-й релиз и сразу переходить на актуальные сборки 8.3.17 или 8.3.18.

Вариант 3: Настройка масштабирования Windows

Выясним техническую тонкость: Cairo крайне чувствителен к нестандартному масштабированию ОС (например, 125% или 150%). Если вы не можете сменить платформу прямо сейчас, попробуйте следующее:

Технические выводы

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

Резюмируем: если вы цените стабильность работы с табличными документами и отчетами, избегайте использования 8.3.16.1030. Для комфортной работы используйте либо проверенные временем ранние сборки 8.3.15, либо переходите на современные исправленные релизы 8.3.17+, где работа движка Cairo была доведена до приемлемого уровня стабильности.

← На главную