Имя: Пароль:
1C
1С v8
Программное изменение привязок элементов формы
,
0 moonlight
 
05.03.16
22:17
Добрый день!

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

изначальный вид формы:
http://clip2net.com/s/3vcXpmf

Надо:
http://clip2net.com/s/3vcXASe

при растяжении должно быть:
http://clip2net.com/s/3vcXJOj

В процедуре при открытии пишу:

ПоследнийЭлемент=ЭлементыФормы.СвойстваИЗначения;
    _ПервыйЭлемент = Неопределено;
    _ГраницаПервогоЭлемента = Неопределено;
    _ВторойЭлемент = Неопределено;
    _ГраницаВторогоЭлемента = Неопределено;
    ПоследнийЭлемент.ПолучитьПривязку(ГраницаЭлементаУправления.Низ, _ПервыйЭлемент, _ГраницаПервогоЭлемента, _ВторойЭлемент, _ГраницаВторогоЭлемента);
    ПоследнийЭлемент.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ПоследнийЭлемент, ГраницаЭлементаУправления.Верх);
    
    ШагВысота= ЭлементыФормы.НоменклатураГТД.Верх-ЭлементыФормы.ОтечественныйНеподакцизныйТовар.Верх;
    ЭтаФорма.Высота=ЭтаФорма.Высота+ШагВысота*6;

Здесь я открепляю нижний край ТЗ от нижнего края формы
и увеличиваю высоту форму

Результат:
http://clip2net.com/s/3vcYcBb

при изменении высоты формы  все как надо:
http://clip2net.com/s/3vcYhXA

но если я снова прикрепляю нижний край ТЗ к нижнему краю формы

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

ТО получаю следующее:
http://clip2net.com/s/3vcYtAm

Почему пропадает дополнительное пространство, которое образовалось после увеличения высоты??? Что не так делаю?
1 wertyu
 
05.03.16
22:21
свернуть
2 moonlight
 
05.03.16
22:30
(1) подробнее пожалуйста
3 wertyu
 
05.03.16
22:37
(2) у расширения панели есть свертка
4 moonlight
 
05.03.16
22:41
(3) я гляну, но я бы хотел просто понять как это свойство и на что влияет, Зачем оно нужно?
5 wertyu
 
05.03.16
22:46
ставишь панель, помещаешь на неё элементы формы, которые надо свернуть, нижнюю привязку панели делаешь к нижнему от панели элементу формы к верху или к низу формы
6 wertyu
 
05.03.16
22:47
к верху элемента*
если ниже элементов нет, то к низу формы*
7 moonlight
 
05.03.16
22:50
(6) ок. Но в моем примере нет Панелей. как тогда запретить Таблице значений заполнять пустое пространство?
8 wertyu
 
05.03.16
22:51
прямо - это "верх", обратно, если элементов нет, то "низ", если есть, то "нет"
9 wertyu
 
05.03.16
22:53
(7) ну ты туда что-то поместить хочешь и убирать?
10 moonlight
 
05.03.16
23:00
(9)
Вот добавляю код нового элемента после ТЗ (это -Последний Элемент):

// Реквизит дСерияПроизводителя
    Рекв=Метаданные().Реквизиты.дСерияПроизводителя;    
    Эталон=ЭлементыФормы.НадписьНаименование;
    
    НовыйЭлемент=ЭлементыФормы.Добавить(Тип("Надпись"),Рекв.Имя+"Надпись", Истина);
    
    НовыйЭлемент.Заголовок=Рекв.Синоним;
    НовыйЭлемент.Верх=300;
    НовыйЭлемент.Ширина=120;
    
    ЗаполнитьЗначенияСвойств(НовыйЭлемент, Эталон, "Лево, Высота");
    д1сУправлениеФормами.ЭлементФормы_КопироватьПривязки(
        НовыйЭлемент, ЭлементыФормы.СвойстваИЗначения, , Истина, , Истина);
    НовыйЭлемент.УстановитьПривязку(ГраницаЭлементаУправления.Верх, Панель, ГраницаЭлементаУправления.Низ);    
    НовыйЭлемент.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Панель, ГраницаЭлементаУправления.Низ);

а потом привязываю нижний край ТЗ к верхнему краю нового элемента

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

вот что получаю:
http://clip2net.com/s/3vd3wPp

Тз - ПоследнийЭлемент сново заполнило все до верхнего края командной нижней панели. Почему?
11 wertyu
 
05.03.16
23:03
НовыйЭлемент.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Панель, ГраницаЭлементаУправления.Верх);
12 moonlight
 
05.03.16
23:07
(11) так мне надо чтобы ТЗ была привязана к нижнему краю формы но оставался одинаковый по высоте пустой нижний участок! а в этом случае высота ТЗ не будет менятся.
13 moonlight
 
05.03.16
23:08
и что подразумевается под Панелью, ведь панелей нет в форме!
14 wertyu
 
05.03.16
23:09
(12) я не совсем понимаю цель, если разъяснишь
15 wertyu
 
05.03.16
23:11
не меняет размеров по высоте разделитель, он может быть любой высоты
16 moonlight
 
05.03.16
23:13
Есть форма в которой есть таблица значений (ТЗ) нижний край которой привязан в конфе к нижнему краю формы. Ниже только Командная панель. Я хочу между ТЗ и нижней командной панелью вставить несколько элементов , н при этом нижний край ТЗ должен оставаться прикреплен к нижнему краю формы. как это сделать программно?
17 wertyu
 
05.03.16
23:16
вставляешь ниже ТЗ панель и как в (5),(6)
18 moonlight
 
05.03.16
23:16
а без панели не обойтись?
19 wertyu
 
05.03.16
23:16
саму панель сворачиваешь или наоборот
20 wertyu
 
05.03.16
23:18
(18) можно и без панели у тебя использовать УФ стоит на конфе?
21 wertyu
 
05.03.16
23:18
сделай тогда УФ
22 moonlight
 
05.03.16
23:19
ну тогда почему когда в Конфе я добавляю пустое пространство между ТЗ и Нижней командной панелью то в режиме Предприятие все ок - ТЗ растягивается и внизу остается статичная по высоте добавленная пустая область? и панели не использую!
23 wertyu
 
05.03.16
23:19
там видимость или невидимость всё регулирует
24 moonlight
 
05.03.16
23:20
а программно этим можно управлять?
25 wertyu
 
05.03.16
23:21
(22) зачем тебе это пространство?
26 wertyu
 
05.03.16
23:21
(24) УФ?
27 moonlight
 
05.03.16
23:21
чтобы потом туда новые элементы вставить
28 moonlight
 
05.03.16
23:22
обычные формы
29 wertyu
 
05.03.16
23:22
(27) да тебе не надо обэтом вообще переживать - вставляй
30 wertyu
 
05.03.16
23:24
только есть правило для табличного поля или там поля дока - растягивать при привязки
ты универсальную форму что ли рисуешь?
31 moonlight
 
05.03.16
23:24
так вставляю и ожидаю что нижний край ТЗ упрется в верхний край первого нового элемента, а фиг - ТЗ увеличивается вертикально и упирается в верх командной панели!
32 wertyu
 
05.03.16
23:25
а обновляешь?
33 moonlight
 
05.03.16
23:25
ну я же в начале вопроса вроде в картинках четко объяснил чего жду и что получается
34 moonlight
 
05.03.16
23:25
зачем обновлять и что обновлять?
35 wertyu
 
05.03.16
23:26
форму
36 wertyu
 
05.03.16
23:26
ты добавил элемент, изменил привязки, нажми кнопку обновить
37 moonlight
 
05.03.16
23:28
да зачем нажимать кнопку обновить, я же программно рисую их в событии ПриОткрытии формы
38 wertyu
 
05.03.16
23:29
(37) попробуй
39 moonlight
 
05.03.16
23:30
ладно.. вопрос снят, спасибо
40 wertyu
 
05.03.16
23:33
зачем, есть команда Обновить()