Работа в 1С через удаленный рабочий стол (RDP) часто сопровождается специфическими проблемами отображения интерфейса. Одна из самых частых жалоб — «плавающий» размер окон в управляемых формах, в частности, в форме подбора товаров в рабочем месте кассира (РМК). Давайте вместе разберем, почему это происходит и какие шаги помогут нам вернуть корректное отображение формы.
Когда окно формы открывается некорректно (на пол-экрана или с искаженной геометрией), это чаще всего связано с конфликтом между настройками сохранения положения окон в 1С и параметрами графического вывода Windows в сессии RDP. Проблема усугубляется, если пользователь использует разное масштабирование мониторов или если при открытии формы происходит программная перестройка элементов (например, при переключении режима «Иерархия номенклатуры»).
Первое, что мы должны предпринять — это сбросить накопленные «неправильные» настройки формы для конкретного пользователя. Платформа 1С сохраняет геометрию окон автоматически, и иногда эти данные повреждаются или конфликтуют с текущим разрешением экрана.
/ClearCache или вручную удалить папки с настройками из профиля пользователя в директории %AppData%\1C\1Cv8.В ходе анализа мы выяснили, что изменение состояния галочки «Иерархия номенклатуры» вызывает принудительную перерисовку формы. Если форма спроектирована с использованием сложных групп, их привязки могут некорректно отрабатывать при изменении видимости элементов. Разберем, как локализовать проблему:
Попробуйте проверить поведение формы под другим пользователем с «Полными правами». Если у него форма открывается корректно, значит, проблема кроется в персональных настройках НастройкиПользователей. Если же ошибка воспроизводится у всех — необходимо анализировать структуру формы в конфигураторе.
Поскольку работа ведется через RDP, важно учитывать настройки отображения. Посмотрим, что мы можем сделать на уровне ОС:
Если вышеуказанные действия не принесли результата, значит, логика пересчета размеров заложена в коде конфигурации. Рассмотрим вариант выноса формы подбора в Расширение конфигурации.
Разберем процедуры, которые отвечают за перестройку экрана (часто это события ПриСозданииНаСервере или процедуры после смены иерархии). Мы можем принудительно задать параметры формы при открытии. Пример того, как программно зафиксировать размер:
// Пример программного управления размером формы
&НаКлиенте
Процедура ПриОткрытии()
ЭтаФорма.Ширина = 800;
ЭтаФорма.Высота = 600;
КонецПроцедуры
Однако, прежде чем прибегать к кодированию, убедитесь, что конфигурация находится на поддержке и нет ли конфликтов с внешними обработками. Если база была снята с поддержки для внесения правок в печатные формы, проверьте, не были ли случайно затронуты стандартные привязки элементов в форме подбора.
Проанализировав ситуацию, мы рекомендуем двигаться от простого к сложному: сначала сброс стандартных настроек формы внутри программы, затем очистка кэша, и только в последнюю очередь — вмешательство в код через расширение. Помните, что «плавающие» окна — это часто симптом проблем с передачей графических данных через RDP, поэтому в первую очередь исключите влияние настроек Windows Server.