Переключение на Главную Страницу Страницы: 1 ... 7 8 [9]  ОтправитьПечать
Очень популярная тема (более 25 ответов) СтатусВозврата в классе "Перехватчик" (число прочтений - 43230 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #120 - 30. Мая 2007 :: 12:06
Печать  
Сделать-то можно.
Но будет работать перехват только для формул атрибутов типа "ПриВыбореФирмы",
а если внутри модуля в коде вручную будет вызываться метод "ПриВыбореФирмы", перехвата НЕ будет Печаль
Т..е. налицо неоднозначность, и соответственно возможна путаница.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #121 - 30. Мая 2007 :: 12:13
Печать  
artbear писал(а) 30. Мая 2007 :: 12:06:
Сделать-то можно.
Но будет работать перехват только для формул атрибутов типа "ПриВыбореФирмы",
а если внутри модуля в коде вручную будет вызываться метод "ПриВыбореФирмы", перехвата НЕ будет Печаль
Т..е. налицо неоднозначность, и соответственно возможна путаница.


Это да...
Я вот поковырялся малость - может и не стоит с этим заморачиваться.
Сейчас в перехватчике обрабатываю "ПриНачалеВыбораЗначения", а там разбираю тип элемента диалога и подменяю выбор...
Остается только вопрос с вызовом формулы реквизита...

А мысль с перехватом пользовательских функций (не из формулы элементов диалога) по ходу нереальная
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #122 - 12. Июня 2007 :: 11:13
Печать  
artbear писал(а) 30. Мая 2007 :: 11:19:
Точнее так - я знаю, какой внутренний метод вызывается для исполнения формулы атрибута - это CBLModule7::TryEvalExpr.
Но данному методу передается вся строка формулы/выражения.
Поэтому, если в формуле стоит не простое "ПриВыбореФирмы", а что-то более сложное типа "А =0; ПриВыбореФирмы()", то уже нельзя без разбора выражения определить, какую функцию-обработчик нужно вызывать.

Хотя простой вариант обработать не сложно Улыбка



Занимался два дня полным рефакторингом своей базы на основании Перехватчика. От результата получил множественные продолжительные оргазмы  Смех

В данном случае в обработке выбора значения (после ПриНачалеВыбораЗначения отправляю обратку именно сюда) реализовал так:
Код
Выбрать все
Если ПустоеЗначение(Значение) = 0 Тогда
	Реквизит = ФормаРасш.ПолучитьАтрибут(Элемент);
	Реквизит.Значение = Значение;
	Модуль = СоздатьОбъект("ВыполняемыйМодуль");
	Модуль.УстановитьМодуль(Реквизит.Формула);
	Модуль.НазначитьКонтекст(Конт);
	Модуль.КомпилироватьИВыполнитьМодуль();
КонецЕсли;
 



Может есть и проще варианты?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #123 - 17. Июня 2007 :: 02:24
Печать  
artbear писал(а) 07. Мая 2007 :: 04:03:
ЗЫ и такое впечатление, что данное событие вызывается перед ПриОткрытии почти для любых форм, а не только справочников и документов - например, для отчетов и обработок вызывается точно !!


Кхмм.. Артур, о том, что у обработок есть ВводНового в синтакс-помощнике написано Улыбка




P.S. ПриВыбореЗакладки перехватчик должен ловить? У меня не работает  Печаль вопрос снят, запутался в модулях и пытался поймать в перехваченном глобальнике.
« Последняя редакция: 17. Июня 2007 :: 16:08 - Arta »  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #124 - 13. Июля 2012 :: 15:40
Печать  
Подскажите, пожалуйста, как при перехвате события FormEx-а "ПриЗагрузкеВнешнегоОтчета" управлять статусом возврата?

Функцией не работает
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: СтатусВозврата в классе "Перехватчик"
Ответ #125 - 13. Июля 2012 :: 15:53
Печать  
Разве что в ПриОткрытии проверить на ТипОбъекта и там "зарубить" открытие отчета
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #126 - 13. Июля 2012 :: 16:01
Печать  
тогда уж проще не перехватывать вообще.
В самом собитии, расположенном в глобальном модуле, статус возврата работает
Хоть бери и от перехвата формекса отказывайся
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 7 8 [9] 
ОтправитьПечать