Имя: Пароль:
1C
1С v8
Программное создание кнопок меню
,
0 totparen
 
19.03.12
11:59
Ребята подскажите как мне повесить на каждую кнопку процедуру? Я не могу определить на какую кнопку было нажатие.


ИндексТЗ = 0;
Для каждого лТелефон Из ТаблицаТелефонов Цикл
   ПредставлениеТелефона = лТелефон.Представление;
   
   НоваяКнопка = ЭлементыФормы.ДействияФормы.Кнопки.ЗвонокПоСкайпу.Кнопки.Добавить("Звонок_" + ИндексТЗ,
       ТипКнопкиКоманднойПанели.Действие, ПредставлениеТелефона, Новый Действие("Позвонить"));
   ИндексТЗ = ИндексТЗ + 1;
КонецЦикла;
1 Ненавижу 1С
 
гуру
19.03.12
12:00
(0) либо разные действия вешай, либо определяйся по имени кнопки (объект кнопка - передается как аргумент в событии)
2 totparen
 
19.03.12
12:03
(1) как мне повешать разные действия, если количество кнопок не известно?

Пожалуй можно настряпать десяток процедур, про запас...
3 Ненавижу 1С
 
гуру
19.03.12
12:04
(2) тогда только анализировать имя кнопки
4 totparen
 
19.03.12
12:09
А можно получить как-то имя кнопки? Как это сделать, если процедура вызывается без всякого параметра (Процедура Звонок();)
5 totparen
 
19.03.12
12:10
Правильней будет сказать не вызывается, а назначается.
6 Ненавижу 1С
 
гуру
19.03.12
12:11
(5) назначать с параметрами, посмотри как назначает их 1с в режиме дизайнера формы
7 totparen
 
19.03.12
12:16
(6) я не пойму о чём речь. Можете носом ткнуть в типовую УТ, к примеру?
8 Ненавижу 1С
 
гуру
19.03.12
12:26
(7) если у тебя
Новый Действие("Позвонить")

по должна быть определена

Процедура Позвонить(Элемент)
 //где Элемент - кнопка, которую нажали
9 Reset
 
19.03.12
12:28
+(8)
Сообщить(Элемент.Имя);

-->
Звонок_0
10 Aleks73
 
19.03.12
12:34
КнопкаМеню = ЭлементыФормы.Командычтототам.Кнопки.Добавить("Чтото",ТипКнопкиКоманднойПанели.Действие,"тут типа текст",Новый Действие("Проц"));

Процедура Проц(Кнопка)
11 totparen
 
19.03.12
12:39
(8) БИНГО!!! Спасибо ДРУГ!!
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.