В процессе работы с конфигурациями 1С на обычных формах (таких как 1С:Управление производственным предприятием 1.3 или 1С:Управление торговлей 10.3) специалисты часто сталкиваются с неприятной проблемой: после динамического или обычного обновления формы документов, справочников и отчетов неожиданно «слетают». Размеры окон уменьшаются, элементы интерфейса наезжают друг на друга, а привязки кнопок и полей ввода смещаются.
В этой статье мы подробно проанализируем причины возникновения этой проблемы, выясним роль настроек масштабирования операционной системы и разберем проверенные способы восстановления геометрии слетевших форм.
Разберем детально механизм, приводящий к сбою графического интерфейса. В отличие от управляемых форм, обычные формы 1С не обладают встроенной адаптивностью и рассчитывают положение графических элементов строго по координатной сетке в пикселях.
Базовый расчет привязок и размеров элементов в платформе 1С рассчитывается исходя из стандартного разрешения системы 96 DPI (масштаб экрана 100%). Если доработка или обновление конфигурации выполняется на компьютере, где в настройках Windows установлен увеличенный масштаб системного шрифта (например, 125% или 150%), происходит следующее:
Ситуация дополнительно усугубляется при использовании динамического обновления конфигурации базы данных («демонического обновления»), которое может приводить к сбоям кэширования метаданных на клиентах.
Рассмотрим основное правило разработки и поддержки обычных форм: никогда не выполняйте обновление и сохранение конфигурации на компьютере, где масштаб экрана Windows отличается от 100%.
Для проверки и настройки масштаба в операционной системе Windows выполните следующие шаги:
Проанализируем ситуацию, когда формы уже исказились и попали в рабочую базу. Наиболее чистый способ исправления геометрии заключается в повторной накатке корректной конфигурации:
Если откат на бэкап невозможен из-за введенных данных, разберем способ принудительного перезаписывания метаданных формы без отката базы:
Этот простой шаг заставит платформу 1С пересчитать сетку привязок при корректном системном DPI и перезаписать правильные координаты элементов в структуру метаданных.
Бывают случаи, когда форма отображается сжатой или сдвинутой только у конкретного сотрудника, а у остальных пользователей все выглядит правильно. В этом случае проблема кроется в сохраненных пользовательских настройках окна.
Для исправления проанализируем два вариантов действий:
Восстановить положение окна.1cv8.cfl в профиле пользователя или сбросьте настройки данного окна через меню Сервис -> Настройки пользователя (в зависимости от используемой конфигурации).Посмотрим на дополнительное решение, которое позволяет избежать искажения координат при работе на мониторах с высоким разрешением (4K и UltraHD):
C:\Program Files\1cv8\8.3.X.X\bin\).1cv8.exe и откройте его «Свойства».При таком режиме Windows будет самостоятельно масштабировать интерфейс 1C как графическую картинку, не передавая искаженные координаты в сам Конфигуратор при сохранении метаданных.