Имя: Пароль:
1C
 
Определить источник выполнения команды УФ
0 KrabCore
 
15.12.15
18:02
Сильно не пинать, только учусь.

Есть форма, программно создаю на ней кнопки в зависимости от заданных условий:

Для Каждого Стр из СписокРеквизитов Цикл
....
НоваяКнопка = Элементы.Добавить("Кнопка_"+Стр.Имя, Тип("КнопкаФормы"),ЭлементРодитель);
        НоваяКнопка.ИмяКоманды = "КомандаОчистка";
        НоваяКнопка.Картинка = БиблиотекаКартинок.Очистить;
        НоваяКнопка.Отображение = ОтображениеКнопки.Картинка;

все создается нормально. но возник вопрос как в команде КомандаОчистка определить какая именно кнопка вызвала команду.

в команде только стандартные реквизиты, элемент формы в нее не передается

&НаКлиенте
Процедура КомандаОчистка(Команда)    
    
КонецПроцедуры

В реквизите команда ничего относящегося к элементу нет.
Собственно вопрос: как в команде определить какая их кнопок вызвала эту команду?
1 Nuobu
 
15.12.15
18:14
Та, вроде, ж никак.
Делай что-то вроде такого:
Проц Очистка(ИмяТабЧасти)
КонецПроц

&НаКлиенте
Процедура КомандаОчисткаУслуги(Команда)    
    Очистка("Услуги");
КонецПроцедуры
&НаКлиенте
Процедура КомандаОчисткаТовары(Команда)    
    Очистка("Товары");
КонецПроцедуры
2 KrabCore
 
15.12.15
18:18
(1) у меня количество кнопок будет в среднем будет штук 10-15

это мне надо будет 15 команд создать и под каждую кнопку вещать свою команду?
да и разве можно ли программно создавать команды?
3 Nuobu
 
15.12.15
18:20
4 KrabCore
 
15.12.15
18:30
(3) судя по коду - это мне не поможет. даже если я создам 15 команд программно - они все будут ссылаться на одно действие
ДобавляемаяКоманда.Действие = "СвернутьГруппировки";
5 Nuobu
 
15.12.15
18:31
НоваяКнопка = Элементы.Добавить("Кнопка_"+Стр.Имя, Тип("КнопкаФормы"),ЭлементРодитель);
        НоваяКнопка.ИмяКоманды = "КомандаОчистка" + Стр.Имя;
6 Defender aka LINN
 
15.12.15
18:39
(4) У действия есть параметры
7 Garykom
 
гуру
15.12.15
18:40
(6)+ из которых можно получить имя кто вызвал действие
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший