Перехват нажатия кнопки "Новый документ" в общем журнале

1. amblik 21.04.11 12:33 Сейчас в теме
Может ли кто-нибудь посоветовать как перехватить нажатие на кнопку "Новый документ" (не клавишу Ins) в общем журнале.

В созданном общем журнале "Оплаты" можно установить отбор по журналу (общий реквизит документа) или по виду оплаты (графа отбора).
В журнал попадают 3 вида документов. При нажатии на стандартную кнопку ввода нового документа выпадает список со всеми документами. Нужно перехватить нажатие и сформировать свой список, состоящий из трех документов.

Вариант отключения стандартого меню и создания своих кнопок не так интересен, т.к. нужно передхватить только кнопку создания нового документа, а остальные менять не надо.
Вариант с созданием своей кнопки "Новый документ" и перехватом нажатия кнопки клавиатуры "Ins" имеется.

Заранее благодарю за советы и ответы
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. VUN 38 22.04.11 09:25 Сейчас в теме
(1) Стандартно делал такое.
В конфигураторе в общем журнале "Оплаты" указываешь тип журнала Обычный, затем в этих 3-х документах выбираешь журнал Оплаты, и обратно в общем журнале "Оплаты" указываешь тип журнала Общий. Сохраняешься.
По кнопке Ins будет только эти 3 документа.
Vortigaunt; +1 Ответить
6. Ёпрст 1067 22.04.11 10:57 Сейчас в теме
(5) враньё.
Будет в лучшем случае ОДИН вид документа, который будет сразу открываться без списка выборов видов документов.
31. VUN 38 22.04.11 17:32 Сейчас в теме
(6) Да, посмотрел, у меня был только один вид документа в журнале.
34. Ёпрст 1067 22.04.11 17:51 Сейчас в теме
(31) там вся фича основана на том, что поле Журнал не очищается в компаунде у документа, вот и вводится всегда 1 вид документов.

Но никак не 3 :)
35. amblik 25.04.11 09:21 Сейчас в теме
VUN пишет:
(1) Стандартно делал такое.
В конфигураторе в общем журнале "Оплаты" указываешь тип журнала Обычный, затем в этих 3-х документах выбираешь журнал Оплаты, и обратно в общем журнале "Оплаты" указываешь тип журнала Общий. Сохраняешься.
По кнопке Ins будет только эти 3 документа.


Спасибо огромное всем, кто откликнулся

Предложенный выше метод у меня не работает, пробовала его еще до запроса на форуме
43. andy2011 22.02.12 08:22 Сейчас в теме
(1) amblik,
1с++ , Объект "Перехватчик"
2. Abadonna 3970 21.04.11 12:57 Сейчас в теме
с формексом можно попробовать поизвращаться, но не уверен...
3. demon000 3 21.04.11 13:48 Сейчас в теме
Код Журнала в Студию и конфу укажите.
4. newbas 534 21.04.11 14:33 Сейчас в теме
в процедуре "ПриНачалеРаботыСистемы"

 
ЗагрузитьВнешнююКомпоненту("RWidjets.dll");	
ЗагрузитьВнешнююКомпоненту("FormEx.dll")


В модуле формы журнала

Процедура НовыйДокумент()
   // Вот тут описываем логику выбора вида документа	
КонецПроцедуры // НовыйДокумент


Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши, Alt, Shift, Контрол, Символ, ФСО)
	//Сообщить("Код клавиши "+Число(КодКлавиши));
	Если КодКлавиши = 45 Тогда          // INS
		НовыйДокумент();
		ФСО = 0;
	КонецЕсли;
КонецПроцедуры


Процедура ПриПолученииКоманды(пКоманда, пЗаблокироватьКоманду)
	//Сообщить(пКоманда);
	Если пКоманда = 32786 Тогда			// Создать новый элемент
                пЗаблокироватьКоманду = 1;
                НовыйДокумент();
	КонецЕсли;
КонецПроцедуры
Показать
7. Ёпрст 1067 22.04.11 10:58 Сейчас в теме
(0)
на вот, развлекайся:
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=141&lid=4371
метода стара как г. мамонта.
Если вломы платить автору 5 убитых енотов - пиши в личку, скажу как сделать.
8. Ёпрст 1067 22.04.11 10:59 Сейчас в теме
+7 да, формексом такое делать..это через ж..пу - инсерт ты перехватишь, а вот с перехват кнопки в панели инструментов + в контекстном меню + в меню Действия - натрахаешься.
9. newbas 534 22.04.11 12:22 Сейчас в теме
Ёпрст пишет:
а вот с перехват кнопки в панели инструментов + в контекстном меню + в меню Действия - натрахаешься.

RWidjets.dll - делает это спокойно
10. Ёпрст 1067 22.04.11 12:26 Сейчас в теме
(9) Враньё. Делает только в меню, в панели инструментов - болт.
Так что, удачи.
11. newbas 534 22.04.11 12:28 Сейчас в теме
Ёпрст пишет:
Враньё. Делает только в меню, в панели инструментов - болт.
Так что, удачи.

Прекрасно все делает как в меню, так и в панели инструментов - перехватывает абсолютно все команды, независимо откуда - меню, панелю инструментов, контекстное меню
12. Ёпрст 1067 22.04.11 12:30 Сейчас в теме
(11) Какой наивный..
Пример в студию, или забери свои слова обратно.
13. newbas 534 22.04.11 12:41 Сейчас в теме
Сейчас подготовлю видео...
14. Ёпрст 1067 22.04.11 12:42 Сейчас в теме
(13) не забудь на видео нажать на кнопку - "новый документ" в панели инструментов в журнале документов.
15. newbas 534 22.04.11 13:20 Сейчас в теме
Что-то не стало нормальных программ для записи видео - только с 3-го раза нашел.
вот выложил
16. Ёпрст 1067 22.04.11 13:31 Сейчас в теме
(15) и че это за х..ня ?
И где тут показ перехвата средствами RWidjets.dll ???????????

Для тех, кто в танке, пишем в глобальничке:

//======================================================================
Процедура ПриПолученииКоманды(пКоманда, пЗаблокироватьКоманду)
	Сообщить("отлов команды "+пКоманда,"i");
КонецПроцедуры
//==========================================================­============
Процедура ПриНачалеРаботыСистемы() 
    ЗагрузитьВнешнююКомпоненту("RWidjets.dll");
КонецПроцедуры


Запускаем,пытаемся "отловить" кнопку в панели инструментов, далее приносим извинения.
17. newbas 534 22.04.11 13:36 Сейчас в теме
Ёпрст пишет:
и че это за х..ня ? И где тут показ перехвата средствами RWidjets.dll ???????????

Я чего-то не понимаю - что за наезды? Разве я где нибудь написал, что "ПриПолучениКоманды" надо разместить в глобальном модуле? ИМХО вполне понятно сказано
newbas пишет:
В модуле формы журнала

Между прочим, даже в глобальнике отлов событий происходит
18. Ёпрст 1067 22.04.11 13:42 Сейчас в теме
(17) еще раз - не ЛОВЯТСЯ..
ни в форме, ни в глобальнике.
Выкладывай демо конфу.
19. newbas 534 22.04.11 13:43 Сейчас в теме
Мне конечно ее не сильно охота делать, но если нужно...
20. Ёпрст 1067 22.04.11 13:55 Сейчас в теме
(19)конечно делай, за свои слова принято отвечать.

Мои слова - код в (16).
Попробуй его опровергнуть.
21. newbas 534 22.04.11 14:33 Сейчас в теме
Вот кому интересно
Заодно вложу компоненту
22. Ёпрст 1067 22.04.11 15:07 Сейчас в теме
(21) ага зачЁт..

у тебя старая версия ВК 1.3.5.4

у автора, последняя ВК - 1.4.0.3
в ней есть новый функционал и в ней, отлов событий в панели инструментов НЕ работает.
24. Ёпрст 1067 22.04.11 17:13 Сейчас в теме
(23) и к чему это пост ? Там нет ответа на этот вопрос.
25. newbas 534 22.04.11 17:13 Сейчас в теме
Там есть сообщение, что не работает перехват кнопок - т.е. проблема в компоненте.
26. Ёпрст 1067 22.04.11 17:19 Сейчас в теме
(25) Гы.. а ты (22) пост не осилил что ли ?
)))))))))))))))))))))))))))))))))))))))))))))))
27. Ёпрст 1067 22.04.11 17:21 Сейчас в теме
+26 Автор еще на 1cpp распинался, что в новой ВК похерил функционал старой , исходники похерились вместе с сгоревшим винтом.
И потом, эту фичу никто так и не поправил.
Это баян, батенька.. баян.
28. newbas 534 22.04.11 17:23 Сейчас в теме
Ёпрст пишет:
Это баян, батенька.. баян.

Баян играл тот, кто кричал, что перехват осуществить невозможно.
ЗЫ. На 1с++ это читал, просто лень было искать
29. Ёпрст 1067 22.04.11 17:26 Сейчас в теме
(28) акуеть.. и где по-твоему автор топика должен был достать 1.3.5.4 ?
Если везде есть только последняя 1.4.0.3 ?

+ А если нужен весь функционал RWidjets, всё, п-да рулю ?
30. newbas 534 22.04.11 17:28 Сейчас в теме
Ёпрст пишет:
акуеть.. и где по-твоему автор топика должен был достать 1.3.5.4 ? Если везде есть только последняя 1.4.0.3 ?
+ А если нужен весь функционал RWidjets, всё, п-да рулю ?

1. Если надо, всегда можно попросить
2. ИМХО топик стартеру уже все понятно, не будем разводить флейм, а то модератор накажет :D
32. tango 546 22.04.11 17:38 Сейчас в теме
33. cool.vlad4 2 22.04.11 17:44 Сейчас в теме
36. amblik 25.04.11 09:30 Сейчас в теме
Ёпрст пишет:
на вот, развлекайся:
http://1c.proclub.ru/modules/mydownlo...1&lid=4371
метода стара как г. мамонта.
Если вломы платить автору 5 убитых енотов - пиши в личку, скажу как сделать.


Данную разработку уже видела до своего запроса на форуме. Т.к. до автора не достучаться (ссылки и е-майл не работают), с удовольствием воспользуюсь Вашим предложением
37. amblik 25.04.11 09:37 Сейчас в теме
newbas пишет:
Вот кому интересно
Заодно вложу компоненту


Обязательно посмотрю и попробую. За пример и компоненту- спасибо :)
38. Ёпрст 1067 25.04.11 11:02 Сейчас в теме
Данную разработку уже видела до своего запроса на форуме. Т.к. до автора не достучаться (ссылки и е-майл не работают), с удовольствием воспользуюсь Вашим предложением


пиши в личку, расскажу, как сделано
39. amblik 26.04.11 14:53 Сейчас в теме
newbas пишет:
в процедуре "ПриНачалеРаботыСистемы"



Попробовала Rwidjets. Все сработало, но есть один неприятный момент. После формирования списка значений с документами для выбора в процедуре НовыйДокумент() на самом списке нужно кликать дважды, т.е. такое ощущение, что фокус теряется. По первому клику- активируется, по второму- могу выбирать и нажимать на кнопки. Кто нибудь сталкивался с таким поведением длл-ки или я чего не так делаю?

Процедура НовыйДокумент() 

Спис=СоздатьОбъект("СписокЗначений");
Спис.ДобавитьЗначение("Документ.ххх","ххх");
Спис.ДобавитьЗначение("Документ.ууу","ууу");
Зн=0;
Если Спис.ВыбратьЗначение(Зн," Выберите документ",1,,0)=0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
ОткрытьФорму(Зн,,); // Вводим новый документ выбранного вида

КонецПроцедуры // НовыйДокумент 
Показать
40. newbas 534 26.04.11 14:57 Сейчас в теме
После формирования списка значений с документами для выбора в процедуре НовыйДокумент() на самом списке нужно кликать дважды, т.е. такое ощущение, что фокус теряется.

У меня такого нет, ИМХО какое-то другое приложение чудит - подобное раньше замечалось за "Быстрый запуск MS Office"
41. Том 35 17.02.12 19:44 Сейчас в теме
Выкрутился вот так:
Процедура ЖурналДокументовСписокПередНачаломДобавления(Элемент, Отказ, Копирование)
	Если НЕ Копирование Тогда
		Форма = Документы.ЗаявкаV2.ПолучитьФормуНовогоДокумента();		
		Форма.Открыть();
 		Отказ = Истина;
	КонецЕсли;	
КонецПроцедуры
Показать
Оставьте свое сообщение

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