Имя: Пароль:
1C
1С v8
ОФ. Программно растянуть форму вниз.
0 withoutname
 
29.01.20
17:34
Имеется форма Контрагента в УПП. Необходимо на вкладку Счета и договоры внизу добавить еще одно табличное поле (ТП).
Собственно в процедуре ПриОткрытии указываю
ЭтаФорма.Высота = ЭтаФорма.Высота + 100;
Добавляю свое ТП, но такое состояние как будто форма не растягивается, т.к. ТП залазиет на таблицу выше...
Привязки все снимаю у таблиц Банковские счета, Договоры контрагентов (+ее ком панель), разделитель...

Интерактивно снял галку в свойствах формы "Исп. только видимую область"

Как правильно растянуть форму?

<IMG SRC="http://i.prntscr.com/cQ6E2-dyThid7LA6rKj8eg.png">;
</IMG>
1 withoutname
 
29.01.20
17:34
2 Ёпрст
 
гуру
29.01.20
17:43
воткнуть разделитель
3 Ёпрст
 
гуру
29.01.20
17:44
к нему привязаться и оно само  растянется
4 withoutname
 
29.01.20
17:54
(2) после таблицы Договоры контрагентов? И сам разделитель соответственно привязать к ней?
5 withoutname
 
30.01.20
10:35
(3) что-то не получается...
http://i.prntscr.com/1KlRMFLPQImkFYX5CBxngQ.gif


// отключаем привязки у верхних элементов
    ТабличноеПоле = ЭлементыФормы.БанковскиеСчета;
    ТабличноеПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
    
    Разделитель = ЭлементыФормы.Разделитель1;
    Разделитель.УстановитьПривязку(ГраницаЭлементаУправления.Верх);
    Разделитель.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
    
    РамкаГруппы = ЭлементыФормы.РамкаГруппыДоговоры;
    РамкаГруппы.УстановитьПривязку(ГраницаЭлементаУправления.Верх);
    РамкаГруппы.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
    
    КоманднаяПанель = ЭлементыФормы.КоманднаяПанельДоговоры;
    КоманднаяПанель.УстановитьПривязку(ГраницаЭлементаУправления.Верх);
    КоманднаяПанель.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
    
    ТабличноеПолеДог = ЭлементыФормы.Договоры;
    //ТабличноеПолеДог.УстановитьПривязку(ГраницаЭлементаУправления.Верх);
    //ТабличноеПолеДог.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
    
    ЭтаФорма.Высота = ЭтаФорма.Высота + 100;
    
    ЭлементыФормы.Панель.ТекущаяСтраница = ЭлементыФормы.Панель.Страницы.СчетаИДоговоры;
    
    Разделитель = ЭлементыФормы.Добавить(Тип("Разделитель"), "РазделительДПФ",, ЭлементыФормы.Панель);
    Разделитель.Верх = ТабличноеПолеДог.Верх + ТабличноеПолеДог.Высота + 10;
    Разделитель.Высота = 6;
    Разделитель.Ширина = 577;
    Разделитель.Лево = 6;
    Разделитель.УстановитьПривязку(ГраницаЭлементаУправления.Верх, ЭлементыФормы.Договоры, ГраницаЭлементаУправления.Низ);
    Разделитель.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ЭтаФорма.Панель, ГраницаЭлементаУправления.Верх, ЭлементыФормы.Договоры, ГраницаЭлементаУправления.Верх);
    Разделитель.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭтаФорма.Панель, ГраницаЭлементаУправления.Право);
    //ЭлементыФормы.Панель.Высота = ЭлементыФормы.Панель.Высота + 100;
    //ЭлФормы = ЭлементыФормы.НадписьКомментарий;
    //ЭлФормы.УстановитьПривязку(ГраницаЭлементаУправления.Верх);
    //ЭлФормы.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
    //ЭлФормы.Верх = ЭлФормы.Верх + 300;
    //ЭлФормы = ЭлементыФормы.КомментарийСтрокой;
    //ЭлФормы.УстановитьПривязку(ГраницаЭлементаУправления.Верх);
    //ЭлФормы.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
    //ЭлФормы.Верх = ЭлФормы.Верх + 300;
    
    ТабличноеПолеДог.УстановитьПривязку(ГраницаЭлементаУправления.Верх);
    ТабличноеПолеДог.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ЭлементыФормы.РазделительДПФ, ГраницаЭлементаУправления.Верх);
    
    ТабличноеПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"ДоговораПФ",Истина,ЭлементыФормы.Панель);
    //
    //ТабличноеПоле.УстановитьДействие("ПередНачаломДобавления",Новый Действие("СобытияПередНачаломДобавления"));
    //ТабличноеПоле.УстановитьДействие("ПриВыводеСтроки",Новый Действие("СобытияПриВыводеСтроки"));
    //
    ТабличноеПоле.Данные = "ДоговораПФ";
    ТабличноеПоле.Верх = ТабличноеПолеДог.Верх + ТабличноеПолеДог.Высота + 20;
    //ТабличноеПоле.Высота = 350;
    ТабличноеПоле.Ширина = 577;
    ТабличноеПоле.Лево = 6;
    
    ТабличноеПоле.УстановитьПривязку(ГраницаЭлементаУправления.Верх,ЭлементыФормы.РазделительДПФ,ГраницаЭлементаУправления.Низ);
    ТабличноеПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ЭтаФорма.Панель,ГраницаЭлементаУправления.Низ);
6 Ёпрст
 
гуру
30.01.20
12:56
(5) можно и без разделителя..
вот это воткни в код

Разделитель.Свертка = РежимСверткиЭлементаУправления.Нет;
    ЭлементыФормы.Панель.Свертка = РежимСверткиЭлементаУправления.Нет;
7 withoutname
 
30.01.20
14:47
хотел пойти с другой стороны, подвинуть поля к верху...
если просто изменяю верх у разделителя, все красиво автоматом сдвигается
но когда я меняю высоту таблицы Договоры, все корежится...


СдвигВысота = 50;
Разделитель = ЭлементыФормы.Разделитель1;
Разделитель.Верх = Разделитель.Верх - СдвигВысота;
ТабличноеПолеДог = ЭлементыФормы.Договоры;
ТабличноеПолеДог.Высота = ТабличноеПолеДог.Высота - СдвигВысота;
8 Ёпрст
 
гуру
31.01.20
10:34
(7) на вот, занимайся
https://cloud.mail.ru/public/3at8/27FKZqFot

ЗЫ: там надо еще раз высоту контролов задавать, ибо при добавлении и привязки она "растягивается" и размер меняется.
В общем, играйся
9 withoutname
 
03.04.20
15:13
(8) Опять актуально ) в этом примере форма уже открыта, а надо чтобы ПриОткрытии растягивалась форма
10 Mraque
 
03.04.20
15:42
Могу рассказать как это сделано у нас на примере документа "Поступление товаров и услуг":
1) В свойствах формы документа необходимо снять галки "Использовать выравнивающие линии" и "Исп. только видимую область"
2) Далее код, у нас он находится в процедуре общего модуля, в которой рисуются все дополнительные реквизиты программно

Увеличиваем высоту формы и положение нижней панели с кнопками:
ФормаОбъекта.Высота = ФормаОбъекта.Высота + 25;
ЭлементыФормы.ОсновныеДействияФормы.Верх = ЭлементыФормы.ОсновныеДействияФормы.Верх + 25;

При необходимости сдвигаем элементы вниз:

ЭлементыФормы.НадписьКомментарий.Верх = ЭлементыФормы.НадписьКомментарий.Верх + 25;
ЭлементыФормы.Комментарий.Верх = ЭлементыФормы.Комментарий.Верх + 25;

Далее программно добавляем свой элемент на нужную позицию и программно устанавливаем для него привязки.
11 withoutname
 
03.04.20
16:04
(10) свойства формы снимаются вручную?
12 withoutname
 
06.04.20
16:35
Народ, ну подскажите ...
13 withoutname
 
06.04.20
16:47
(10) Я когда добавляю высоту формы, у меня верхние элементы не также спускаются...
14 withoutname
 
06.04.20
16:59
(13) Ну вроде получается. Сначала добавляю высоты формы, потом нижние элементы сдвигаю вверх, благо их пока не много ...

Всем Спасибо )))
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан