При работе в программах 1С на платформе 1С:Предприятие 8.3 (управляемые формы) пользователи нередко сталкиваются со странным поведением интерфейса: одна из колонок табличной части документа (например, «Номенклатура», «Содержание» или «Комментарий») внезапно растягивается на всю ширину экрана или даже выходит за его пределы. При этом попытки вручную перетащить границы колонок и вернуть им нормальный вид ни к чему не приводят — платформа блокирует изменение размера, оставляя интерфейс искаженным.
Особенно часто эта техническая проблема проявляется при работе в режиме удаленного рабочего стола (RDP). В этой статье мы подробно проанализируем причины возникновения этого бага и разберем все возможные пути его решения для обычных пользователей, системных администраторов и разработчиков 1С.
Для начала давайте разберем физику процесса и выясним, почему интерфейс 1С дает сбой именно в терминальных сессиях. Выделяют три ключевые причины:
Ниже мы подробно рассмотрим пошаговые методы устранения этой проблемы на всех уровнях доступа.
Если вы столкнулись с этой проблемой в роли обычного пользователя и колонка намертво заблокирована для ручного изменения размеров, самым быстрым и эффективным решением будет возврат формы к стандартным настройкам, заложенным разработчиками. Рассмотрим, как это сделать по шагам:
После выполнения этих простых действий платформа сотрет записанные искаженные размеры колонок из вашего профиля и полностью перерисует форму в ее первоначальном виде. Колонки вернутся к нормальной ширине.
Бывают ситуации, когда форма документа из-за гигантских размеров колонок зависает, не открывается вовсе или пользователь не может самостоятельно сбросить настройки. В этом случае администратор системы может выполнить очистку настроек формы централизованно в пользовательском режиме. Проанализируем этот процесс:
ФормаДокумента) или выберите очистку всех настроек внешнего вида для этого пользователя.Если данный метод не помог (что свидетельствует о более глубоком повреждении кэша платформы на локальной машине пользователя), рекомендуется полностью очистить локальный кэш 1С. Для этого необходимо удалить папки базы данных из следующих системных директорий пользователя:
%AppData%\1C\1Cv8%LocalAppData%\1C\1Cv8После удаления этих временных папок и повторного запуска базы 1С все интерфейсные настройки будут перестроены заново.
Чтобы предотвратить повторное появление проблемы у удаленных пользователей, системному администратору необходимо скорректировать параметры обработки масштабирования на сервере терминалов. Рассмотрим основные методы борьбы с искажениями на системном уровне.
Метод А. Отключение наследования масштаба клиента в реестре сервера.
Мы можем запретить терминальному серверу считывать настройки масштабирования экрана с локальных компьютеров пользователей. Для этого на сервере необходимо внести изменения в системный реестр:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations]
"IgnoreClientDesktopScaleFactor"=dword:00000001
После добавления этого параметра и перезапуска терминальных сессий сервер будет игнорировать нестандартные масштабы экранов домашних ноутбуков и ПК клиентов, запуская сессию со стандартным масштабом 100%, что исключит сбои в расчете интерфейса 1С.
Метод Б. Настройка RDP-файла подключения.
Для корректного масштабирования окна удаленного рабочего стола без искажения пропорций элементов управления 1С мы можем отредактировать конфигурационный файл подключения .rdp. Откройте его с помощью любого текстового редактора и добавьте или измените следующую строку:
smart sizing:i:1
Этот параметр активирует умное сглаживание и масштабирование картинки на стороне клиента, сохраняя пропорции всех окон в удаленном сеансе без передачи некорректных DPI-коэффициентов платформе 1С.
Если вы являетесь разработчиком конфигурации или имеете доступ на редактирование формы в конфигураторе, вы можете программно защитить табличную часть от подобных искажений интерфейса. Разберем основные свойства элементов формы, которые помогут нам решить задачу:
МаксимальнаяШирина). Установите жесткое ограничение в символах (например, значение 25 или 30) вместо автоматического расчета. Это физически не позволит колонке растянуться на весь экран при любом масштабе.РастягиватьПоГоризонтали) для данной колонки (или для всей таблицы) и установите его в значение Ложь (или снимите флажок).ИзменениеРазмера) в свойствах этой колонки.Такой комплексный подход на уровне разработки раз и навсегда решит проблему некорректного поведения табличной части, независимо от того, под каким разрешением и масштабом экрана пользователи подключаются к базе 1С по RDP.