При работе в конфигурациях на базе обычных форм (например, «1С:Управление торговлей 10.3», «1С:Управление производственным предприятием 1.3» или «1С:Комплексная автоматизация 1.1») в режиме толстого клиента под управлением операционной системы Windows 10 пользователи часто сталкиваются с неприятным явлением. При установке системного масштаба экрана 125% или 150% таблицы схлопываются, колонки уменьшаются до половины экрана, а элементы управления наезжают друг на друга. При этом временная очистка кэша помогает лишь до следующего перезапуска базы.
В этой статье мы подробно проанализируем техническую причину такого поведения платформы 1С:Предприятие и разберем по шагам все надежные способы решения проблемы без ухудшения комфорта работы пользователей.
Чтобы понять, почему регулярная очистка кэша дает лишь временный эффект, рассмотрим механику взаимодействия операционной системы и платформы 1С:Предприятие 8.3 в режиме обычного (толстого) клиента.
%AppData%\1C\1Cv8.Когда мы выполняем ручную очистку кэша, сохраненные геометрические координаты удаляются, и форма открывается со стандартными заводскими размерами. Однако при первом же закрытии окна испорченные координаты записываются заново. Поэтому нам требуется комплексное системное решение.
Рассмотрим наиболее эффективный метод, позволяющий сохранить системный масштаб Windows 125% для комфорта глаз пользователя и одновременно защитить 1С от искажения геометрических параметров форм. Мы заставим операционную систему самостоятельно масштабировать растровую картинку интерфейса, передавая платформе 1С стандартный масштаб 100%.
Разберем по шагам выполнение этой настройки:
C:\Program Files (x86)\1cv8\8.3.xx.xxxx\bin\) или найдем ярлык запуска 1С на рабочем столе.1cv8.exe (или 1cv8s.exe / 1cestart.exe) и выберем пункт «Свойства».В результате операционная система будет сообщать платформе 1С, что экран работает в базовом разрешении 100%, благодаря чему координаты в кэш запишутся без искажений. Сама же Windows просто пропорционально увеличит итоговое окно. Шрифты могут стать слегка сглаженными, но формы перестанут «съезжать» навсегда.
Если проблема уже возникла у пользователя на конкретном документе (например, «Заказ покупателя» или «Реализация товаров и услуг»), мы можем восстановить исходный вид формы штатными средствами интерфейса 1С без удаления всей структуры кэша и списка баз.
Разберем порядок действий внутри программы:
После выполнения этих шагов форма вернет свои заводские пропорции.
В ситуациях, когда системные настройки 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, где и содержатся кэшированные данные окон и динамические структуры.
Если пользователям тяжело читать текст со стандартным кеглем при масштабе 100%, мы можем решить задачу на уровне метаданных конфигурации, изменив основной стиль интерфейса.
Проанализируем шаги настройки в режиме «Конфигуратор»:
Основной) или создадим новый стиль с увеличенным размером шрифтов (например, заменим шрифт ШрифтТекста с 8-9 пунктов на 10-11 пунктов).
Процедура ПриНачалеРаботыСистемы()
// Проверяем имя текущего пользователя и устанавливаем увеличенный стиль
Если ВРег(ИмяПользователя()) = "ОПЕРАТОР1" Тогда
ГлавныйСтиль = Метаданные.Стили.УвеличенныйШрифт;
КонецЕсли;
КонецПроцедуры
Такой подход полностью исключает конфликт со службой масштабирования Windows, поскольку увеличение размеров символов контролируется самой платформой 1С.
В операционной системе Windows 10 предусмотрен альтернативный механизм, позволяющий масштабировать только текстовые подписи, не затрагивая глобальный DPI оконных элементов.
При таком сценарии операционная система увеличивает только шрифт надписей, не искажая системные метрики элементов управления, благодаря чему таблицы в 1С 8.3 сохраняют заданную ширину.
Подведем итог и сравним рассмотренные варианты: