Как изменить размер и высоту многострочного поля ввода на управляемой форме 1С?

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

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

Выясним причину поведения платформы

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

Способ 1. Явная настройка свойств элемента в Конфигураторе

Рассмотрим основной и самый простой способ изменения визуального размера поля ввода непосредственно в панели свойств элемента формы:

  1. Откроем управляемую форму в конфигураторе и выберем нужный элемент с видом Поле ввода.
  2. В палитре свойств найдем свойство АвтоМаксимальнаяВысота и установим его в значение Ложь. Это снимет стандартное ограничение платформы на максимальный размер элемента.
  3. В свойстве Высота укажем желаемое количество строк текста (например, установим значение 2, 3 или больше в зависимости от требований к интерфейсу).
  4. Если необходимо, чтобы поле неограниченно увеличивалось по вертикали при изменении размеров самого окна, убедимся, что свойство МаксимальнаяВысота равно 0.

Способ 2. Настройка вертикального растягивания элемента и контейнеров

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

  1. Перейдем в свойства поля ввода и установим свойство РастягиватьПоВертикали в значение Да.
  2. Проверим все вышестоящие группы, в которые вложен элемент. Для каждой родительской группы свойство РастягиватьПоВертикали должно быть установлено в Авто или Да, а свойство АвтоМаксимальнаяВысота — отключено (значение Ложь).
  3. Учтем ограничение платформы: если многострочное поле расположено в горизонтальной группе вместе с другими элементами, его вертикальный размер будет ограничен максимальной высотой соседних элементов этой группы.

Способ 3. Программная установка размеров формы

Посмотрим на пример управления размерами элемента формы из кода. Настройку свойств поля можно выполнить динамически при открытии формы в обработчике ПриСозданииНаСервере:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Отключаем ограничение платформы по высоте
	Элементы.ИмяПоляВвода.АвтоМаксимальнаяВысота = Ложь;
	
	// Задаем явную высоту элемента в строках
	Элементы.ИмяПоляВвода.Высота = 3;
	
	// Разрешаем вертикальное растягивание
	Элементы.ИмяПоляВвода.РастягиватьПоВертикали = Истина;
	
КонецПроцедуры

Способ 4. Сброс пользовательских настроек формы

Если все свойства в конфигураторе установлены верно, но в режиме «1С:Предприятие» поле ввода по-прежнему остается маленьким, причиной могут быть сохраненные настройки интерфейса пользователя. Платформа запоминает персональные изменения формы, сделанные ранее, и превалирует над настройками из конфигуратора.

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

← На главную