При переходе на новые версии платформы 1С, например, с 8.3.10 на 8.3.17, разработчики часто сталкиваются с неожиданными изменениями в поведении управляемых форм. Одна из самых распространенных проблем — элементы, которые раньше занимали всю доступную ширину окна, вдруг "сжимаются" и прижимаются к левому краю, оставляя справа пустое пространство. Давайте подробно разберемся, почему так происходит и какие существуют способы это исправить.
Проанализируем типичную ситуацию: у нас есть документ с группой страниц, внутри которой расположены таблицы (например, список товаров). После обновления платформы эта группа перестает растягиваться по горизонтали, хотя в свойствах у нее и у родительской формы установлены корректные параметры растягивания. Очистка кэша, как правило, не помогает.
Основная причина такого поведения кроется в эволюции платформы 1С. Начиная примерно с релиза 8.3.15, были внесены существенные изменения в механизм отрисовки и позиционирования элементов на управляемых формах. Целью этих изменений была лучшая адаптация интерфейса к разным разрешениям экранов и настройкам масштабирования Windows (DPI). В результате этих нововведений старые настройки форм стали интерпретироваться по-новому, что и привело к "сломанной" верстке в некоторых случаях.
Рассмотрим несколько эффективных способов решения этой проблемы.
Это решение оказалось самым действенным для автора исходной проблемы. Суть в том, что хотя вы и обновили саму платформу 1С, ваша конфигурация продолжает работать в режиме совместимости со старой версией. Платформа пытается эмулировать поведение старого движка форм, но эта эмуляция не всегда бывает идеальной.
Когда вы повышаете режим совместимости, вы даете команду платформе использовать новые, актуальные алгоритмы для отрисовки форм. Это часто исправляет проблемы с "растягиванием" элементов.
Разберем по шагам, как это сделать:
Режим совместимости. Скорее всего, там будет установлено старое значение, например, «Версия 8.3.6».Обратите внимание: изменение режима совместимости — это серьезное действие, которое может повлиять на другие механизмы в вашей конфигурации. После такого изменения необходимо провести тщательное тестирование функциональности, особенно если у вас нетиповая или сильно доработанная конфигурация.
Это второй, не менее важный, механизм, который появился в новых версиях платформы. Свойство АвтоМаксимальнаяШирина было добавлено специально для того, чтобы поля ввода (например, «Наименование» или «Комментарий») не растягивались на всю ширину экрана, если форма очень широкая. Это улучшает читаемость данных.
Проблема в том, что после обновления платформы это свойство для многих существующих полей может быть автоматически установлено в значение Истина, что и приводит к их сжатию.
Как исправить отображение с помощью этого свойства:
АвтоМаксимальнаяШирина.Истина), снимите её (установите в Ложь).Стоит отметить, что свойство АвтоМаксимальнаяШирина есть не у всех типов элементов. Например, у элемента Группа - Страницы его может не быть. В этом случае нужно проверять наличие этого свойства у вложенных в страницы элементов — таблиц, полей и их родительских групп.
Это более радикальный метод, который стоит применять, если первые два способа не помогли. Иногда при "скачке" через несколько версий платформы внутреннее представление свойств элемента в конфигурации может повредиться или содержать устаревшие данные.
Процесс выглядит так:
Когда вы создаете элемент «с нуля», платформа гарантированно прописывает для него все свойства в соответствии со стандартами текущей версии, что часто решает проблему.
В заключение, проблема с растягиванием элементов после обновления платформы 1С — это известное и решаемое явление. Начинать стоит с проверки и повышения режима совместимости, так как это наиболее комплексное решение. Если оно не помогло или неприменимо, точечная настройка свойства АвтоМаксимальнаяШирина для нужных полей почти наверняка исправит внешний вид вашей формы.