Как добиться одинакового отображения обычных форм 1С на разных экранах и при подключении по RDP?

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

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

Основные принципы адаптивной разработки обычных форм 1С

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

  1. Разработка при стандартном масштабе и ориентация на минимальное разрешение:

    Мы рекомендуем разрабатывать формы при стандартном разрешении 96 DPI (что соответствует 100% масштабу Windows). Если форма создается при увеличенном DPI (например, 120 DPI или 125% масштаба), то при отображении на мониторе с 96 DPI текст некоторых элементов может не помещаться, что приведет к появлению многоточий или некорректному отображению командных панелей. Платформа 1С не умеет нормально работать с масштабом, отличным от 100%. Ориентируйтесь на минимальное разрешение экрана, используемое вашими сотрудниками, чтобы гарантировать, что форма поместится без полос прокрутки. Типовым разрешением для проектирования интерфейсов в 1С считается 1280x768 пикселей при 96 DPI. Учтите, что доступная для работы область может быть еще меньше из-за панели задач операционной системы и других элементов интерфейса (например, 1280x668 пикселей). Зачастую встречаются мониторы с разрешением 1360, а не 1366, что также может влиять на отображение.

  2. Корректная настройка привязок (якорей) элементов:

    Привязки элементов формы крайне важны для адаптивного отображения. Они определяют, как элементы будут масштабироваться и перемещаться при изменении размеров формы. Мы рекомендуем:

    • Минимизировать ручную установку привязок, позволяя системе 1С автоматически размещать элементы.
    • Понимать, что табличные поля, поля списка, командные панели, панели и группы обычно изменяют размер при горизонтальном и вертикальном растягивании формы.
    • При горизонтальном растягивании, если в одной "строке" диалога находится один элемент, он растягивается вместе с формой. Если элементов несколько — они растягиваются пропорционально. Аналогичные правила применяются при вертикальном растягивании для "столбца".
    • Используйте сочетание клавиш Ctrl+R в конфигураторе при просмотре формы. Это позволяет потаскать форму за края и увидеть, какие элементы не могут быть передвинуты или отмасштабированы (они будут зачеркиваться красными скрещенными линиями). Этот инструмент является отличным способом проверки корректности привязок.
  3. Минимизация явного указания размеров элементов:

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

  4. Управление вертикальной прокруткой через свойства формы:

    Для формы существует свойство ВертикальнаяПрокрутка. Если установить его в значение ИспользоватьПриНеобходимости, форма сначала попытается уменьшить свой размер по вертикали, и только потом, если это невозможно, появится полоса прокрутки.

Особенности отображения форм при удаленном доступе (RDP)

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

  1. Тщательная проверка настроек масштабирования на удаленном ПК и в RDP-сессии:

    Даже если вы уверены, что на удаленном компьютере пользователя масштаб установлен на 100%, и в операционной системе не используются другие настройки масштабирования, необходимо тщательно проверить параметры подключения по RDP. При работе через RDP настройки разрешения можно изменить в параметрах подключения. Убедитесь, что там не задано какое-либо масштабирование или нестандартное разрешение, которое может влиять на отображение. Несоответствие настроек масштабирования (DPI) в операционной системе Windows у разработчика и у конечного пользователя — частая причина проблем, даже если разрешение экрана совпадает.

  2. Влияние RDP на передачу графики и обработку масштабирования:

    Протокол RDP оптимизирован для передачи графики по сети, но иногда он может по-своему интерпретировать параметры отображения, особенно при различных DPI-настройках клиента и сервера. Это может быть связано с особенностями передачи графики и обработки масштабирования в RDP-сессии. Убедитесь, что настройки масштабирования на удаленном компьютере, а также в самой RDP-сессии, также установлены на 100%. Изменение масштаба в 1С (начиная с 8.3.10 для управляемых форм) влияет только на экранную форму и привязано к конкретному пользователю, но для обычных форм на отображение влияют системные настройки масштаба Windows.

Диагностика и устранение конкретных проблем отображения

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

  1. Удаление кэша 1С:

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

  2. Проверка формы в конфигураторе на проблемном компьютере пользователя:

    Если у вас есть возможность, подключитесь к информационной базе (ИБ) на компьютере пользователя, где возникает проблема, и откройте конфигуратор под собой. Затем найдите и откройте проблемную форму в конфигураторе. Внимательно посмотрите, как она выглядит там. Это позволит нам исключить проблемы с локальными настройками клиента 1С или операционной системы, которые могут влиять на запуск клиентского приложения 1С:Предприятие.

  3. Тестирование под новым пользователем Windows:

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

  4. Настройка совместимости Windows для ярлыка запуска 1С:

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

    • Найти ярлык, который пользователь использует для запуска 1С.
    • Щелкнуть по нему правой кнопкой мыши и выбрать "Свойства".
    • Перейти на вкладку "Совместимость".
    • Поставить галочку "Переопределите режим масштабирования высокого разрешения".
    • В выпадающем списке выбрать пункт "Приложение". Это указывает Windows, как обрабатывать масштабирование для этого конкретного приложения, принуждая его к масштабированию на уровне приложения, а не системы.
  5. Использование функции "Восстановить положение окна":

    Иногда временным решением может быть использование команды "Восстановить положение окна" из контекстного меню самой формы (доступно по правой кнопке мыши на заголовке формы). Это может сбросить сохраненные размеры и положение окна, однако это не решает проблему кардинально и действует только для текущей формы, не предотвращая ее повторное появление.

Управляемые формы как альтернатива

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

  1. Управляемые формы отрисовываются платформой, а разработчик лишь дает рекомендации по расположению элементов, не задавая их жестко размеры и координаты. Это значительно упрощает адаптацию к различным условиям.
  2. Начиная с версии 8.3.7, в управляемых формах реализован новый механизм расстановки элементов и возможность быстрого просмотра формы в разных разрешениях прямо в конфигураторе, что существенно облегчает их тестирование и отладку.
  3. В управляемых формах также реализовано произвольное масштабирование в интерфейсе "Такси", что дает конечным пользователям дополнительную гибкость и возможность подстроить интерфейс под себя, не влияя на общие настройки системы.

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

← На главную