При переходе на платформу 1С:Предприятие 8.3 (начиная с версии 8.3.10 и выше) пользователи и разработчики часто сталкиваются с неприятным визуальным дефектом в конфигурациях на «обычных формах», таких как Управление торговлей 10.3 или Управление производственным предприятием 1.3. Суть проблемы заключается в том, что заголовки (шапки) табличных частей «схлопываются» или сжимаются по высоте, из-за чего текст становится трудночитаемым или обрезается.
В этой статье мы подробно разберем причины возникновения этой ситуации, проанализируем поведение платформы и рассмотрим пошаговые методы решения — от простых настроек операционной системы до программных правок в конфигурации.
Проанализируем ситуацию: «обычные формы» используют старый графический движок отрисовки элементов управления, который создавался еще во времена Windows XP и Windows 7. Современная платформа 8.3 ориентирована в первую очередь на «управляемые формы» и интерфейс «Такси». При работе старого движка в новой среде возникают конфликты, связанные с расчетом геометрии окон.
Основными факторами являются:
ТабличноеПоле.Одним из самых эффективных способов решения, не требующим вмешательства в код, является перенос ответственности за масштабирование интерфейса с платформы на операционную систему Windows. Рассмотрим подробнее, как это сделать:
1cv8.exe (обычно находится в папке bin установленной платформы).Этот метод заставляет Windows отрисовывать окно 1С как растровую картинку и масштабировать её целиком, что предотвращает попытки платформы самостоятельно (и часто ошибочно) вычислять высоту шапки таблицы.
Если проблема носит массовый характер для всех пользователей, разберем действия на уровне конфигуратора. Опыт показывает, что для стабильного отображения обычных форм в современных версиях платформы 8.3 критически важно правильно выставить режим совместимости.
Посмотрим на рекомендации технических специалистов: наиболее стабильным для работы УТ 10.3 и УПП 1.3 считается режим совместимости Версия 8.2.16. Чтобы изменить его:
Важно: Перед этим действием обязательно сделайте резервную копию базы, так как изменение режима совместимости может повлиять на работу некоторых механизмов (например, на выполнение фоновых заданий или запросов).
Если проблему не удается решить глобально через настройки системы или платформы, мы можем принудительно заставить форму пересчитать высоту заголовка при открытии. Это «костыльный», но действенный метод.
Рассмотрим пример кода, который можно добавить в модуль формы документа или обработки в процедуру ПриОткрытии():
Процедура ПриОткрытии()
// Установим высоту шапки явно.
// Значение 1 соответствует стандартной высоте.
// Если шапка все равно сжата, можно попробовать установить 1.5 или 2.
ЭлементыФормы.Товары.ВысотаШапки = 1;
// Иногда требуется "дернуть" свойство, чтобы платформа перерисовала элемент
Высота = ЭлементыФормы.Товары.ВысотаШапки;
ЭлементыФормы.Товары.ВысотаШапки = Высота;
КонецПроцедуры
Также проанализируем ситуацию с многострочностью. В свойствах табличного поля в конфигураторе можно найти флаг Многострочный режим шапки. Если его включить (даже если текст заголовка короткий), платформа резервирует больше места под отрисовку, что часто спасает заголовок от «сплющивания».
Иногда причина кроется в «замусоривании» локальных настроек пользователя. Платформа запоминает состояние форм, и если при первом открытии произошел сбой отрисовки, это состояние кэшируется. Попробуем выполнить следующие шаги:
Подводя итог, можно сказать, что проблема сжатых заголовков — это следствие «устаревания» обычных форм в глазах новых версий платформы. Наиболее долгосрочным решением является настройка DPI в свойствах ярлыка (Решение 1) и контроль режима совместимости (Решение 2). Программные методы стоит использовать только для точечного исправления наиболее критичных форм.
Помните, что при каждом обновлении платформы 1С ситуация может меняться: разработчики «чинят» отрисовку в одном релизе и случайно ломают её в другом. Поэтому всегда проверяйте отображение форм на тестовой копии перед обновлением рабочего сервера.