Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Программное изменение привязок элементов формы

Программное изменение привязок элементов формы
Я
   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

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

// Реквизит дСерияПроизводителя

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.