Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Перехватчик: Количество параметров процедур (число прочтений - 7313 )
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Перехватчик: Количество параметров процедур
28. Февраля 2008 :: 09:13
Печать  
Пробовал сделать универсального перехватчика и столкнулся с проблемой выполнения оригинального события "ВводНового"
Проблема как оказалось в разном количестве параметров - ведь в обработках параметров у этого метода нет, поэтому конструкция
Код
Выбрать все
Функция ВводНового(Скопирован,ОбъектКопирования) Экспорт
	 Сообщить(Скопирован);
КонецФункции 


Валит 1С намертво...
Как бы этого избежать?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватчик: Количество параметров процедур
Ответ #1 - 29. Февраля 2008 :: 05:35
Печать  
Приведенный код ты юзаешь в отчетах??
Тогда это твой баг Печаль
Распиши подробнее.
  

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: Перехватчик: Количество параметров процедур
Ответ #2 - 29. Февраля 2008 :: 06:41
Печать  
artbear писал(а) 29. Февраля 2008 :: 05:35:
Приведенный код ты юзаешь в отчетах??
Тогда это твой баг Печаль
Распиши подробнее.

Вообще - я тебе в другой ветке тоже самое описывал
http://www.1cpp.ru/forum/YaBB.pl?num=1204195941
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватчик: Количество параметров процедур
Ответ #3 - 29. Февраля 2008 :: 06:43
Печать  
Это я видел. Все равно ведь непонятно.
Приведи код класса-перехватчика и код вызываемого отчета - нужны обработчики ВводНового + как осуществляешь перехват.
Что ты путаешь?
  

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: Перехватчик: Количество параметров процедур
Ответ #4 - 29. Февраля 2008 :: 06:43
Печать  
artbear писал(а) 29. Февраля 2008 :: 06:43:
Это я видел. Все равно ведь непонятно.
Приведи код класса-перехватчика и код вызываемого отчета - нужны обработчики ВводНового + как осуществляешь перехват.
Что ты путаешь?

Ща тестовую конфу выложу
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Перехватчик: Количество параметров процедур
Ответ #5 - 29. Февраля 2008 :: 07:13
Печать  
Chieftain писал(а) 29. Февраля 2008 :: 06:43:
Ща тестовую конфу выложу

1Cpp.dll - Nightly build 2008-02-28
Попробуй))
Причем в обработчике глобального модуля - на этих параметрах не валится никогда, поэтому и думаю, что перехватчик контекста было бы неплохо привести к такому же поведению
  

test_008.rar ( 11 KB | Загрузки )
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватчик: Количество параметров процедур
Ответ #6 - 29. Февраля 2008 :: 07:53
Печать  
Тест не рабочий, перехват вообще не работает Печаль
Потому что в начале работы ГМ перед перехватом ГМ нужно обязательно выполнять !!
Код
Выбрать все
Настройки			= СоздатьОбъект("УправлениеНастройками");
Настройки.Включить("ПерехватитьСобытияГК");
 

  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватчик: Количество параметров процедур
Ответ #7 - 29. Февраля 2008 :: 07:55
Печать  
Лады, подумаю над решением.
  

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: Перехватчик: Количество параметров процедур
Ответ #8 - 29. Февраля 2008 :: 07:55
Печать  
artbear писал(а) 29. Февраля 2008 :: 07:53:
Тест не рабочий, перехват вообще не работает Печаль
Потому что в начале работы ГМ перед перехватом ГМ нужно обязательно выполнять !!
Код
Выбрать все
Настройки			= СоздатьОбъект("УправлениеНастройками");
Настройки.Включить("ПерехватитьСобытияГК");
 


хм... странно, но у меня работает... может просто сохраненное было?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватчик: Количество параметров процедур
Ответ #9 - 29. Февраля 2008 :: 07:57
Печать  
Chieftain писал(а) 29. Февраля 2008 :: 07:55:
artbear писал(а) 29. Февраля 2008 :: 07:53:
Тест не рабочий, перехват вообще не работает Печаль
Потому что в начале работы ГМ перед перехватом ГМ нужно обязательно выполнять !!
Код
Выбрать все
Настройки			= СоздатьОбъект("УправлениеНастройками");
Настройки.Включить("ПерехватитьСобытияГК");
 


хм... странно, но у меня работает... может просто сохраненное было?

Ага, угадал.
Для пользователя обычно достаточно включить настройку один раз и эта настройка запоминается в дальнейшем.
  

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: Перехватчик: Количество параметров процедур
Ответ #10 - 29. Февраля 2008 :: 07:59
Печать  
artbear писал(а) 29. Февраля 2008 :: 07:57:
Ага, угадал.
Для пользователя обычно достаточно включить настройку один раз и эта настройка запоминается в дальнейшем.

Ну это и понятно - все тесты в одном каталоге делаю, просто содержимое удаляю)))
А что по делу можешь сказать?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватчик: Количество параметров процедур
Ответ #11 - 29. Февраля 2008 :: 08:31
Печать  
Выше уже написал
artbear писал(а) 29. Февраля 2008 :: 07:55:
Лады, подумаю над решением.

  

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


I Love YaBB 2!

Сообщений: 32
Зарегистрирован: 11. Февраля 2008
Re: Перехватчик: Количество параметров процедур
Ответ #12 - 29. Февраля 2008 :: 10:35
Печать  
А зачем он нужен - ВводНового?
Везде срабатывает ПриОткрытии. Для документов и справочников достаточно проверить на Выбран().
  
Наверх
 
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Перехватчик: Количество параметров процедур
Ответ #13 - 29. Февраля 2008 :: 12:23
Печать  
Kolhoznik писал(а) 29. Февраля 2008 :: 10:35:
А зачем он нужен - ВводНового?
Везде срабатывает ПриОткрытии. Для документов и справочников достаточно проверить на Выбран().

Чтобы обработать параметры Скопирован и ОбъектКопирования
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Перехватчик: Количество параметров процедур
Ответ #14 - 29. Февраля 2008 :: 12:45
Печать  
Chieftain писал(а) 28. Февраля 2008 :: 09:13:
Пробовал сделать универсального перехватчика и столкнулся с проблемой выполнения оригинального события "ВводНового"
Проблема как оказалось в разном количестве параметров - ведь в обработках параметров у этого метода нет, поэтому конструкция
Код
Выбрать все
Функция ВводНового(Скопирован,ОбъектКопирования) Экспорт
	 Сообщить(Скопирован);
КонецФункции 


Валит 1С намертво...
Как бы этого избежать?


На сколько я понял, Функция СобытиеГМ_ВводНового( Конт ) Экспорт это событие 1С++, никакого отношения к привычным ВводНового не имеющее. В этом СобытиеГМ_ВводНового можно определить, что за контекст вообще пытается народиться, решить - можно\нет, плюс назначить контексту ОКОП-перехватчик.
А уже этот перехватчик, который не будет полностью универсален, обработает в свою очередь штатный 1Совский ВводНового.

У меня вышла такая иерархия :

1. Независимый ОКОП "ГенералХук", который ловит все формы при их рождении, и решает, нужно ли их перехватывать, и если да - то чем. Больше ни чего не делает (вру, ещё ОбработкаЯчейкиТаблицы идет через него, и поскольку он глобален - в нем встроена регистрация изменений объектов после записи).

2. КОП "ПерехватФормы" реализующий метод "ПерехватитьКонтекстФормы". Самостоятельно не используется.
3. КОП "ПерехватФормыДокумент : ПерехватФормы"
4. КОП "ПерехватФормыЖурнал : ПерехватФормы"
5. КОП "ПерехватФормыСправочникЭлемент : ПерехватФормы"
6. КОП "ПерехватФормыСправочникГруппа : ПерехватФормы"
7. КОП "ПерехватФормыСправочникСписок : ПерехватФормы"
и т.д.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать