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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #75 - 09. Апреля 2007 :: 05:34
Печать  
В дальнейшем я планирую исправить данный недочет.
  

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: СтатусВозврата в классе "Перехватчик"
Ответ #76 - 09. Апреля 2007 :: 05:56
Печать  
artbear писал(а) 09. Апреля 2007 :: 05:25:
Нашлась одна неявная фича/баг при использовании перехватчика.


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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #77 - 09. Апреля 2007 :: 06:10
Печать  
artbear писал(а) 09. Апреля 2007 :: 05:34:
В дальнейшем я планирую исправить данный недочет.

Планирую, что "ВызватьОригинальноеСобытие..." будет работать не со списком значений, а использовать те параметры, которые соответствуют событию.
Т.е. типа
Код
Выбрать все
, Значение, ФлагСтандОбраб, Таблица, Адрес);  


ИМХО так и правильнее, и проблема с передачей по ссылке исчезнет.
  

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: СтатусВозврата в классе "Перехватчик"
Ответ #78 - 09. Апреля 2007 :: 06:56
Печать  
Да, так будет значительно наглядней
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #79 - 11. Апреля 2007 :: 03:59
Печать  
Изменения в Перехватчике
http://www.1cpp.ru/forum/YaBB.pl?num=1173766505/4#4
  

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: СтатусВозврата в классе "Перехватчик"
Ответ #80 - 11. Апреля 2007 :: 06:17
Печать  
Обнаружился еще один баг при использовании Перехватчике.
Но это системный баг, т.к. он связан с примененным механизмом перехвата методов 1С, т.е. я пока даже не представляю как его обойти Печаль

Например, если при двойном щелчке на печатной форме в ячейке с расшифровкой работает код по открытию какой-то новой формы (ОткрытьФорму), в этом случае не будет вызван перехват событий 1С.
Это относится ко всем типовым отчетам, в которых есть кнопка Настройка - для формы, открытой путем ее нажатия, перехват не вызываетс я.

Связано это с тем, что при обработке нажатия на ячейку таблицы управление передается перехватчику, который возвращает управление 1С, восстанавливая код перехваченной функции CBLModule7::ExecProc. Эта исходная функция 1С вызывает код 1С по обработке расшифровки, который в свою очередь и вызывает ОткрытьФорму. При открытии формы 1С вызывает указанную функцию CBLModule7::ExecProc, перехват на которую не установлен Печаль и получается труба Печаль
  

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: СтатусВозврата в классе "Перехватчик"
Ответ #81 - 11. Апреля 2007 :: 15:08
Печать  
Все-таки удалось найти нормальный выход из положения Улыбка
Цитата:
Выход из ситуации найден такой - из кода 1С видно, что 1С всегда при вызове CBLModule7::ExecProc
вызывает метод CBLModule::IsCompiled
Поэтому перед вызовом исходной CBLModule7::ExecProc (в этот момент перехват этой функции уже снят, без этого никак)
я перехватываю CBLModule::IsCompiled и вызываю исходную CBLModule7::ExecProc
Далее попадаю в свой перехват CBLModule::IsCompiled и восстанавливаю свой же перехват CBLModule7::ExecProc
После этого перехват CBLModule::IsCompiled снимается и все работает как обычно
и вуаля, проблема решена !! УРА Улыбка


C чем нас всех и поздравляю.
  

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: СтатусВозврата в классе "Перехватчик"
Ответ #82 - 11. Апреля 2007 :: 15:41
Печать  
Жду когда можно будет попробовать...

ЗЫ.. кстати - про "ПриНачалеВыбораЗначения" не смотрел?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #83 - 12. Апреля 2007 :: 03:07
Печать  
Chieftain писал(а) 11. Апреля 2007 :: 15:41:
ЗЫ.. кстати - про "ПриНачалеВыбораЗначения" не смотрел?

В новой сборке все нормально работает, т.к. указанные тобой баги также относились к указанному мной багу.
  

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: СтатусВозврата в классе "Перехватчик"
Ответ #84 - 12. Апреля 2007 :: 06:06
Печать  
artbear писал(а) 12. Апреля 2007 :: 03:07:
Chieftain писал(а) 11. Апреля 2007 :: 15:41:
ЗЫ.. кстати - про "ПриНачалеВыбораЗначения" не смотрел?

В новой сборке все нормально работает, т.к. указанные тобой баги также относились к указанному мной багу.


Ладно, с этим понятно - попробовал последнюю сборку и все вроде заработало!


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


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

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

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: СтатусВозврата в классе "Перехватчик"
Ответ #86 - 12. Апреля 2007 :: 06:53
Печать  
Еще один небольшой баг нарисовался
Цитата:
Исправлен баг - при вызове методов "Перехватчик::ВыполнитьОригинальноеСобытие..."
в случае отсутствия обработчика этого события в модуле формы или глобальнике выдавался СтатусВозврата(0)


и был исправлен.

Брать завтра в ночной сборке.
  

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


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 06. Мая 2007
Re: СтатусВозврата в классе "Перехватчик"
Ответ #87 - 06. Мая 2007 :: 21:21
Печать  
Цитата:
Лады, сделаю перехват типа "СобытиеГМ_ВводНового"

А когда можно ждать перехвата события "ВводНового"?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #88 - 07. Мая 2007 :: 04:03
Печать  
Думаю, в ближайшие дни.
Самому его не хватает Улыбка.

ЗЫ и такое впечатление, что данное событие вызывается перед ПриОткрытии почти для любых форм, а не только справочников и документов - например, для отчетов и обработок вызывается точно !!
  

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: СтатусВозврата в классе "Перехватчик"
Ответ #89 - 08. Мая 2007 :: 08:02
Печать  
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 7 8 9
ОтправитьПечать