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

Версия для печатиPDF-версия

В неуправляемой форме имеются панели управления.

Например, снизу.

В палитре свойств имеются поля где отражаются значения высоты, ширины, расположения.

Так же, подобные параметры у полей и прочих элементов…

 

Скажите, пожалуйста, ими можно управлять программно?

Ну, вставляя в определенные процедуры, чтобы размеры и положение элементов изменялись, в зависимости от выполнения условия…

Нашел следующее:


ЭлементыФормы.Поле1.Ширина = 120;
ЭлементыФормы.Поле1.Высота = 200;
ЭлементыФормы.Поле1.Видимость = Ложь; 

 Прикольно, а есть возможность вообще убирать из формы?

Т.е. не делать невидимым, а отключать – как будто его там и не было?

И еще вопрос:

Программно возможно создавать поля и объекты на форме, с заданными координатами и Высотой, шириной и т.д.?

Пробовал изменением высоты (присвоить высоту 1, или Ноль, но менее 19 задать не могу.

 

Удалить объекты с формы программно нельзя. Да и зачем это? Достаточно сделать его невидимым. Он мешать не будет. Можно перекрыть его другим объектом.

Добавить новые элементы можно с помощью метода Добавить объекта ЭлементыФормы. Информация из синтакс-помощника:


ЭлементыФормы (Controls)

Добавить (Add)

Синтаксис:

Добавить(<Тип>, <Имя>, <Видимость>, <ПоместитьНа>)

Параметры:

<Тип> (обязательный)

Тип: Тип.
Тип добавляемого элемента управления:
Индикатор; ПолеКалендаря; Кнопка; КоманднаяПанель; Надпись; Панель; Переключатель; ПолеТабличногоДокумента; ПолеHTMLДокумента; ПолеТекстовогоДокумента; ПолеВвода; ПолеВыбора; ПолеСписка; ПолеКартинки; ПолосаРегулирования; Разделитель; РамкаГруппы; ТабличноеПоле; Флажок; ПолеГрафическойСхемы; ПолеГеографическойСхемы.

<Имя> (обязательный)

Тип: Строка.
Имя создаваемого элемента управления. Имя должно быть указано в соответствии с правилами написания имен системы 1С:Предприятие 8. В противном случае выполнение метода вызовет исключение.

<Видимость> (необязательный)

Тип: Булево.
Определяет, создавать новый элемент управления формы видимым или нет. Истина - элемент создается видимым.
Значение по умолчанию: Истина.

<ПоместитьНа> (необязательный)

Тип: Панель; ПолеТабличногоДокумента.
Определяет, какой панели формы или какому табличному документу принадлежит создаваемый элемент. Если указана панель, то добавляемый элемент размещается на текущей странице панели. Если не указан, создаваемый элемент будет принадлежать непосредственно форме.

Возвращаемое значение:

Элемент управления формы.

Описание:

Добавляет элемент управления на форму.

Доступность:

Толстый клиент.

Пример:

// Расположим на странице табличное поле

ПолеРегистра = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), 
        СтрокаТаблицы.Имя, 
        Истина, 
        ЭлементыФормы.ОсновнаяПанель);
ПолеРегистра.Данные = "ДокументОбъект.Движения." + СтрокаТаблицы.Имя;

Если НЕ ЭтоНовый() Тогда
    ПолеРегистра.Значение.Прочитать();
КонецЕсли; 

ПолеРегистра.Верх = 30;
ПолеРегистра.Лево = 6;
ПолеРегистра.Ширина = ЭлементыФормы.ОсновнаяПанель.Ширина - 14;
ПолеРегистра.Высота = ЭлементыФормы.ОсновнаяПанель.Высота - 56;
ПолеРегистра.ТолькоПросмотр = Ложь;
ПолеРегистра.ИзменятьПорядокСтрок = Истина;
ПолеРегистра.ИзменятьСоставСтрок = Истина;

ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Верх,
        КоманднаяПанельРегистра,
        ГраницаЭлементаУправления.Низ);
ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Низ,
        ЭлементыФормы.ОсновнаяПанель,
        ГраницаЭлементаУправления.Низ);
ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Право,
        ЭлементыФормы.ОсновнаяПанель,
        ГраницаЭлементаУправления.Право);

ПолеРегистра.СоздатьКолонки();

Если Метаданные.РегистрыНакопления[СтрокаТаблицы.Имя].ВидРегистра =     Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда

    КолонкаВидДвижения = ПолеРегистра.Колонки.Вставить(1, "Вид движения");
    КолонкаВидДвижения.Имя = "ВидДвиженияРегистраНакопления";
    КолонкаВидДвижения.УстановитьЭлементУправления(Тип("ПолеВвода"));
    КолонкаВидДвижения.Данные = "ВидДвижения";
    КолонкаВидДвижения.ЭлементУправления.КнопкаВыбора = Истина;
    КолонкаВидДвижения.ЭлементУправления.ВыбиратьТип = Ложь;

КонецЕсли;

ПолеРегистра.Колонки.Регистратор.Видимость = Ложь;
ПолеРегистра.Колонки.Период.Видимость      = Ложь;
ПолеРегистра.Колонки.НомерСтроки.Видимость = Ложь;

 

Спасибо.

В ближайшее время проверю на практике.

Есть задумка...

О результатах отпишусь.