Как исправить проблему с высотой выпадающего списка в обычных формах на платформе 8.3.10 и выше?

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

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

Анализируем причины возникновения проблемы

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

Выясним причину глубже: это происходит из-за конфликта устаревших описаний объектов метаданных с новыми алгоритмами отрисовки. Элементы, созданные в версиях 8.1 или 8.2, несут в себе «старые» параметры стилей, которые новая платформа интерпретирует некорректно. Проанализируем основные методы решения этой задачи, от простых настроек до «шаманских» методов.

Способ 1. Изменение системных стилей конфигурации

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

  1. Откроем конфигуратор и перейдем в дерево метаданных.
  2. Найдем ветку Общие, а в ней раздел Стили.
  3. Откроем основной стиль конфигурации (обычно он называется Основной).
  4. Найдем свойство Фон кнопки (ButtonBackgroundColor).
  5. Проанализируем его значение. Если там указано конкретное числовое значение цвета (RGB), это может быть причиной сбоя.
  6. Изменим значение на стандартное системное — выберем из списка стиль: Фон кнопки.

Иногда помогает даже простое временное удаление стиля из свойств всей конфигурации с последующим его возвращением. Это заставляет платформу пересчитать визуальные параметры элементов управления.

Способ 2. Использование свойства «Быстрый выбор»

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

Разберем настройку элемента:

  1. Зайдем в свойства проблемного поля ввода на обычной форме.
  2. Найдем флажок Быстрый выбор (QuickChoice) и установим его в значение Истина.
  3. Проверим работу формы в режиме «Предприятие».

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

Способ 3. Пересоздание элемента управления («Метод нового объекта»)

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

Проанализируем алгоритм действий:

  1. Откроем форму в конфигураторе.
  2. Создадим рядом с проблемным полем новое ПолеВвода.
  3. Вручную перенесем все параметры (Данные, События, Тип значения) со старого элемента на новый. Важно: не копируйте старый элемент через Ctrl+C/Ctrl+V, так как вы скопируете и «проблемные» скрытые свойства. Нужно именно создать новый объект из панели инструментов.
  4. Удалим старое поле и установим новое на его место.

Этот метод работает, потому что при создании нового объекта платформа записывает в файл формы актуальную структуру параметров, совместимую с текущим графическим движком. Дизайн кнопок при этом может измениться на «современный», но высота списка станет корректной.

Способ 4. Настройка режима совместимости и масштабирования

Часто проблема усугубляется настройками операционной системы. Рассмотрим влияние масштабирования DPI:

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

Также стоит проверить Режим совместимости конфигурации. Если ваша конфигурация работает в режиме совместимости с 8.2.13 или 8.2.16, переход на режим Не использовать или 8.3.10 может полностью устранить проблему отрисовки, так как изменятся глобальные правила рендеринга форм.

Групповое исправление для разработчиков

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

  1. Выгрузим конфигурацию в файлы XML через стандартную функцию 1С.
  2. Используя текстовый редактор или скрипт (например, на Python или PowerShell), найдем в файлах форм описания InputField.
  3. Проанализируем параметры стилей и шрифтов. Зачастую достаточно «освежить» описание версии формата или сбросить жестко заданные параметры высоты.
  4. Загрузим конфигурацию обратно из файлов XML.

Это заставит платформу принудительно обновить внутренние кэши форм и привести их к единому стандарту отрисовки, актуальному для версии 8.3.10 и выше.

Резюме

Проанализировав все доступные варианты, можно сделать вывод: проблема с высотой списка — это следствие технологического разрыва между старым дизайном обычных форм и новым ядром платформы. Наиболее стабильным решением является исправление стиля «Фон кнопки» или полное пересоздание элементов на форме. Использование режима «Быстрый выбор» является хорошим временным решением, если количество элементов в списке невелико.

← На главную