Многие специалисты столкнулись с неприятной ситуацией после перехода на платформу версии 8.3.15: стандартные диалоговые окна (выбор из списка, ввод даты, ввод числа или строки) стали отображаться крайне некорректно. Окна выглядят «сжатыми» или «скукоженными», их содержимое практически не читается, а размеры не позволяют комфортно работать с данными. Проблема носит массовый характер и затрагивает всех пользователей базы данных.
В этой статье мы подробно разберем причины возникновения этой ошибки и проанализируем все доступные способы решения — от простых настроек интерфейса до программных методов обхода бага.
Проанализируем ситуацию: данная проблема официально признана ошибкой разработчиков платформы 1С. Она связана с некорректным алгоритмом расчета геометрических параметров вспомогательных окон в интерфейсе «Такси». Ошибка проявляется преимущественно на мониторах с высоким разрешением (High DPI) или при использовании системного масштабирования Windows (например, 125% или 150%). Платформа просто «забывает» правильно вычислить отступы и размеры элементов управления, из-за чего форма сворачивается до минимально возможных размеров.
Самый правильный и надежный способ — это обновление технологической платформы. Рассмотрим подробнее, на какие версии стоит ориентироваться. По сообщениям пользователей и официальным данным, версии 8.3.15.1489 и 8.3.15.1501 еще содержат этот дефект в той или иной степени (например, форма даты может починиться, а форма выбора из списка — нет).
Для полного устранения проблемы выполним следующие действия:
Иногда даже после обновления платформы формы продолжают открываться в «сжатом» виде. Это происходит из-за того, что 1С сохраняет последние настройки окон (размер и положение) в локальных файлах профиля пользователя. Разберем по шагам, как произвести очистку этих данных:
Рассмотрим вариант ручного удаления настроек интерфейса. Для этого необходимо перейти в каталог профиля пользователя Windows (обычно это %AppData%\1C\1cv8). Внутри папок с идентификаторами информационных баз нас интересуют файлы с расширением .lst.
Важный момент: за хранение настроек окон отвечают файлы v8ccsu.lst и v8uapp.lst. Если их удалить, 1С при следующем запуске создаст их заново с параметрами по умолчанию, что заставит форму отрисоваться в стандартном размере.
Также полезно выполнить полную очистку кэша. Для этого в окне списка информационных баз выберем нужную базу, нажмем «Изменить», скопируем адрес, затем удалим базу из списка и добавим её заново. Это гарантированно создаст новую папку кэша.
Если по каким-то причинам оперативно обновить платформу невозможно (например, из-за жестких требований корпоративной политики), применим «костыль» — программную имитацию нажатия клавиш для изменения размера окна. Суть метода заключается в вызове системной комбинации клавиш сразу после открытия списка выбора.
Разберем пример кода, который можно вставить в обработчик события открытия формы или в то место, где вызывается ПоказатьВыборИзСписка:
Шелл = Новый COMОбъект("WScript.Shell");
// Имитируем нажатие комбинации Alt + Shift + R для восстановления размера
Шелл.SendKeys("%+R");
Этот метод заставляет Windows принудительно перерисовать активное окно. Стоит учитывать, что данный способ работает только в операционной системе Windows и требует наличия прав на создание COM-объектов.
Выясним, как можно повлиять на ситуацию на уровне настроек операционной системы. Если платформа 1С некорректно взаимодействует с масштабированием Windows, мы можем передать управление масштабированием самому приложению.
1cv8.exe (обычно находится в папке C:\Program Files\1cv8\номер_версии\bin\).Этот метод часто помогает «раскрыть» формы, так как платформа перестает пытаться подстроиться под системные настройки шрифтов Windows и использует свои внутренние механизмы отрисовки.
Проанализируем еще один встроенный механизм 1С — очистку настроек пользователя непосредственно из интерфейса программы. Если проблема наблюдается у конкретного пользователя, выполним следующие действия:
Этот способ более безопасен, чем ручное удаление файлов из профиля, так как не затрагивает другие параметры работы пользователя.
В некоторых случаях поведение форм меняется при переключении режима внешнего вида. Посмотрим на этот параметр в меню «Настройки» — «Параметры» — «Внешний вид». Попробуйте переключиться с режима «Формы в закладках» на «Формы в отдельных окнах» или изменить плотность интерфейса с «Обычной» на «Компактную». При смене этих режимов платформа пересчитывает алгоритмы отрисовки вспомогательных окон, что может привести к корректному отображению списка выбора.
Подведем итог: наиболее эффективным решением является обновление платформы до версии 8.3.15.1830 или выше. Если это не помогает сразу, обязательно выполните очистку настроек окон в профиле пользователя или через интерфейс программы. Использование SendKeys и настроек DPI — это крайние меры, которые стоит применять только при невозможности обновления.