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


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

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

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: Хотелка по Перехватчику
Ответ #16 - 07. Августа 2008 :: 05:54
Печать  
artbear писал(а) 07. Августа 2008 :: 04:07:
Насколько я помню, в СобытиеГМ_ВводНового я вообще не вводил ОбъектКопирования для совместимости с отчетами/обработками.

но он (ОбъектКопирования) есть для документов, справочников. Паровозом, что-ли, прицепился? Улыбка
и если смотреть на отчеты/обработки, то и не нужен ФлагКопирования. Поправьте, если я не прав, но не видел, чтобы у отчетов когда-либо ФлагКопирования был равен 1 (или плохо смотрел  Нерешительный).
Если уже ОбъектКопирования возвращает, когда нужно, значение, то можно для него на отчеты поставить заглушку. Пусть ничего не возвращает, он не вылетает.
Если не сложно, конечно. А то получается: сказали "А" (ФлагКопирования), а "Б" сказать забыли Улыбка

ЗЫ Артур, с выходом из отпуска!
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #17 - 07. Августа 2008 :: 06:06
Печать  
Создайте баг, добавлю в СобытиеГМ_ВводНового параметры по максимуму, для отчетов будут пустые значения.
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #18 - 07. Августа 2008 :: 06:17
Печать  
AndreyM писал(а) 07. Августа 2008 :: 05:54:
но он (ОбъектКопирования) есть для документов, справочников. Паровозом, что-ли, прицепился? Улыбка

Сбил ты всех с толку. Нету в ГМ параметра ОбъектКопирования. Это событие Перехватчика.

Цитата:
12. В добавление ко всем стандартным событиям 1С и ВК FormEx добавлено событие "СобытиеГМ_ВводНового(КонтФормы, флагКопирования)" для перехвата глобального модуля. Событие работает аналогично событию СобытиеГМ_ПриОткрытии
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #19 - 07. Августа 2008 :: 06:48
Печать  
Фактически при использовании данного события для отчетов/обработок нельзя обращаться к несуществующим реквизитам типа ОбъектКопирования Печаль
т.е. в пользовательском коде перед использованием данного параметра должна стоять проверка на тип контекста.
  

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: Хотелка по Перехватчику
Ответ #20 - 07. Августа 2008 :: 06:52
Печать  
Arta писал(а) 07. Августа 2008 :: 06:17:
Сбил ты всех с толку. Нету в ГМ параметра ОбъектКопирования. Это событие Перехватчика.

А кто говорит про ГМ? Мы обсуждаем пожелание к событию Перехватчика: СобытиеГМ_ВводНового. И тема ветки так называется.  Подмигивание Не нервничай.

artbear писал(а) 07. Августа 2008 :: 06:48:
Фактически при использовании данного события для отчетов/обработок нельзя обращаться к несуществующим реквизитам типа ОбъектКопирования Печаль

Так, до обращения дело совсем не доходит - валится раньше, видимо, при входе в СобытиеГМ_ВводНового

Артур, в багзилле зарегистрировал:
http://www.1cpp.ru/bugs/show_bug.cgi?id=4040
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #21 - 07. Августа 2008 :: 06:59
Печать  
Тест падения предоставить можешь? Мне непонятно, где и как падает Печаль
  

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: Хотелка по Перехватчику
Ответ #22 - 07. Августа 2008 :: 07:10
Печать  
щас попробую слепить - там несколько вариантов, при которых падает 1С.
пока искал выход - тестовую конфу переделывал до рабочего состояния
всё будет для релиза 3.0.1.12 (хотя некоторые варианты проверялись и на 2.5 - та же проблема)
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #23 - 07. Августа 2008 :: 10:32
Печать  
artbear писал(а) 07. Августа 2008 :: 06:59:
Тест падения предоставить можешь? Мне непонятно, где и как падает Печаль

Сейчас у него валится, потому что он сделал три параметра, вместо двух, которые есть в событии.
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #24 - 07. Августа 2008 :: 12:01
Печать  
Arta писал(а) 07. Августа 2008 :: 10:32:
artbear писал(а) 07. Августа 2008 :: 06:59:
Тест падения предоставить можешь? Мне непонятно, где и как падает Печаль

Сейчас у него валится, потому что он сделал три параметра, вместо двух, которые есть в событии.

И да, и нет. Можно работать и с тремя параметрами, но регить класс ... щас напишу

писал - отошел - вернулся - окно чистое
щас еще раз буду писать, но уже кратко...
  

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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #25 - 07. Августа 2008 :: 13:32
Печать  
После нескольких дней попыток и, в итоге, обхода проблем, всё нижесказанное не претендует на баг, но неприятно, поэтому всё-таки доведу до сведения...
Тестирование проводилось на 1срр 3.0.1.12 (и частично на 2.5.0.6 от 01.08.08), 1С 27-й релиз, ХРпроф СП2.

Некоторые наблюдения, по-поводу Перехватчика:

1. Реализацию класса-перехватчика ГМ нужно описывать только в текстовом файле
из минусов - синтаксический контроль, из плюсов, ниже:
а) если описать в модуле обработки (внешней или в конфе – не важно), то при включенном режиме «Отладки» из 1С выйти можно только через диспетчер задач. Это относится только к классу-перехватчику ГМ, в перехватчиках ГК всё в порядке где-то с 05.06.08 http://www.1cpp.ru/forum/YaBB.pl?num=1212479640/15.
б) вариант, если предусмотреть выполнять метод СнятьПерехватСобытийГлобальногоМодуля() перед закрытием 1С, но тогда это не режим отладки…
в) выполнять этот метод ПриЗавершенииРаботыСистемы() или СобытиеГМ_ПриЗавершенииРаботыСистемы() – в режиме Отладка до него не доходит выполнение.
г) перед созданием класса-перехватчика или в реализации класса, перед установкой перехвата, с помощью класса «УправлениеНастройками» переводить в режим «Оптимизация» - ничего не дает. Наверное, необходимо некоторое время для перевода системы в новый режим – не уточнял, но не работает сразу (можно попробовать в прилагаемой конфе)

2. Если класс-перехватчик устанавливает перехват на себя, то в СобытиеГМ_ВводНового(Конт) нужно описывать один входной параметр, а не два, как в описании, и не три, как хотелось бы. Но тогда теряется смысл этого события – можно использовать СобытиеГМ_ПриОткрытии(Конт).
а) использование двух параметров, даже как описано в доке – вылет 1С
б) метод из документации - тоже не работает, но в прилагаемой конфе я не сделал пример.
в) вариант, как можно использовать все три параметра в СобытиеГМ_ВводНового (см. Тест 1), но бесит использование класса-пустышки. Но работает! Посмотришь, Артур, может можно что-то малой кровью придумать, чтобы без «пустышки» работать.

3. В классе-перехватчике ГМ нельзя описывать Деструктор(), даже ничего не выполняющий – уже после выхода из 1С, выскакивает ошибка (хотя, он совсем не нужен). Единственная необходимость, если в процессе работы программы менять перехватчики ГМ, но логики в этом - никакой.

4. Зачем нужен метод ВыполнитьСобытиеГлобальногоМодуля(), если нельзя два класса-перехватчика ГМ использовать? Единственное, что пришло в голову, это вызывать процедуры/функции ГМ и КОП, без проверки: есть они или нет.

5. Не относящееся к Перехватчику: если в модуле обработки хранить код нескольких классов, то, при создании экземпляра одного из классов, включается синтаксический контроль 1С. Т.е. если у двух классов есть одинаковые методы или во втором классе описываем переменные, то сыпятся ошибки, и класс не создается. С внешним текстовым файлом такой проблемы нет.

Зараннее, спасибо.
  

testClass.rar ( 18 KB | Загрузки )

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #26 - 07. Августа 2008 :: 13:44
Печать  
AndreyM писал(а) 07. Августа 2008 :: 13:32:
1. Реализацию класса-перехватчика ГМ нужно описывать только в текстовом файле
из минусов - синтаксический контроль

Только начал читать.
Сразу скажу, что это не минус, юзай в Конфигураторе Визуал1С++ версии 1.0.0.13-14, там я решил проблему синтакс-контроля для текстовых классов Улыбка

ЗЫ читаю дальше.
  

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: Хотелка по Перехватчику
Ответ #27 - 07. Августа 2008 :: 13:48
Печать  
Буду отвечать по шагам.
AndreyM писал(а) 07. Августа 2008 :: 13:32:
а) если описать в модуле обработки (внешней или в конфе – не важно), то при включенном режиме «Отладки» из 1С выйти можно только через диспетчер задач. Это относится только к классу-перехватчику ГМ, в перехватчиках ГК всё в порядке где-то с 05.06.08 http://www.1cpp.ru/forum/YaBB.pl?num=1212479640/15.
б) вариант, если предусмотреть выполнять метод СнятьПерехватСобытийГлобальногоМодуля() перед закрытием 1С, но тогда это не режим отладки…
в) выполнять этот метод ПриЗавершенииРаботыСистемы() или СобытиеГМ_ПриЗавершенииРаботыСистемы() – в режиме Отладка до него не доходит выполнение.

Сделай поиск по ПриЗавершенииРаботыСистемы и моему нику, я описывал решение проблемы для подобных случаев Улыбка
Блин, все забываю в доку закинуть Печаль
  

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


I Love YaBB 2!

Сообщений: 135
Зарегистрирован: 18. Октября 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #28 - 07. Августа 2008 :: 13:56
Печать  
У меня СобытиеГМ_ВводНового(КонтФормы,флагКопирования) работает. Правда перехват не сам на себя. 3.0.1.11. Ну и конечно если не лезть к флагКопирования там где не надо.
Вообще для глобального действительно хотелось бы 3 параметра. И чт бы не падало при обращении к ним.))
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



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


Все работает! ПерехватГМ не менял уже полгода наверное.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать