|
|
|
Как программно добавить свои пункты в контекстное меню 8.2 упр.формы | ☑ | ||
|---|---|---|---|---|
|
0
Genri
14.12.10
✎
10:49
|
Как программно добавить свои пункты в контекстное меню 8.2 упр.формы
Вот нашел пример но как его использовать не понятно. Помогите разобраться. реквизиты = Новый Массив; реквизиты.Добавить(Новый РеквизитФормы("Поле", Новый ОписаниеТипов("Строка"),,"Мое поле")); ЭтаФорма.ИзменитьРеквизиты(реквизиты); Элемент = Элементы.Добавить("Поле", Тип("ПолеФормы"), ЭтаФорма); Элемент.ПутьКДанным = "СМСБуфер"; Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.Видимость = Истина; |
|||
|
1
Mort
14.12.10
✎
10:52
|
При чем тут поле ввода? Команда нужна.
|
|||
|
2
Genri
14.12.10
✎
10:57
|
Ну, я все что нашел по этой теме и уперся в стену.
|
|||
|
3
Genri
14.12.10
✎
11:27
|
Я тута
|
|||
|
4
AndrejDen
14.12.10
✎
11:33
|
Программно можно только убрать...
|
|||
|
5
Mort
14.12.10
✎
11:44
|
(4) Ложь.
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Команда = ЭтаФорма.Команды.Добавить("Пункт1"); Команда.Действие = "Пункт1Нажатие"; НовЭлемент = Элементы.Добавить("Пункт", Тип("КнопкаФормы"), Элементы.Реквизит1КонтекстноеМеню); НовЭлемент.ИмяКоманды = "Пункт1"; КонецПроцедуры &НаКлиенте Процедура Пункт1Нажатие(Команда) // КонецПроцедуры |
|||
|
6
AndrejDen
14.12.10
✎
11:53
|
Простите.. Буду знать
|
|||
|
7
Genri
14.12.10
✎
12:43
|
(5)Все получилось.Супер.Спасиб.
|
|||
|
8
Genri
15.12.10
✎
12:29
|
У меня другой вопрос возникает а как обращаться к этим командам в меню.
|
|||
|
9
Mort
15.12.10
✎
12:32
|
Что значит "обращаться"?
|
|||
|
10
Genri
15.12.10
✎
12:54
|
Я вывел в меню справочник физ.лица теперь при нажатие на физ.лицо мне нужно чтобы программа понимала что я именно нажал
на этого и дальше свой код. |
|||
|
11
Mort
15.12.10
✎
14:04
|
Как вариант, сделать под каждый пункт команду с именем однозначно идентифицирующим элемент.
P/S только всё это _нехорошо_. Что будет когда в справочник заведут больше 20 лиц? Лучше придумать другой способ выбора физлица, чем через подменю. |
|||
|
12
Genri
15.12.10
✎
14:47
|
Блин :( так все хорошо начиналось.
Ну как-то не правильно добавить программно можно а использовать команды нельзя :( |
|||
|
13
5 Элемент
15.12.10
✎
15:14
|
(11) >> P/S только всё это _нехорошо_. Что будет когда в справочник заведут больше 20 лиц? Лучше придумать другой способ выбора физлица, чем через подменю.
Поле ввода тебе в помощь. |
|||
|
14
5 Элемент
15.12.10
✎
15:15
|
(10) положи физ.лица в список значений, а в названии команды указывай индекс в списке.
|
|||
|
15
Mort
15.12.10
✎
15:27
|
(13)
а) не мне а автору б)лучше не поле ввода, а тупо выбрать физлицо из справочника по нажатию на единственный пункт меню. |
|||
|
16
Genri
15.12.10
✎
15:51
|
(13)
б) такое у меня уже было с самого начало. Клиент хочет именно так чтобы в контекстном меню были физ лица |
|||
|
17
5 Элемент
15.12.10
✎
15:54
|
(16) почему именно в контекстном меню?
Опиши, как работает пользователь? Может подойдет самый простой вариант - быстрый выбор. |
|||
|
18
Mort
15.12.10
✎
16:08
|
(16)
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СоответствиеКомандФизлицам = Новый Соответствие; // это реквизит формы ВыборкаФизЛиц = ПолучитьВыборкуФизЛиц(); Счетчик = 1; Пока ВыборкаФизЛиц.Следующий() Цикл ИмяКоманды = "Пункт" + Счетчик; Команда = ЭтаФорма.Команды.Добавить(ИмяКоманды); Команда.Действие = "ПунктНажатие"; СоответствиеКомандФизлицам.Вставить(Команда, ВыборкаФизЛиц.Ссылка); НовЭлемент = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Элементы.Реквизит1КонтекстноеМеню); НовЭлемент.Заголовок = ВыборкаФизЛиц.Наименование; НовЭлемент.ИмяКоманды = ИмяКоманды; Счетчик = Счетчик+1; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ПунктНажатие(Команда) ФизЛицо = СоответствиеКомандФизлицам.Получить(Команда); // .... КонецПроцедуры |
|||
|
19
Genri
15.12.10
✎
16:14
|
(17)Описываю http://fayloobmennik.net/253926
Там выделено красным где должны находиться физ.лица. |
|||
|
20
Genri
15.12.10
✎
16:16
|
(18)О! надо попробовать.
|
|||
|
21
Genri
15.12.10
✎
16:32
|
(18)Ну ты вооще. Спасиб.
СоответствиеКомандФизлицам = Новый Соответствие; // это реквизит формы - Это не нужно. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |