Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Вылет при перехвате ОбработкиПроведения (число прочтений - 10514 )
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Вылет при перехвате ОбработкиПроведения
13. Августа 2010 :: 10:27
Печать  
В глобальнике имею:
Код
Выбрать все
ОбъектПерехватГлобальника=СоздатьОбъект("ПерехватГлобальника");
	Перехватчик=СоздатьОбъект("Перехватчик");
	Перехватчик.ПерехватитьСобытияГлобальногоМодуля(ОбъектПерехватГлобальника); 


Код класса "перехватГлобальника":
Код
Выбрать все
//============================================================
Функция СобытиеГМ_СозданиеКонтекста(КонтФормы) Экспорт
	ТипКонтекстаСтр=_ГМ.контТип(КонтФормы);
	Если (ТипКонтекстаСтр="Документ") или (ТипКонтекстаСтр="Справочник")  Тогда
		ВидДокумента=_ГМ.контВид(КонтФормы);

		Перехватчик=СоздатьОбъект("Перехватчик");
		пПроведениеДокументов=СоздатьОбъект("ПерехватПроведенияДокументов");
		Перехватчик.ПерехватитьСобытияГК(КонтФормы, пПроведениеДокументов);
		Если ТипКонтекстаСтр="Документ" Тогда
			Перехватчик.ПерехватитьСобытияПроведенияДокумента(ВидДокумента, пПроведениеДокументов);
		КонецЕсли;
		пПроведениеДокументов.Инит(КонтФормы);
	КонецЕсли;
КонецФункции 


И код класса "ПерехватПроведенияДокументов":
Код
Выбрать все
Перем КонтФормы;

//======================================================
Процедура Инит(КонтекстФормы) Экспорт
	КонтФормы=КонтекстФормы;
КонецПроцедуры	// Инит

//==============================================================
Процедура Событие_ОбработкаПроведения(КонтекстДокумента, ПараметрПроведения) Экспорт
	//Перехватчик=СоздатьОбъект("Перехватчик");
	);
	//Если Рез<>1 Тогда
	//	Возврат;
	//КонецЕсли;
	//ТекДок=КонтФормы.ТекущийДокумент();
	//Сообщить("Проводим "+ТекДок+", Результат = "+Рез);
КонецПроцедуры	// Событие_ОбработкаПроведения(КонтекстДокумента) Экспорт

//=============================================================
Функция Событие_ПриОткрытии() Экспорт
	Перехватчик=СоздатьОбъект("Перехватчик");
	Если Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии")=0 Тогда	Возврат 0; КонецЕсли;
	Возврат 1;
КонецФункции// Событие_ПриОткрытии

//======================================================================
Функция Событие_ПриЗаписи() Экспорт
	Перехватчик=СоздатьОбъект("Перехватчик");
	Если Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы, "ПриЗаписи")=0 Тогда
		Возврат 0;
	КонецЕсли;

	Сообщить("Записали "+КонтФормы.ТекущийДокумент());
	Возврат 1;
КонецФункции // Событие_ПриЗаписи 



Открываем предприятие, проводим любой документ, закрываем предприятие - вылет.
Если не включать перехват проведения, т.е. удалить строку:
Код
Выбрать все
Перехватчик.ПерехватитьСобытияПроведенияДокумента(ВидДокумента, пПроведениеДокументов); 


то всё нормально.

Что я делаю не так и как надо делать правильно?
1С++ вер 3, 2, 1, 20 bf1
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вылет при перехвате ОбработкиПроведения
Ответ #1 - 13. Августа 2010 :: 10:45
Печать  
Тестовая конфа. Действия:
1. Положить 1С++ в каталог ИБ.
2. Запускаем предприятие и проводим документ "Новый1"
3. Закрываем предприятие.
имеем вылет.
  

1cpp________.rar ( 13 KB | Загрузки )
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Вылет при перехвате ОбработкиПроведения
Ответ #2 - 13. Августа 2010 :: 10:53
Печать  
Тоже вылет..
Правда, всё реализовано в 1 классе.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вылет при перехвате ОбработкиПроведения
Ответ #3 - 13. Августа 2010 :: 12:50
Печать  
1. Попробуйте на более старых версиях 1С++ до 3.2.1
2. Попробуйте поюзать
Процедура Событие_ОбработкаПроведения(КонтекстДокумента) Экспорт
т.е. без доп.параметра
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вылет при перехвате ОбработкиПроведения
Ответ #4 - 13. Августа 2010 :: 12:53
Печать  
Вообще не сталкивался с подобным.
Также можно в ПриЗавершенииРаботыСистеме попробовать самому снять перехваты на проведение документов.
  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Вылет при перехвате ОбработкиПроведения
Ответ #5 - 13. Августа 2010 :: 13:12
Печать  
artbear писал(а) 13. Августа 2010 :: 12:50:
1. Попробуйте на более старых версиях 1С++ до 3.2.1
2. Попробуйте поюзать
Процедура Событие_ОбработкаПроведения(КонтекстДокумента) Экспорт
т.е. без доп.параметра


Проверил..

на 3.0.1.26 ошибки нет

если писать Событие_ОбработкаПроведения(КонтекстДокумента)
ошибка остается на последнем релизе (на старом - нет)

Класс прилагаю, на всякий случай:
  

____________.rar ( 7 KB | Загрузки )
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вылет при перехвате ОбработкиПроведения
Ответ #6 - 13. Августа 2010 :: 13:13
Печать  
Да, это что-то с новыми версиями 1С++. проверял на 3, 0, 1, 24 - там всё нормально
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Вылет при перехвате ОбработкиПроведения
Ответ #7 - 13. Августа 2010 :: 16:40
Печать  
Проблему подтверждаю.
Связано с иным порядком инициализации и деинициализации компоненты в версии 3.2.
Пока разбираться, увы, не готов; но в багзилле зафиксировать надо.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вылет при перехвате ОбработкиПроведения
Ответ #8 - 13. Августа 2010 :: 17:35
Печать  
Млин, непруха какая-то. Как только сажусь с мыслью о том, что надо бы разобраться с Перехватчиком, так постоянно что-то происходит..  Нерешительный А от новых вкусных плюшек тоже отказаться не могу. Улыбка
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Вылет при перехвате ОбработкиПроведения
Ответ #9 - 13. Августа 2010 :: 17:49
Печать  
JohnyDeath писал(а) 13. Августа 2010 :: 17:35:
Млин, непруха какая-то. Как только сажусь с мыслью о том, что надо бы разобраться с Перехватчиком, так постоянно что-то происходит..  Нерешительный А от новых вкусных плюшек тоже отказаться не могу. Улыбка

Не садиись на пенёк, не еешь пирожок.  Подмигивание
Брось пока - будет свободный денечек, поразбираемся.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вылет при перехвате ОбработкиПроведения
Ответ #10 - 24. Августа 2010 :: 11:20
Печать  
Пока жду исходников последней версии icpp 3.2.2
Михаил мне прислал старые исходники, от версии 3.0.1.19
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вылет при перехвате ОбработкиПроведения
Ответ #11 - 24. Августа 2010 :: 11:35
Печать  
artbear писал(а) 13. Августа 2010 :: 12:53:
Также можно в ПриЗавершенииРаботыСистеме попробовать самому снять перехваты на проведение документов.

Этот вариант проверяли?
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вылет при перехвате ОбработкиПроведения
Ответ #12 - 24. Августа 2010 :: 11:54
Печать  
artbear писал(а) 24. Августа 2010 :: 11:35:
artbear писал(а) 13. Августа 2010 :: 12:53:
Также можно в ПриЗавершенииРаботыСистеме попробовать самому снять перехваты на проведение документов.

Этот вариант проверяли?

Эх, проверил сам, баг исчезает!

В коде класса-обработчика событий ГМ пишем
Цитата:
Процедура СобытиеГМ_ПриЗавершенииРаботыСистемы() Экспорт
     Перехватчик=СоздатьОбъект("Перехватчик");
     Для к=1 По Метаданные.Документ() Цикл
           ификатор);
     КонецЦикла;
КонецПроцедуры


при выходе из 1С ошибки нету и процесс также не висит.
ИМХО как временное решение подойдет Улыбка
  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Вылет при перехвате ОбработкиПроведения
Ответ #13 - 24. Августа 2010 :: 11:58
Печать  
artbear писал(а) 24. Августа 2010 :: 11:35:
artbear писал(а) 13. Августа 2010 :: 12:53:
Также можно в ПриЗавершенииРаботыСистеме попробовать самому снять перехваты на проведение документов.

Этот вариант проверяли?


Супер!!!
Вылета нет!
Можно забить на проблему Улыбка)
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Вылет при перехвате ОбработкиПроведения
Ответ #14 - 24. Августа 2010 :: 12:02
Печать  
artbear писал(а) 24. Августа 2010 :: 11:20:
Пока жду исходников последней версии icpp 3.2.2
Михаил мне прислал старые исходники, от версии 3.0.1.19

Что ж ты, Артур, везде неправду пишешь.
А потом люди скажут: дааа, эх, Михаил - даже старые исходники от новых отличить не можешь.
Нехорошо, Артур.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать