Почему обрезается или сжимается форма документа в 1С 8.2 и как это исправить

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

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

1. Настройка и проверка привязок элементов формы в Конфигураторе

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

Проанализируем алгоритм диагностики привязок в Конфигураторе:

  1. Откроем нужную форму документа в режиме разработки.
  2. Включим режим проверки формы с помощью комбинации клавиш Ctrl + R или через меню «Форма» — «Проверить форму».
  3. Потянем за край открывшейся формы в окне предварительного просмотра. Если привязки настроены некорректно, элемент с ошибкой подсветится красными линиями или мерцающей рамкой.
  4. Откроем свойства проблемного элемента и перейдем на вкладку «Сложная» в окне настройки привязок.
  5. Зададим связи с соседними элементами или границами формы аналогично тому, как это сделано для типовых полей.

2. Сброс сохраненных пользовательских настроек окна

Платформа 1С запоминает положение и размеры окон для каждого конкретного пользователя. Если форма была открыта в момент возникновения сбоя, некорректный размер мог сохраниться в пользовательских настройках. В результате даже после исправления привязок в Конфигураторе у отдельных пользователей форма продолжает открываться обрезанной.

Разберем способы сброса настроек:

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

3. Программный сброс параметров формы при открытии

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

Посмотрим на пример кода в обработчике события ПриОткрытии:


Процедура ПриОткрытии()
    // Восстанавливаем стандартные размеры и положение окна
    ЭтаФорма.ВосстановитьПоложениеОкна();
КонецПроцедуры

4. Учет особенностей RDP-сессий и системного масштабирования (DPI)

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

Выясним способы устранения RDP-искажений:

  1. Установим на локальных компьютерах пользователей стандартный масштаб Windows 100% (96 DPI). При подключении к RDP сервер перенимает масштаб с клиента, что приводит к ошибочному перерасчету координат обычных форм 1С 8.2.
  2. В настройках RDP-клиента на вкладке «Качество» отключим сглаживание шрифтов (Font Smoothing), так как базовые видеоадаптеры серверов без дискретной видеокарты могут некорректно отрисовывать обычные формы.
  3. Для системного запрета передачи масштаба с клиента в реестре терминального сервера создадим параметр IgnoreClientDesktopScaleFactor со значением 1 (тип DWORD).
← На главную