|
Как добавить кнопку с командой программно? |
☑ |
0
Мисти
22.10.15
✎
21:25
|
Элемент = ЭтаФорма.Элементы.Добавить("Кос_СтатусДоговора", Тип("ПолеФормы"),ГруппаЭлементыКос);
Элемент.ПутьКДанным = "Объект.Кос_Собственник.ДоговорКонтрагента";
Элемент.Вид = ВидПоляФормы.ПолеНадписи;
Элемент.Гиперссылка = Истина;
Вот в таком стиле?
|
|
1
Shrek_yar
22.10.15
✎
21:31
|
&НаКлиенте
Процедура СоздатьКнопку(Команда)
СоздатьКнопкуНаСервере();
КонецПроцедуры
&НаСервере
Процедура СоздатьКнопкуНаСервере()
//Добавляем форме команду
Кмд = ЭтаФорма.Команды.Добавить("Команда1");
Кмд.Действие = "Тест";
Кмд.Заголовок = "Тест";
//Добавляем саму кнопку
Элемент = ЭтаФорма.Элементы.Добавить("Кнопка1", Тип("КнопкаФормы"), ЭтаФорма);
Элемент.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
Элемент.ИмяКоманды = "Команда1";
КонецПроцедуры
//Обработчик нажатия кнопки
&НаКлиенте
Процедура НажатиеКнопки()
Сообщить("Кнопка создана программно");
КонецПроцедуры
|
|
2
Lexey_
22.10.15
✎
21:45
|
(0) код в (1) получен путем нажатия на красную Я справа от темы
|
|
3
Мисти
22.10.15
✎
21:49
|
Ой! А у меня и так всё получилось. Оказывается, команду в форме всё равно нужно заводить, вот что мне не нравится.
|
|
4
Garykom
гуру
22.10.15
✎
21:52
|
(3) зато можно одну команду сделать... универсальную для разных кнопок... и они будут по разному отрабатывать, смотря какую нажали...
|
|
5
Shrek_yar
22.10.15
✎
21:57
|
(2) - да
(3) - надо, придеться.
|
|
6
Мисти
22.10.15
✎
21:59
|
Не, можно же команду не заводить в форме!
Кмд = ЭтаФорма.Команды.Добавить("Команда1");
Кмд.Действие = "Тест";
Кмд.Заголовок = "Тест";
|
|
7
Shrek_yar
22.10.15
✎
22:00
|
Что тогда команды будет выполнять?
|
|
8
фобка
22.10.15
✎
22:01
|
Процедура нужна все равно
|
|
9
Shrek_yar
22.10.15
✎
22:02
|
Имя команды -> то что будет при нажатие выпоняться
|
|
10
Shrek_yar
22.10.15
✎
22:02
|
|
|
11
Shrek_yar
22.10.15
✎
22:03
|
Обработчик команды должен существовать в модуле формы и предваряться директивой компиляции &НаКлиенте.
|
|
12
фобка
22.10.15
✎
22:03
|
(9) действие то есть. Процедура в модуле формы
|
|
13
Мисти
22.10.15
✎
22:21
|
(11) Да, так и есть!
Теперь вторая ожидаемая проблема - надо показать старый документ по кнопке:
&НаСервере
Функция Кнопка1НажатиеНаСервере()
ДатаДок = Дата("20"+Сред(Объект.Кос_НомерСтарогоДоговора,4,2), "01", "01");
Док = Документы.АР_ЗаключениеДоговораАренды.НайтиПоНомеру(Объект.Кос_НомерСтарогоДоговора,ДатаДок);
Возврат(Док);
КонецФункции
&НаКлиенте
Процедура Кнопка1Нажатие1(Команда)
Док = Кнопка1НажатиеНаСервере();
Попытка
ТекФорма = Док.ПолучитьФорму("ФормаДокумента").Открыть();
Исключение
КонецПопытки;
КонецПроцедуры
И ни фига она не показывает.
|
|
14
Мисти
22.10.15
✎
22:44
|
Кажись, нашла.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший