Может ли кто-нибудь посоветовать как перехватить нажатие на кнопку "Новый документ" (не клавишу Ins) в общем журнале.
В созданном общем журнале "Оплаты" можно установить отбор по журналу (общий реквизит документа) или по виду оплаты (графа отбора).
В журнал попадают 3 вида документов. При нажатии на стандартную кнопку ввода нового документа выпадает список со всеми документами. Нужно перехватить нажатие и сформировать свой список, состоящий из трех документов.
Вариант отключения стандартого меню и создания своих кнопок не так интересен, т.к. нужно передхватить только кнопку создания нового документа, а остальные менять не надо.
Вариант с созданием своей кнопки "Новый документ" и перехватом нажатия кнопки клавиатуры "Ins" имеется.
(1) Стандартно делал такое.
В конфигураторе в общем журнале "Оплаты" указываешь тип журнала Обычный, затем в этих 3-х документах выбираешь журнал Оплаты, и обратно в общем журнале "Оплаты" указываешь тип журнала Общий. Сохраняешься.
По кнопке Ins будет только эти 3 документа.
VUN пишет:
(1) Стандартно делал такое.
В конфигураторе в общем журнале "Оплаты" указываешь тип журнала Обычный, затем в этих 3-х документах выбираешь журнал Оплаты, и обратно в общем журнале "Оплаты" указываешь тип журнала Общий. Сохраняешься.
По кнопке Ins будет только эти 3 документа.
Спасибо огромное всем, кто откликнулся
Предложенный выше метод у меня не работает, пробовала его еще до запроса на форуме
Процедура НовыйДокумент()
// Вот тут описываем логику выбора вида документа
КонецПроцедуры // НовыйДокумент
Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши, Alt, Shift, Контрол, Символ, ФСО)
//Сообщить("Код клавиши "+Число(КодКлавиши));
Если КодКлавиши = 45 Тогда // INS
НовыйДокумент();
ФСО = 0;
КонецЕсли;
КонецПроцедуры
Процедура ПриПолученииКоманды(пКоманда, пЗаблокироватьКоманду)
//Сообщить(пКоманда);
Если пКоманда = 32786 Тогда // Создать новый элемент
пЗаблокироватьКоманду = 1;
НовыйДокумент();
КонецЕсли;
КонецПроцедуры
+7 да, формексом такое делать..это через ж..пу - инсерт ты перехватишь, а вот с перехват кнопки в панели инструментов + в контекстном меню + в меню Действия - натрахаешься.
Ёпрст пишет:
Враньё. Делает только в меню, в панели инструментов - болт.
Так что, удачи.
Прекрасно все делает как в меню, так и в панели инструментов - перехватывает абсолютно все команды, независимо откуда - меню, панелю инструментов, контекстное меню
Ёпрст пишет:
и че это за х..ня ? И где тут показ перехвата средствами RWidjets.dll ???????????
Я чего-то не понимаю - что за наезды? Разве я где нибудь написал, что "ПриПолучениКоманды" надо разместить в глобальном модуле? ИМХО вполне понятно сказано
newbas пишет:
В модуле формы журнала
Между прочим, даже в глобальнике отлов событий происходит
+26 Автор еще на 1cpp распинался, что в новой ВК похерил функционал старой , исходники похерились вместе с сгоревшим винтом.
И потом, эту фичу никто так и не поправил.
Это баян, батенька.. баян.
Ёпрст пишет:
акуеть.. и где по-твоему автор топика должен был достать 1.3.5.4 ? Если везде есть только последняя 1.4.0.3 ?
+ А если нужен весь функционал RWidjets, всё, п-да рулю ?
1. Если надо, всегда можно попросить
2. ИМХО топик стартеру уже все понятно, не будем разводить флейм, а то модератор накажет :D
Данную разработку уже видела до своего запроса на форуме. Т.к. до автора не достучаться (ссылки и е-майл не работают), с удовольствием воспользуюсь Вашим предложением
Данную разработку уже видела до своего запроса на форуме. Т.к. до автора не достучаться (ссылки и е-майл не работают), с удовольствием воспользуюсь Вашим предложением
newbas пишет:
в процедуре "ПриНачалеРаботыСистемы"
Попробовала Rwidjets. Все сработало, но есть один неприятный момент. После формирования списка значений с документами для выбора в процедуре НовыйДокумент() на самом списке нужно кликать дважды, т.е. такое ощущение, что фокус теряется. По первому клику- активируется, по второму- могу выбирать и нажимать на кнопки. Кто нибудь сталкивался с таким поведением длл-ки или я чего не так делаю?
Процедура НовыйДокумент()
Спис=СоздатьОбъект("СписокЗначений");
Спис.ДобавитьЗначение("Документ.ххх","ххх");
Спис.ДобавитьЗначение("Документ.ууу","ууу");
Зн=0;
Если Спис.ВыбратьЗначение(Зн," Выберите документ",1,,0)=0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
ОткрытьФорму(Зн,,); // Вводим новый документ выбранного вида
КонецПроцедуры // НовыйДокумент
После формирования списка значений с документами для выбора в процедуре НовыйДокумент() на самом списке нужно кликать дважды, т.е. такое ощущение, что фокус теряется.
У меня такого нет, ИМХО какое-то другое приложение чудит - подобное раньше замечалось за "Быстрый запуск MS Office"
Процедура ЖурналДокументовСписокПередНачаломДобавления(Элемент, Отказ, Копирование)
Если НЕ Копирование Тогда
Форма = Документы.ЗаявкаV2.ПолучитьФормуНовогоДокумента();
Форма.Открыть();
Отказ = Истина;
КонецЕсли;
КонецПроцедуры