Почему сжимается заголовок табличного поля в обычных формах 1С и как это исправить?

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

При переходе на платформу 1С:Предприятие 8.3 (начиная с версии 8.3.10 и выше) пользователи и разработчики часто сталкиваются с неприятным визуальным дефектом в конфигурациях на «обычных формах», таких как Управление торговлей 10.3 или Управление производственным предприятием 1.3. Суть проблемы заключается в том, что заголовки (шапки) табличных частей «схлопываются» или сжимаются по высоте, из-за чего текст становится трудночитаемым или обрезается.

В этой статье мы подробно разберем причины возникновения этой ситуации, проанализируем поведение платформы и рассмотрим пошаговые методы решения — от простых настроек операционной системы до программных правок в конфигурации.

Выясним причину проблемы: почему это происходит?

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

Основными факторами являются:

Решение 1: Настройка масштабирования в свойствах ярлыка

Одним из самых эффективных способов решения, не требующим вмешательства в код, является перенос ответственности за масштабирование интерфейса с платформы на операционную систему Windows. Рассмотрим подробнее, как это сделать:

  1. Найдите ярлык, через который вы запускаете 1С, или непосредственно исполняемый файл 1cv8.exe (обычно находится в папке bin установленной платформы).
  2. Нажмите правой кнопкой мыши и выберите Свойства.
  3. Перейдите на вкладку Совместимость.
  4. Нажмите кнопку Изменить параметры высокого DPI.
  5. В открывшемся окне установите галочку Переопределите режим масштабирования высокого разрешения.
  6. В выпадающем списке под галочкой выберите пункт Система (в некоторых случаях — Система (расширенная)).
  7. Нажмите «ОК» и перезапустите 1С.

Этот метод заставляет Windows отрисовывать окно 1С как растровую картинку и масштабировать её целиком, что предотвращает попытки платформы самостоятельно (и часто ошибочно) вычислять высоту шапки таблицы.

Решение 2: Изменение режима совместимости конфигурации

Если проблема носит массовый характер для всех пользователей, разберем действия на уровне конфигуратора. Опыт показывает, что для стабильного отображения обычных форм в современных версиях платформы 8.3 критически важно правильно выставить режим совместимости.

Посмотрим на рекомендации технических специалистов: наиболее стабильным для работы УТ 10.3 и УПП 1.3 считается режим совместимости Версия 8.2.16. Чтобы изменить его:

  1. Откройте конфигуратор и выделите корень дерева конфигурации (самая верхняя строка).
  2. Нажмите правую кнопку мыши — Свойства.
  3. В палитре свойств найдите раздел Совместимость и параметр Режим совместимости.
  4. Установите значение Версия 8.2.16.

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

Решение 3: Программное управление высотой шапки

Если проблему не удается решить глобально через настройки системы или платформы, мы можем принудительно заставить форму пересчитать высоту заголовка при открытии. Это «костыльный», но действенный метод.

Рассмотрим пример кода, который можно добавить в модуль формы документа или обработки в процедуру ПриОткрытии():


Процедура ПриОткрытии()
    // Установим высоту шапки явно. 
    // Значение 1 соответствует стандартной высоте.
    // Если шапка все равно сжата, можно попробовать установить 1.5 или 2.
    ЭлементыФормы.Товары.ВысотаШапки = 1;
    
    // Иногда требуется "дернуть" свойство, чтобы платформа перерисовала элемент
    Высота = ЭлементыФормы.Товары.ВысотаШапки;
    ЭлементыФормы.Товары.ВысотаШапки = Высота;
КонецПроцедуры

Также проанализируем ситуацию с многострочностью. В свойствах табличного поля в конфигураторе можно найти флаг Многострочный режим шапки. Если его включить (даже если текст заголовка короткий), платформа резервирует больше места под отрисовку, что часто спасает заголовок от «сплющивания».

Решение 4: Очистка кэша и восстановление положения окон

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

  1. Очистка кэша: Удалите базу из списка информационных баз в стартере 1С и добавьте её заново. Это приведет к созданию новой папки кэша.
  2. Восстановление положения: Находясь в проблемной форме, нажмите в верхнем меню Действия (или «Все действия») — Восстановить положение окна. Это сбросит сохраненные настройки размеров элементов формы для текущего пользователя.

Резюме

Подводя итог, можно сказать, что проблема сжатых заголовков — это следствие «устаревания» обычных форм в глазах новых версий платформы. Наиболее долгосрочным решением является настройка DPI в свойствах ярлыка (Решение 1) и контроль режима совместимости (Решение 2). Программные методы стоит использовать только для точечного исправления наиболее критичных форм.

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

← На главную