← На главную
При эксплуатации конфигураций на базе обычных форм (например, 1С:Зарплата и управление персоналом 2.5 или 1С:Бухгалтерия предприятия 2.0) под управлением платформы 1С:Предприятие 8.3 в среде Windows 10 администраторы и пользователи нередко сталкиваются с самопроизвольным искажением экранных форм. Элементы управления, надписи, табличные части и кнопки смещаются, налезают друг на друга или сжимаются до нечитаемого состояния. Разберем детально, почему возникает подобный сбой и какими способами можно навсегда стабилизировать отображение интерфейса.
Причины сбоя: механизм кэширования и системное масштабирование DPI
Проанализируем механику работы платформы с экранными формами. Исторически архитектура обычных форм 1С жестко ориентирована на базовое системное масштабирование 96 DPI (100%). В современных версиях Windows 10 реализованы динамические механизмы масштабирования, которые вступают в конфликт с устаревшим графическим движком платформы.
Выясним, как формируется ошибка:
- Сохранение геометрии окон при закрытии сеанса. При завершении работы пользователя платформа фиксирует текущие координаты окон, ширину колонок списков и взаимное расположение элементов. Эти параметры записываются не в общий файл
1Cv8cmn.pfl (который отвечает лишь за список информационных баз и общие параметры запуска), а в пользовательский файл 1Cv8.pfl, расположенный в каталогах %AppData%\1C\1Cv8\... и %LocalAppData%\1C\1Cv8\..., а также передаются в саму информационную базу в системную таблицу ХранилищеСистемныхНастроек.
- Служебные скачки разрешения экрана. Если компьютер подключен к монитору через DisplayPort или HDMI, в момент перехода монитора в спящий режим или при блокировке рабочей станции видеодрайвер может кратковременно сбросить виртуальное разрешение до базового (например, 1024×768 точек). Если окно 1С в этот момент остается открытым или закрывается, платформа пересчитывает привязки под искаженное разрешение и сохраняет некорректные метрики.
- Использование утилит удаленного доступа. Подключение к сеансу пользователя через средства удаленного администрирования с другим разрешением экрана приводит к тому, что клиент 1С адаптирует привязки элементов под монитор администратора и фиксирует их в профиле.
- Нестандартный масштаб интерфейса Windows. Любое значение масштабирования, отличное от 100% (например, 125% или включенная опция увеличения размера системных шрифтов), приводит к накопительной погрешности в вычислении координат контролов.
Способ 1. Автоматический сброс кэша через параметры запуска
Рассмотрим самое быстрое решение проблемы, если сбой проявляется периодически и блокирует работу сотрудника. Мы можем настроить принудительную очистку клиентского кэша при каждом запуске программы с помощью ключа запуска платформы.
Разберем по шагам порядок настройки:
- Откроем окно запуска 1С:Предприятие.
- Выделим проблемную информационную базу и нажмем кнопку Изменить.
- Нажмем Далее и перейдем на последнюю страницу диалога с параметрами запуска.
- В поле Дополнительные параметры запуска укажем параметр:
/ClearCache
- Нажмем кнопку Готово.
При использовании данного параметра платформа при каждом старте отбрасывает накопленный временный кэш метаданных и клиентских представлений, что предотвращает появление артефактов интерфейса.
Способ 2. Настройка совместимости DPI в свойствах исполняемого файла
Если мы не хотим принудительно очищать кэш при каждом старте (так как это может незначительно увеличивать время первого открытия тяжелых форм), настроим режим обработки масштабирования операционной системой для исполняемых файлов платформы.
Выполним следующие действия:
- Перейдем в каталог установленной версии платформы (по умолчанию:
C:\Program Files (x86)\1cv8\8.3.X.XXXX\bin\).
- Найдем исполняемые файлы
1cv8.exe (толстый клиент) и 1cv8c.exe (тонкий клиент).
- Нажмем правой кнопкой мыши на файл, выберем Свойства и перейдем на вкладку Совместимость.
- Нажмем кнопку Изменить параметры высокого DPI.
- Установим флаг Переопределите режим масштабирования высокого разрешения.
- В выпадающем списке выберем значение Система (System).
- Сохраним изменения, нажав ОК, и повторим настройку для второго файла.
Данная настройка запрещает графической подсистеме 1С самостоятельно пересчитывать привязки кнопок и полей. Windows будет растягивать графическое окно целиком, сохраняя исходную взаимную геометрию элементов формы.
Способ 3. Проверка параметров дисплея и шрифтов в Windows 10
Разберем параметры операционной системы, которые напрямую влияют на отрисовку обычных форм:
- Откроем Параметры Windows $\rightarrow$ Система $\rightarrow$ Дисплей.
- В блоке Масштаб и разметка убедимся, что масштаб установлен строго на 100%.
- Перейдем в Специальные возможности $\rightarrow$ Дисплей и проверим настройку Сделать текст больше. Ползунок должен находиться в крайнем левом положении (100%). Если ползунок смещен, привязки надписей в 1С будут сбиваться даже при стандартном общем масштабе экрана.
- В дополнительных параметрах масштабирования отключим системную функцию Разрешить Windows исправлять размытость в приложениях.
Способ 4. Сброс искаженных настроек в информационной базе
Если очистка локальных каталогов пользователя на жестком диске не помогает, значит, некорректная геометрия форм сохранилась непосредственно в информационной базе данных в объекте ХранилищеСистемныхНастроек.
Для исправления ситуации выполним следующие шаги:
- Запустим информационную базу под учетной записью с административными правами в режиме обычного приложения.
- Откроем меню Сервис $\rightarrow$ Настройки пользователя (либо раздел администрирования прав и пользователей в зависимости от конфигурации).
- Найдем проблемного пользователя в списке.
- Перейдем к списку сохраненных настроек форм и внешнего вида интерфейса.
- Удалим сохраненные настройки для тех документов и журналов, в которых наблюдаются графические перекосы, либо полностью восстановим стандартные настройки интерфейса по умолчанию.
После применения параметров совместимости DPI и сброса сохраненных координат формы вернутся к эталонному внешнему виду и перестанут искажаться при последующих перезапусках сеанса.