как программно создать кнопку

1. user590836_zhan_chick 22.06.17 14:21 Сейчас в теме
Добрый день всем! Как можно программно создать кнопку?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. lefthander 22.06.17 15:21 Сейчас в теме
(1)В обычных формах - никак. только в управляемых
9. r.moschenskiy 23 22.06.17 15:26 Сейчас в теме
(8) В обычных тоже кнопки прекрасно создаются. Я же привёл пример (4). Внимательно читайте предыдущие сообщения, прежде чем отвечать!
2. Zigor1964 22.06.17 14:25 Сейчас в теме
Для УФ - Создаёшь кнопку и процедуру к ней. В описании кнопки описываешь и процедуру обслуживания.

1.// Добавить реквизит.
ТипыРеквизита = Новый Массив;         // если тип - составной - нужно описание типов в массиве
ТипыРеквизита.Добавить(Тип("Строка")); 
// сюда добавить второй и т.п. тип для составного типа.
ОписаниеТиповДляРеквизита = Новый ОписаниеТипов(ТипыРеквизита);          
НовыйРеквизит = Новый РеквизитФормы("РеквизитКомментарий", // имя
ОписаниеТиповДляРеквизита, // тип          
, // путь                            
"Комментарий", // заголовок                                                               
Истина); // сохраняемые данные
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);                
ИзменитьРеквизиты(ДобавляемыеРеквизиты); 
 // В этом фрагменте мы сначала создаем объект, описывающий тип добавляемого реквизита.
 // Наш реквизит будет иметь тип Строка, поэтому мы создаем массив ТипыРеквизита, содержащий единственный элемент.
//¦¦ имя реквизита – РеквизитКомментарий;
//¦¦ тип этого реквизита – созданное нами описание типов ОписаниеТиповДляРеквизита;
//¦¦ путь к реквизиту не указываем, поскольку добавляем реквизит первого уровня;
//¦¦ заголовок реквизита – Комментарий, этот заголовок будет использоваться платформой для отображения в форме;
//¦¦ последним параметром указываем, что этот реквизит содержит сохраняемые данные, т. е. при изменении этого реквизита будет автоматически
//устанавливаться модифицированность формы. В данном случае этот параметр мы используем исключительно в демонстрационных целях,
//чтобы показать, что такая возможность имеется. Благодаря этому в дальнейшем перед закрытием формы мы сможем анализировать ее
//модифицированность и предотвращать закрытие формы без сохранения измененных данных.
2. // Добавить элемент формы и связать его с реквизитом.
НовыйЭлемент = Элементы.Добавить("ПолеКомментарий", Тип("ПолеФормы"));
3. //Связь элемента с реквизитом        
НовыйЭлемент.ПутьКДанным = "РеквизитКомментарий";  
4.//Установка свойств поля                                        
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.КнопкаОчистки = Истина; 
5.// Установить обработчик события.
НовыйЭлемент.УстановитьДействие("ПриИзменении", "ОбработчикПриИзмененииПоляКомментарий");  

&НаКлиенте
Процедура ОбработчикПриИзмененииПоляКомментарий(Элемент)
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ЭтаФорма["РеквизитКомментарий"];
Сообщение.Сообщить();
КонецПроцедуры
Показать
3. lefthander 22.06.17 14:38 Сейчас в теме
4. r.moschenskiy 23 22.06.17 14:47 Сейчас в теме
ОбработкаНажатия = Новый Действие("Сформировать");
	
НовКнопка = ЭлементыФормы.Добавить(Тип("Кнопка"),"Кнопка");    
НовКнопка.Высота = 25;
НовКнопка.Ширина = 100;
НовКнопка.Заголовок = "Нажать";
НовКнопка.УстановитьДействие("Нажатие", ОбработкаНажатия);

Процедура Сформировать(Элемент)
	
	Сообщить(ТекущаяДата());
	
КонецПроцедуры
Показать
5. user633533_encantado 11 22.06.17 15:05 Сейчас в теме
Потом еще надо программно добавить команду формы, если ее нет, а вот процедуру команды нужно указать уже в модуле формы.

И рекомендую называть такие процедуры с префиксом "Подключаемый_", чтобы облегчить жизнь тем разработчикам, которые будут исправлять код после тебя )))
6. r.moschenskiy 23 22.06.17 15:14 Сейчас в теме
(5)Команда - это в управляемых формах, в обычных нужно добавлять процедуру-обработчик нажатия кнопки.
7. user633533_encantado 11 22.06.17 15:20 Сейчас в теме
(6) А, да, не заметил, что дело не об УФ.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот