Почему слетают настройки пользователей и сжимаются формы в 1С при масштабе экрана Windows 125% и как это исправить

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

При работе в конфигурациях на базе обычных форм (например, «1С:Управление торговлей 10.3», «1С:Управление производственным предприятием 1.3» или «1С:Комплексная автоматизация 1.1») в режиме толстого клиента под управлением операционной системы Windows 10 пользователи часто сталкиваются с неприятным явлением. При установке системного масштаба экрана 125% или 150% таблицы схлопываются, колонки уменьшаются до половины экрана, а элементы управления наезжают друг на друга. При этом временная очистка кэша помогает лишь до следующего перезапуска базы.

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

Выясним причину: почему обычные формы ломаются при масштабировании

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

  1. Жесткая пиксельная сетка обычных форм. В отличие от управляемого интерфейса «Такси», который изначально проектировался с поддержкой векторной компоновки и динамического рендеринга, архитектура обычных форм построена на абсолютных пиксельных координатах. Полноценная поддержка динамического масштабирования на уровне платформы реализована только для управляемых форм.
  2. Механизм сохранения пользовательских настроек (кэш). При закрытии любого документа или журнала платформа 1С считывает текущие экранные координаты окна и ширину колонок табличных частей, записывая их в пользовательский файл настроек в каталоге %AppData%\1C\1Cv8.
  3. Эффект «двойного масштабирования». При системном масштабе 125% Windows сообщает приложению о повышенном значении DPI. Платформа 1С сохраняет координаты с учетом этого коэффициента. При повторном открытии окна 1С считывает уже увеличенные значения и накладывает на них масштабирование операционной системы повторно. С каждым циклом открытия и закрытия форма или таблица искажается все сильнее, пока не сожмется до минимально допустимого размера.

Когда мы выполняем ручную очистку кэша, сохраненные геометрические координаты удаляются, и форма открывается со стандартными заводскими размерами. Однако при первом же закрытии окна испорченные координаты записываются заново. Поэтому нам требуется комплексное системное решение.

Способ 1. Переопределение режима масштабирования DPI в свойствах приложения Windows (Рекомендуемый)

Рассмотрим наиболее эффективный метод, позволяющий сохранить системный масштаб Windows 125% для комфорта глаз пользователя и одновременно защитить 1С от искажения геометрических параметров форм. Мы заставим операционную систему самостоятельно масштабировать растровую картинку интерфейса, передавая платформе 1С стандартный масштаб 100%.

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

  1. Закроем все запущенные сеансы 1С:Предприятие на рабочем месте пользователя.
  2. Перейдем в каталог установки платформы (по умолчанию: C:\Program Files (x86)\1cv8\8.3.xx.xxxx\bin\) или найдем ярлык запуска 1С на рабочем столе.
  3. Нажмем правой кнопкой мыши на исполняемый файл 1cv8.exe (или 1cv8s.exe / 1cestart.exe) и выберем пункт «Свойства».
  4. Перейдем на вкладку «Совместимость» и нажмем кнопку «Изменить параметры высокого DPI» (или «Изменить параметры для всех пользователей»).
  5. Установим флажок в пункте «Переопределите режим масштабирования высокого разрешения».
  6. В выпадающем списке «Масштабирование выполняется:» выберем значение «Система» (System) или «Система (расширенная)» (System (Enhanced)) вместо варианта «Приложение».
  7. Нажмем «ОК» и применим изменения.
  8. Выполним разовую очистку кэша пользователя и запустим программу заново.

В результате операционная система будет сообщать платформе 1С, что экран работает в базовом разрешении 100%, благодаря чему координаты в кэш запишутся без искажений. Сама же Windows просто пропорционально увеличит итоговое окно. Шрифты могут стать слегка сглаженными, но формы перестанут «съезжать» навсегда.

Способ 2. Восстановление положения отдельного окна без полной очистки кэша

Если проблема уже возникла у пользователя на конкретном документе (например, «Заказ покупателя» или «Реализация товаров и услуг»), мы можем восстановить исходный вид формы штатными средствами интерфейса 1С без удаления всей структуры кэша и списка баз.

Разберем порядок действий внутри программы:

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

После выполнения этих шагов форма вернет свои заводские пропорции.

Способ 3. Автоматизация очистки кэша через командный файл (BAT)

В ситуациях, когда системные настройки DPI по каким-то причинам невозможно изменить (например, при строгих групповых политиках домена), можно применить сценарий автоматической очистки временных файлов настроек перед запуском программы.

Посмотрим на пример командного файла (скрипта start_1c.bat), который корректно очищает пользовательские данные интерфейса, сохраняя при этом файл со списком баз ibases.v8i:


@echo off
rem Закрываем зависшие процессы 1С при необходимости
taskkill /F /IM 1cv8.exe 2>nul

rem Удаляем папки с кэшем конфигураций и настроек форм
rmdir "%AppData%\1C\1Cv8" /S /Q 2>nul
rmdir "%LocalAppData%\1C\1Cv8" /S /Q 2>nul

rem Запускаем стартер 1С:Предприятие
start "" "C:\Program Files (x86)\1C Enterprise 8\common\1cestart.exe"

Обратите внимание: при удалении папок целиком (%AppData%\1C\) удаляется также файл со списком информационных баз ibases.v8i. Чтобы список баз не пропадал, мы удаляем только подпапку 1Cv8, где и содержатся кэшированные данные окон и динамические структуры.

Способ 4. Корректировка шрифтов в конфигураторе 1С

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

Проанализируем шаги настройки в режиме «Конфигуратор»:

  1. Откроем дерево метаданных и развернем ветку «Общие» $\rightarrow$ «Стили».
  2. Найдем используемый стиль (например, Основной) или создадим новый стиль с увеличенным размером шрифтов (например, заменим шрифт ШрифтТекста с 8-9 пунктов на 10-11 пунктов).
  3. При необходимости мы можем назначить индивидуальный стиль программно при начале работы системы в модуле обычного приложения:

Процедура ПриНачалеРаботыСистемы()
    // Проверяем имя текущего пользователя и устанавливаем увеличенный стиль
    Если ВРег(ИмяПользователя()) = "ОПЕРАТОР1" Тогда
        ГлавныйСтиль = Метаданные.Стили.УвеличенныйШрифт;
    КонецЕсли;
КонецПроцедуры

Такой подход полностью исключает конфликт со службой масштабирования Windows, поскольку увеличение размеров символов контролируется самой платформой 1С.

Способ 5. Настройка масштабирования текста Windows без изменения общего DPI

В операционной системе Windows 10 предусмотрен альтернативный механизм, позволяющий масштабировать только текстовые подписи, не затрагивая глобальный DPI оконных элементов.

  1. Установим основной масштаб дисплея в положение 100% (Параметры $\rightarrow$ Система $\rightarrow$ Дисплей $\rightarrow$ Масштаб и разметка).
  2. Перейдем в «Параметры» $\rightarrow$ «Специальные возможности» $\rightarrow$ «Дисплей».
  3. С помощью ползунка «Увеличить размер текста» выставим комфортное значение (например, 115–120%) и нажмем кнопку «Применить».

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

Сводная таблица методов решения

Подведем итог и сравним рассмотренные варианты:

  1. Переопределение DPI (Свойства $\rightarrow$ Совместимость $\rightarrow$ «Система»): самый надежный метод, решает проблему искажения раз и навсегда без доработки конфигурации.
  2. Настройка специальных возможностей (Увеличение только текста): сохраняет четкость геометрии форм, подходит при работе без прав администратора.
  3. Изменение стиля в Конфигураторе: централизованное решение для конкретных рабочих мест с плохим зрением операторов.
  4. Очистка кэша через BAT-скрипт: временная мера для автоматического сброса зависших настроек.
← На главную