Как вернуть нормальный размер неестественно широкой колонки табличной части в 1С при работе через RDP?

Пользователь 1С v8.3 (Управляемые формы)
← На главную

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

Особенно часто эта техническая проблема проявляется при работе в режиме удаленного рабочего стола (RDP). В этой статье мы подробно проанализируем причины возникновения этого бага и разберем все возможные пути его решения для обычных пользователей, системных администраторов и разработчиков 1С.

Выясняем причины: почему искажается табличная часть?

Для начала давайте разберем физику процесса и выясним, почему интерфейс 1С дает сбой именно в терминальных сессиях. Выделяют три ключевые причины:

  1. Конфликт масштабирования DPI в RDP-сессии. Это главная причина сбоя. Когда пользователь подключается к удаленному серверу с локального компьютера (особенно с современного ноутбука или монитора с высоким разрешением FullHD/4K и установленным масштабом экрана 125%, 150% или выше), служба RDP пытается передать эти настройки масштабирования на сервер. Платформа 1С некорректно обрабатывает динамическое масштабирование DPI на стороне терминального сервера. Алгоритм авторасчета интерфейса сбивается, что приводит к некорректному вычислению ширины элементов формы.
  2. Алгоритм автоматического растягивания управляемых форм. В управляемом интерфейсе 1С по умолчанию заложен принцип адаптивности. Если у колонки (например, строкового типа неограниченной длины) включена опция автоматического определения ширины, платформа пытается занять все доступное свободное пространство. В условиях сбоя масштабирования этот механизм «разгоняет» ширину одной колонки до максимального предела.
  3. Сохранение некорректного состояния в кэш настроек. Как только колонка один раз растянулась из-за сбоя в RDP-сессии, платформа 1С автоматически записывает эти искаженные геометрические параметры в системную базу данных для конкретного пользователя. В результате при каждом последующем открытии этого документа (даже если войти локально без RDP) колонка будет оставаться огромной, так как настройки формы считываются из сохраненного кэша.

Ниже мы подробно рассмотрим пошаговые методы устранения этой проблемы на всех уровнях доступа.

Решение 1: Интерактивный сброс настроек формы (уровень пользователя)

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

  1. Откройте проблемный документ, в котором исказилась табличная часть.
  2. В правом верхнем углу окна документа нажмите кнопку «Еще».
  3. В выпадающем меню выберите пункт «Изменить форму...». Перед вами откроется окно детальной настройки элементов формы.
  4. В открывшемся окне найдите верхнюю командную панель, нажмите кнопку «Еще» (расположенную внутри этого окна настройки) и выберите команду «Установить стандартные настройки».
  5. Нажмите кнопку «Применить» или «ОК».

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

Решение 2: Очистка настроек пользователя через администрирование (уровень администратора 1С)

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

  1. Перейдите в раздел меню «Администрирование» — «Настройки пользователей и прав».
  2. Раскройте гиперссылку «Персональные настройки пользователей» и выберите пункт «Очистка настроек».
  3. В открывшемся списке выберите пользователя, у которого возникла проблема.
  4. В списке сохраненных настроек найдите нужный документ (ориентируйтесь по имени формы, например, ФормаДокумента) или выберите очистку всех настроек внешнего вида для этого пользователя.
  5. Нажмите кнопку «Очистить».

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

  1. %AppData%\1C\1Cv8
  2. %LocalAppData%\1C\1Cv8

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

Решение 3: Системное устранение конфликта DPI в RDP (уровень системного администратора)

Чтобы предотвратить повторное появление проблемы у удаленных пользователей, системному администратору необходимо скорректировать параметры обработки масштабирования на сервере терминалов. Рассмотрим основные методы борьбы с искажениями на системном уровне.

Метод А. Отключение наследования масштаба клиента в реестре сервера.

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


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С.

Решение 4: Предотвращение растягивания колонок в конфигураторе (уровень разработчика)

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

  1. Откройте нужную управляемую форму документа в конфигураторе.
  2. Найдите в дереве элементов форму и выделите проблемную колонку табличной части.
  3. В панели свойств элемента найдите свойство «Максимальная ширина» (в метаданных оно соответствует значению МаксимальнаяШирина). Установите жесткое ограничение в символах (например, значение 25 или 30) вместо автоматического расчета. Это физически не позволит колонке растянуться на весь экран при любом масштабе.
  4. Найдите свойство «Растягивать по горизонтали» (в метаданных — РастягиватьПоГоризонтали) для данной колонки (или для всей таблицы) и установите его в значение Ложь (или снимите флажок).
  5. Если вы хотите полностью запретить пользователям изменять размер конкретной колонки вручную во избежание случайных деформаций, снимите флажок со свойства «Изменение размера» (ИзменениеРазмера) в свойствах этой колонки.

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

← На главную