Имя: Пароль:
1C
1С v8
Установить привязки программно
0 mzelensky
 
29.08.11
12:26
Читаю СП, но чет один момент не догоняю.
Имеется форма, на ней (по порядку сверху вниз): табличное поле(ВнешнийОтбор), разделитель (Разделитель1) и табличный документ (Результат). Хочу чтобы по нажатии на кнопку табличное поле схлопывалось и табличный документ растягивался на всю форму. Делаю:

Элементыформы.ДействияФормы.Кнопки.Действие6.пометка=не Элементыформы.ДействияФормы.Кнопки.Действие6.пометка;
   
   Если Элементыформы.ДействияФормы.Кнопки.Действие6.пометка тогда
       //Элементыформы.ВнешнийОтбор.Видимость=истина;    
       Элементыформы.ВнешнийОтбор.Свертка=РежимСверткиЭлементаУправления.Нет;
       Элементыформы.Разделитель1.Свертка=РежимСверткиЭлементаУправления.Нет;
   Иначе
       //Элементыформы.ВнешнийОтбор.Видимость=ложь;
       Элементыформы.ВнешнийОтбор.Свертка=РежимСверткиЭлементаУправления.Верх;
       Элементыформы.Разделитель1.Свертка=РежимСверткиЭлементаУправления.Верх;
   
   КонецЕсли;


Так у меня по кнопке сворачивается и разворачивается табличное поле (внешний отбор) и разделитель (Разделитель1). Как теперь установить привязки, чтобы табличный документ растянулся вверх ???
1 mzelensky
 
29.08.11
12:28
Согласно СП:

Расширение элементов управления, расположенных на панели
УстановитьПривязку (SetLink)
Синтаксис:
УстановитьПривязку(<Граница>, <Первый элемент>, <Граница первого элемента>, <Второй элемент>, <Граница второго элемента>)
Параметры:
<Граница> (обязательный)
Тип: ГраницаЭлементаУправления. Граница элемента управления, для которой устанавливается привязка.
<Первый элемент> (необязательный)
Элемент управления, к которому будет жестко привязана указанная граница.
<Граница первого элемента> (необязательный)
Тип: ГраницаЭлементаУправления. Граница первого элемента управления, к которой будет жестко привязана указанная граница.
<Второй элемент> (необязательный)
Элемент управления, для пропорциональной привязки к нему указанной границы.
<Граница второго элемента> (необязательный)
Тип: ГраницаЭлементаУправления. Граница второго элемента, к которой будет пропорционально привязана указанная граница.



нужно указать :

вторым параметром ЭЛЕМЕНТ ФОРМЫ, к которому нужно привязаться....но мне то, по идее, нужно привязаться к ФОРМЕ...а она этого не дает... :( подскажите КАК?
2 Mort
 
29.08.11
12:29
Там с бубном надо поплясать, чтобы привязки отработали хорошо. Влом щас искать.
3 Bolik1979
 
29.08.11
12:29
"ОсновнаяПанель" вроде бы
4 mzelensky
 
29.08.11
12:31
Причем привязаться к разделителю обратно получается:

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

а вот растянуть табличный док на всю форму не выходит:

Элементыформы.Результат.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Элементыформы.ДействияФормы,ГраницаЭлементаУправления.Низ );
5 Кроха
 
29.08.11
12:31
либо разделитель убери, либо программно его перепривязывай
6 Bolik1979
 
29.08.11
12:33
(3) Ошибся - "Панель" просто

Форма.Панель (Form.Panel)
Форма (Form)
Панель (Panel)
Использование:

Только чтение.
Описание:

Тип: Панель.
Содержит главную панель формы.

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

Толстый клиент.
7 mzelensky
 
29.08.11
12:34
(5) я его тоже свернул (разделитель):

Если Элементыформы.ДействияФормы.Кнопки.Действие6.пометка тогда
       //Элементыформы.ВнешнийОтбор.Видимость=истина;        
       Элементыформы.Результат.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Элементыформы.Разделитель1,ГраницаЭлементаУправления.Низ );
               
       Элементыформы.ВнешнийОтбор.Свертка=РежимСверткиЭлементаУправления.Нет;
       Элементыформы.Разделитель1.Свертка=РежимСверткиЭлементаУправления.Нет;
   Иначе
       //Элементыформы.ВнешнийОтбор.Видимость=ложь;
       Элементыформы.ВнешнийОтбор.Свертка=РежимСверткиЭлементаУправления.Верх;
       Элементыформы.Разделитель1.Свертка=РежимСверткиЭлементаУправления.Верх;
       
       Элементыформы.Результат.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Элементыформы.ДействияФормы,ГраницаЭлементаУправления.Низ );
   КонецЕсли;
8 Кроха
 
29.08.11
12:35
v8: Установить приязку тут что-то было
9 mzelensky
 
29.08.11
12:42
(8) кажись помогло!
10 Axel2009
 
29.08.11
12:43
(7) привязки нужно устанавливать у 2х элементов.. разделитель верхнюю границу нужно привязывать к верхней границе формы тоже..
11 mzelensky
 
29.08.11
13:03
Короче я не знаю почему, но работает вот так:

Если Элементыформы.ДействияФормы.Кнопки.Действие6.пометка тогда //РАЗВОРАЧИВАЕМ
       Элементыформы.Разделитель1.Свертка=РежимСверткиЭлементаУправления.Нет;        
       Элементыформы.ВнешнийОтбор.Свертка=РежимСверткиЭлементаУправления.Нет;
       
       Элементыформы.Разделитель1.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Элементыформы.Разделитель1,ГраницаЭлементаУправления.Низ );
       Элементыформы.Разделитель1.УстановитьПривязку(ГраницаЭлементаУправления.Низ,Элементыформы.Результат,ГраницаЭлементаУправления.Верх );
       
       Элементыформы.ВнешнийОтбор.УстановитьПривязку(ГраницаЭлементаУправления.Верх, Элементыформы.ДействияФормы,ГраницаЭлементаУправления.Низ);
       Элементыформы.ВнешнийОтбор.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Элементыформы.Разделитель1,ГраницаЭлементаУправления.Верх );
   Иначе  //СВОРАЧИВАЕМ
       Элементыформы.ВнешнийОтбор.УстановитьПривязку(ГраницаЭлементаУправления.Низ);
       Элементыформы.Разделитель1.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Элементыформы.ВнешнийОтбор,ГраницаЭлементаУправления.Низ );
       
       Элементыформы.ВнешнийОтбор.Свертка=РежимСверткиЭлементаУправления.Верх;
       Элементыформы.Разделитель1.Свертка=РежимСверткиЭлементаУправления.Верх;
   КонецЕсли;


В общем...по принципу - если работает, то лучше не трогать :)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший