Переключение на Главную Страницу Страницы: 1 2 [3]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Хотелка по Перехватчику (число прочтений - 17782 )
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #30 - 07. Августа 2008 :: 14:15
Печать  
Arta писал(а) 07. Августа 2008 :: 14:14:
AndreyM писал(а) 07. Августа 2008 :: 13:32:
3. В классе-перехватчике ГМ нельзя описывать Деструктор(), даже ничего не выполняющий – уже после выхода из 1С, выскакивает ошибка (хотя, он совсем не нужен). Единственная необходимость, если в процессе работы программы менять перехватчики ГМ, но логики в этом - никакой.


Все работает! ПерехватГМ не менял уже полгода наверное.

+1
А я его даже около года не трогал в своих 1С Улыбка
  

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: Хотелка по Перехватчику
Ответ #31 - 07. Августа 2008 :: 14:19
Печать  
Да, с последней сборкой icpp баг с падением вижу Печаль
Завтра постараюсь разобраться.

ЗЫ на 2.5.0.6 все нормально Печаль
  

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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #32 - 07. Августа 2008 :: 14:21
Печать  
Цитата:
Вообще для глобального действительно хотелось бы 3 параметра. И чт бы не падало при обращении к ним.))

посмотри, как сделано в Тест 1:  3 параметра и не падает
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #33 - 07. Августа 2008 :: 14:30
Печать  
По Деструктор и Перехват ГМ - возможно, что в деструкторе перехватчика ГМ ты выполняешь какие-то действия с визуальными фичами, типа Сообщить, Предупреждение, Состояние и т.п.
А Деструктор подобного перехватчика, если его не вызвать принудительно через СнятьПерехватГМ, будет вызван уже при закрытых окнах 1С, и соответственно будет выдана ошибка в виде модального окна Печаль
Проверь свой код деструктора.
  

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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #34 - 07. Августа 2008 :: 14:56
Печать  
Господа, я же написал, что тест проводился на сборке 3.0.1.12.
Я же не с потолка взял проблемы и не из-за невнимательности. Несколько дней просидел, пытаясь найти правду, и только после этого написал, приложил конфу (можно сказать, пустую) с событиями, которые ничего не делают, а только присутствуют (чтобы не ловить тараканов).
Я пользовался 2.5.0.6 еще за декабрь 2007 и февраль 2008года и у меня ВСЁ тоже раньше работало.
Теперь решил заюзать 3-ю версию и нарвался на подводные камни.
Поэтому фразы "у меня всё работает", по-моему ни к чему.
Ну давайте, либо искать выход из проблемы/ошибки, либо я нашел как сделать, чтобы работало или что не делать, чтобы не вылетало, и буду сидеть, смотреть на форум и радоваться, что я уже нашел, а другие только ищут или будут искать, тратить время... Смысл тогда форума?

ЛЮДИ, давайте жить дружно!
Я извиняюсь перед ВСЕМИ, если кого обидел словом, жестом, фразой... Извините меня, пожалуйста  Нерешительный

ЗЫ Просто, кому интересно, возьмите прилагаемый файл, распакуйте и посмотрите. Там написано что делать и чего не делать. Если я не прав - скажите.
Тем более, что Артур уже один баг с падением узрел. Ждем дальше...
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #35 - 07. Августа 2008 :: 15:01
Печать  
artbear писал(а) 07. Августа 2008 :: 14:30:
По Деструктор и Перехват ГМ - возможно, что в деструкторе перехватчика ГМ ты выполняешь какие-то действия с визуальными фичами, типа Сообщить, Предупреждение, Состояние и т.п.
Проверь свой код деструктора

Нет, ничего не выполняю - в прилагаемой конфе я его вообще не использую. Просто копировал "шаблон" класса и нарвался на эту неприятность.
В прилагаемой конфе раскомментируй Деструктор() - там, кроме //#curmeth ничего нет.
И увидишь, как падает и в первом и во-втором Тесте.
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #36 - 07. Августа 2008 :: 15:17
Печать  
artbear писал(а) 07. Августа 2008 :: 13:48:
Сделай поиск по ПриЗавершенииРаботыСистемы и моему нику, я описывал решение проблемы для подобных случаев Улыбка
Блин, все забываю в доку закинуть Печаль


А закинь в доку или обнови на форуме.

Ничего такого не нашел, только предположения по поводу и подобное, но без решения...
http://www.1cpp.ru/forum/YaBB.pl?num=1205930698/40#40
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #37 - 08. Августа 2008 :: 08:33
Печать  
Цитата:
Возможна проблема: Глобальные объекты, созданные в режиме отладки, не дают закрыть 1С!
Например, если в глобальном модуле написано
  Перем глОбъект;
  Процедура ПриНачалеРаботыСистемы()
     ЗагрузитьВнешнююКомпоненту("1cpp.dll");
     // а теперь включить режим отладки
       глОбъект = СоздатьОбъект("КОП");
     // объект создан в режиме отладки, его отладочная форма видна на экране
  КонецПроцедуры  // ПриНачалеРаботыСистемы

  После запуска такой конфигурации в режиме отладки
  1С невозможно закрыть стандартными средствами Печаль

  К сожалению, не помогает и явный сброс объекта
  Процедура ПриЗавершенииРаботыСистемы()
     глОбъект = 0;
  КонецПроцедуры  // ПриЗавершенииРаботыСистемы
  До этой процедуры дело просто не доходит Печаль

  Простой вариант решения в этом случае - спец. обработка, обнуляющая все глобальные объекты


Сейчас занесу в доку.
  

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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #38 - 08. Августа 2008 :: 08:57
Печать  
artbear писал(а) 08. Августа 2008 :: 08:33:
Сейчас занесу в доку.

Было бы неплохо. Вопрос с Деструктор()ом в Перехватчике ГМ снят.

artbear писал(а) 07. Августа 2008 :: 14:15:
А я его даже около года не трогал в своих 1С Улыбка

У тебя, в тестовой конфе, он (Деструктор) закомментирован  Подмигивание
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #39 - 08. Августа 2008 :: 09:13
Печать  
AndreyM писал(а) 07. Августа 2008 :: 13:32:
2. Если класс-перехватчик устанавливает перехват на себя, то в СобытиеГМ_ВводНового(Конт) нужно описывать один входной параметр, а не два, как в описании, и не три, как хотелось бы. Но тогда теряется смысл этого события – можно использовать СобытиеГМ_ПриОткрытии(Конт).
а) использование двух параметров, даже как описано в доке – вылет 1С
б) метод из документации - тоже не работает, но в прилагаемой конфе я не сделал пример.
в) вариант, как можно использовать все три параметра в СобытиеГМ_ВводНового (см. Тест 1), но бесит использование класса-пустышки. Но работает! Посмотришь, Артур, может можно что-то малой кровью придумать, чтобы без «пустышки» работать.

Артур, больше интересует вопрос из п.2в. Можешь посмотреть, почему при регистрации класса-перехватчика из другого класса возвращаются три параметра и нет вылета на отчетах, а если регить самого себя или из ГМ или модуля отчета, например, то происходит вылет?
Т.е. почему возврат трёх параметров, без вылетов 1С, происходит только при определенной регистрации одного и того-же кода класса-перехватчика?
Получается, что у тебя предусмотрен возврат всех параметров при вводе нового, но при определенных комбинациях. Улыбка
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #40 - 08. Августа 2008 :: 09:34
Печать  
AndreyM писал(а) 08. Августа 2008 :: 09:13:
Получается, что у тебя предусмотрен возврат всех параметров при вводе нового, но при определенных комбинациях. Улыбка

Нет, это тебе просто повезло Улыбка
Ладно, буду думать.
  

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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #41 - 09. Августа 2008 :: 17:43
Печать  
artbear писал(а) 08. Августа 2008 :: 09:34:
Нет, это тебе просто повезло Улыбка
Ладно, буду думать.

Может не стоит? Для обратной совместимости.
Судя по форуму, люди, в основном, используют очень старые релизы 1срр
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать