При доработке конфигураций на платформе 1С 8.2 (обычные формы) разработчики часто сталкиваются с неприятным эффектом: после добавления нового реквизита на форму документа окно при открытии становится сжатым, отображается «в полэкрана» или часть элементов оказывается обрезанной. При этом стандартные кнопки свертывания и развертывания окна не помогают вернуть исходный размер. Рассмотрим подробнее, почему возникают такие сбои и как шаг за шагом восстановить нормальное отображение формы.
Самая распространенная причина искажения геометрии формы — сбой механизма привязок. Когда на форму с уже настроенными сложными привязками добавляется новый элемент без их учета, автоматический расчет координат панелей и полей при открытии начинает работать некорректно.
Проанализируем алгоритм диагностики привязок в Конфигураторе:
Платформа 1С запоминает положение и размеры окон для каждого конкретного пользователя. Если форма была открыта в момент возникновения сбоя, некорректный размер мог сохраниться в пользовательских настройках. В результате даже после исправления привязок в Конфигураторе у отдельных пользователей форма продолжает открываться обрезанной.
Разберем способы сброса настроек:
Если сбой проявляется массово или необходимо гарантировать первоначальный вид формы при запуске, можно вызвать принудительный сброс геометрии программным путем в модуле формы.
Посмотрим на пример кода в обработчике события ПриОткрытии:
Процедура ПриОткрытии()
// Восстанавливаем стандартные размеры и положение окна
ЭтаФорма.ВосстановитьПоложениеОкна();
КонецПроцедуры
Если проблема наблюдается только у некоторых пользователей, работающих в терминальном режиме (RDP), причиной может быть разница в системном масштабировании экрана (DPI) на их локальных компьютерах и на сервере без видеокарты.
Выясним способы устранения RDP-искажений:
IgnoreClientDesktopScaleFactor со значением 1 (тип DWORD).