Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Хотелка по Перехватчику (число прочтений - 17789 )
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Хотелка по Перехватчику
04. Августа 2008 :: 11:25
Печать  
Господа разработчики, а можно подправить баг, чтобы событие глобального модуля ВводНового имело все параметры, т.е.:
Код
Выбрать все
Функция СобытиеГМ_ВводНового(Конт,ФлагКопирования,ОбъектКопирования) Экспорт 


ОбъектКопирования - возвращает объект при копировании документа, справочника,
но 1С вылетает при открытии отчетов/обработок.
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #1 - 04. Августа 2008 :: 11:43
Печать  
Это не баг.
Если не хочешь менять схему перехватчика, то не обращайся ко второму параметру, пока не проверишь тип объекта.


P.S. И ты ошибся разделом
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #2 - 04. Августа 2008 :: 11:56
Печать  
Arta писал(а) 04. Августа 2008 :: 11:43:
...не обращайся ко второму параметру, пока не проверишь тип объекта.

так если я не опишу ОбъектКопирования во входных параметрах, то как я его получу?
Если сейчас описано событие:
Код
Выбрать все
Функция СобытиеГМ_ВводНового(Конт,ФлагКопирования) Экспорт 


Определил, что Конт - ГК документа, введен копированием - как определить из какого объекта он скопирован?
Может есть по этому поводу наработки/предложения? Найти не могу...

З.Ы. извините, что не в тот раздел написал - увидел здесь хотелки, сюда и написал  Улыбка
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #3 - 04. Августа 2008 :: 12:29
Печать  
Код
Выбрать все
Функция СобытиеГМ_ВводНового(Конт,ФлагКопирования, ОбъектКопирования) Экспорт
  РасширениеФормы = СоздатьОбъект("РасширениеФормы");
  РасширениеФормы.УстановитьФорму(Конт.Форма);
  ТипОбъекта = РасширениеФормы.ТипОбъекта();
  Если ТипОбъекта = "Документ" Тогда
    Сообщить(ОбъектКопирования);
  Иначе
    Сообщить("А тут к ОбъектКопирования обращаться нельзя");
  КонецЕсли;
  Возврат 1;
КонецЕсли;
 



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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #4 - 04. Августа 2008 :: 12:36
Печать  
Не, ты меня не понял. Я вообще ничего не делаю с переданными параметрами. Пока искал проблему вылета 1С - код получился такой:
Код
Выбрать все
Функция СобытиеГМ_ВводНового(Конт,ФлагКопирования,ОбъектКопирования) Экспорт
//Функция СобытиеГМ_ВводНового(Конт,ФлагКопирования) Экспорт
	//#curmeth
	Возврат 1;
КонецФункции  


сначала долго возился с обработкой, которая открывается ПриНачалеРаботыСистемы(), а дошло дело вот до чего.
Если заголовок функции сделать как во второй строке - всё в порядке с отчетами/обработками.

Кстати, приведенный тобой код также будет вылетать - не успев дойти до РасширениеФормы = Создать...

1СРР: 3.0.1.12
1С: релиз 27
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #5 - 04. Августа 2008 :: 12:42
Печать  
Хмм... Печаль
Посмотрел код, да действительно, у меня ОбъектаКопирования в параметрах вообще нет.
Артур на эту тему писал, поищи по форуму.
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #6 - 04. Августа 2008 :: 12:56
Печать  
Так не нашел  Печаль, поэтому и спрашиваю...
Есть ссылки про СобытиеГМ_ВводНаОсновании, а про ввод нового - ничего.
А Артур не посмотрит на эту тему? Долго его еще не будет?
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #7 - 04. Августа 2008 :: 12:59
Печать  
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #8 - 04. Августа 2008 :: 13:02
Печать  
Поиск по имени события дал несколько ссылок
одна из них: http://www.1cpp.ru/forum/YaBB.pl?num=1208529993/7#7
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #9 - 04. Августа 2008 :: 14:06
Печать  
Попробую через ГК, без глобального перехвата - может получу объект копирования.
Arta, cпасибо за ссылку, но там рассматривается таже проблема, а Артур обещал подумать...

Странно, но мне по поиску ВводНового - выдало толлько мои два последних сообщения и всё!
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #10 - 04. Августа 2008 :: 14:11
Печать  
AndreyM писал(а) 04. Августа 2008 :: 14:06:
Попробую через ГК, без глобального перехвата - может получу объект копирования.

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


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

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

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: Хотелка по Перехватчику
Ответ #12 - 05. Августа 2008 :: 12:02
Печать  
artbear писал(а) 05. Августа 2008 :: 11:01:
7.08 я выхожу из оффлайна, ветку обновите, я увижу и подумаю.

А это была тень Артура Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хотелка по Перехватчику
Ответ #13 - 07. Августа 2008 :: 04:07
Печать  
А вот и я сам Улыбка

Насколько я помню, в СобытиеГМ_ВводНового я вообще не вводил ОбъектКопирования для совместимости с отчетами/обработками.
  

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: Хотелка по Перехватчику
Ответ #14 - 07. Августа 2008 :: 05:32
Печать  
artbear писал(а) 07. Августа 2008 :: 04:07:
А вот и я сам Улыбка

Насколько я помню, в СобытиеГМ_ВводНового я вообще не вводил ОбъектКопирования для совместимости с отчетами/обработками.


Артур, а "Количество параметров в событии 'ВводНового'  должно быть меньше или равно 1" разве не должно вылезти? Улыбка
Или ты на Перехватчик ГМ не делаешь проверку?
  
Наверх
 
IP записан
 
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 записан
 
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] 
ОтправитьПечать