|
|
|
Можно ли программно добавить на командную панель стандартную кнопку | ☑ | ||
|---|---|---|---|---|
|
0
Mort
21.10.08
✎
16:04
|
Например "Добавить", "Удалить" к которым не привязываются функции.
|
|||
|
1
Stepa86
21.10.08
✎
16:29
|
Зачем программно их добавлять??? Если они иногда нужны, а иногда нет, то правильнее делать их недоступными
|
|||
|
2
Aprobator
21.10.08
✎
16:58
|
Можно. Выдержка из СП. Все таки умение читать документацию - великое благо.
КнопкиКоманднойПанели (CommandBarButtons) Добавить (Add) Синтаксис: Добавить(<Имя>, <Тип кнопки>, <Текст>, <Действие>) Параметры: <Имя> (необязательный) Тип: Строка. Имя кнопки - должно соответствовать правилам имен. Уникально в пределах командной панели. <Тип кнопки> (необязательный) Тип: ТипКнопкиКоманднойПанели. Тип кнопки интерфейса (разделитель, подменю, действие). Значение по умолчанию: Разделитель <Текст> (необязательный) Тип: Строка. Текст кнопки. <Действие> (необязательный) Тип: Действие. Действие, которое необходимо выполнить при нажатии на данную кнопку. Для типов кнопок Разделитель и Подменю, действие указывать не нужно. Возвращаемое значение: Тип: КнопкаКоманднойПанели. Описание: Добавляет кнопку в конец коллекции кнопок командной панели. Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения. Пример: КП = ЭлементыФормы.КоманднаяПанель; НовоеДействие = Новый Действие("МояПроцедураВМодулеФормы"); ТипКнопки = ТипКнопкиКоманднойПанели.Действие; НоваяКнопка = КП.Кнопки.Добавить("Действие1", ТипКнопки, , НовоеДействие); |
|||
|
3
Господин ПЖ
21.10.08
✎
17:05
|
и где тут говорится про стандартные?
|
|||
|
4
Mort
21.10.08
✎
17:08
|
(2) Читать документацию это здорово, а читать сабж вообще замечательно. Добавить кнопку и привязать функцию в модуле просто, а вот чтобы кнопка осуществляла действия с ИсточникомДействий, добавить, пометить на удаление и т.п.
|
|||
|
5
Aprobator
21.10.08
✎
17:09
|
(4) Дык, а в Новый Действие(ИмяСтандартногоДействия) не пробовал?
|
|||
|
6
Bober
21.10.08
✎
17:11
|
(5) у тебя хоть получилось?
|
|||
|
7
Mort
21.10.08
✎
17:15
|
Для чего это надо.
Делаю вложенные формы, скоро опубликую, вот как работает: http://imageshost.ru/links/60c896179e0fcea954b411e67f625b76 Если кнопки на дочерней форме заполняются авто, всё ок. А если кодер снял автозаполнение и нажал "ЗаполнитьАвтоматически" скопировать их в свою панель невозможно ( |
|||
|
8
Mort
21.10.08
✎
17:18
|
(5) В таком случае интерпретатор думает, что ИмяСтандартногоДействия - имя функции в проге, т.к. её нет кнопка делается недоступной.
|
|||
|
9
Stepa86
21.10.08
✎
17:30
|
(7) Если кнопки копируешь, то и бери действия из источника... например
ЭлементыФормы.КоманднаяПанель1.Кнопки.Добавить("НоваяКнопка",ТипКнопкиКоманднойПанели.Действие, "Новая кнопка", ЭлементыФормы.КоманднаяПанель1.Кнопки.Действие.Действие); работает у меня |
|||
|
10
Bober
21.10.08
✎
17:31
|
(8) остается только разместить все кнопки вручную и программно манипулировать.
|
|||
|
11
Mort
21.10.08
✎
17:38
|
(9) У меня источник другая командная панель другой формы, скопировать её действие не получается. Придется забить, вручную писать геморно.
|
|||
|
12
Aprobator
21.10.08
✎
18:06
|
Печально. Можно конечно попробовать делать скрытую панель с кнопками со стандартными действиями и при добавлении кнопки ссылаться на эти действия.
|
|||
|
13
Aprobator
22.10.08
✎
15:56
|
Путем многих изысканий добавить стандартную кнопку не удалось. Но можно выполнить некую эмуляцию действий стандартных кнопок.
// Процедура добавления кнопки ДействиеКнопки = Новый Действие("ОбработатьНажатиеКнопки"); НоваяКнопка = ЭлементыФормы.КоманднаяПанель2.Кнопки.Добавить(ИмяКнопки, ТипКнопкиКоманднойПанели.Действие, "Тест",ДействиеКнопки); Процедура ОбработатьНажатиеКнопки(Элемент) // ОБРАТИТЬ ВНИМАНИЕ НА ПАРАМЕТР ПРОЦЕДУРЫ Если Элемент.Имя = "Закрыть" Тогда Форма.Закрыть(); КонецЕсли; КонецПроцедуры |
|||
|
14
Stepa86
22.10.08
✎
16:01
|
(13) настройку списка, отбор или сортировку уже не так тривиально вызвать...
|
|||
|
15
Aprobator
22.10.08
✎
16:07
|
(14) Здесь тоже можно поэкспериментровать в частности с
Расширением элементов управления, расположенных в форме. В частности может помочь метод: УстановитьДействие(Событие, Действие) Только, в конечном счете, а нужны ли такие извращения? |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |