Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате (число прочтений - 4212 )
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
05. Мая 2011 :: 03:14
Печать  
Надо что-то с этим делать ... рубить 1с и потом 30 минут ждать переиндексации - это не выход ... или пусть ошибка обрабатывается классом перехвата, или пусть будет возможность закрыть окно, не зависимо от наличия ошибки...
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #1 - 05. Мая 2011 :: 04:40
Печать  
У тебя полный контроль и полная ответственность за работу класса-перехватчика.
Исправляй свои классы, закидывай код, который может дать ошибку, в блок Попытка-КонецПопытки.
  

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: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #2 - 05. Мая 2011 :: 04:41
Печать  
Пример ошибки дай.
  

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


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #3 - 05. Мая 2011 :: 05:22
Печать  
Да не в классе ошибка, а в модуле окна, которое перехватилось (а перехватываются они все) ... класс перехвата вообще не подозревает, что была ошибка ... про ошибку значет только пользователь, т.к. видит сообщение "Возникла ошибка в оригинальном обработчике события ПриЗакрытии". А класс перехвата считает, что все ок. Но наличие той ошибки приводит к тому, что форма не закрывается никак кроме прерывания работы процесса... Без перехвата 1С задает следующий вопрос: "Ошибка при выполнении модуля! Закрыть?", что решает проблему.
При наличии перехвата такой вопрос не возникает... не происходит и закрытия формы...
Чтобы получить такую ошибку достаточно описать следующую процедуру
Код
Выбрать все
Процедура ПриЗакрытии()
	Сообщить(1 / 0);
КонецПроцедуры // ПриЗакрытии 

и добавить перехват события формы ПриЗакрытии.

Если есть решение - научите...
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #4 - 05. Мая 2011 :: 05:31
Печать  
Не вкурил вообще, зачем классу уметь отлавливать такие ошибки, чего, если б не было перехвата тоже б забил на ошибку и не исправлял ?..
Исправь её, и привет.
Зачем об этом заботится классу перехватчику ?
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #5 - 05. Мая 2011 :: 06:11
Печать  
Поддержу - иногда бывает, что возникает непредвиденная ошибка, и все - ни вперед ни назад..
Может есть какой красивый способ?
А то весь код в попытка-исключение не запихнешь..
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #6 - 05. Мая 2011 :: 06:16
Печать  
считаю что перехватчик не должен ломать штатное поведение системы заключенное в словах - Цитата:
Без перехвата 1С задает следующий вопрос: "Ошибка при выполнении модуля! Закрыть?", что решает проблему.
  

1&&2&&3
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #7 - 05. Мая 2011 :: 06:22
Печать  
trad писал(а) 05. Мая 2011 :: 06:16:
считаю что перехватчик не должен ломать штатное поведение системы заключенное в словах - Цитата:
Без перехвата 1С задает следующий вопрос: "Ошибка при выполнении модуля! Закрыть?", что решает проблему.

Поддерживаю!

Eprst писал(а) 05. Мая 2011 :: 05:31:
Не вкурил вообще, зачем классу уметь отлавливать такие ошибки, чего, если б не было перехвата тоже б забил на ошибку и не исправлял ?..
Исправь её, и привет.
Зачем об этом заботится классу перехватчику ?

Затем, что разработчик в конфе обычно не один, что и вызывает подобные накладки... Ошибка возникла по вине другого разработчика в модуле, о работе которого я имею только общее представление, а то и вообще не знал о нем, пока не вылез косяк...
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #8 - 05. Мая 2011 :: 06:47
Печать  
Dmitry The Wing писал(а) 05. Мая 2011 :: 06:22:
Затем, что разработчик в конфе обычно не один, что и вызывает подобные накладки... Ошибка возникла по вине другого разработчика в модуле, о работе которого я имею только общее представление, а то и вообще не знал о нем, пока не вылез косяк...

Ага..
В том числе поэтому пока и не внедряю перехватчик в новой базе..
(помимо того, что с перехватчиком вообще нужно работать крайне аккуратно - одно неловкое движение и 1С сворачивается в коврик)
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #9 - 05. Мая 2011 :: 07:56
Печать  
CaBaT писал(а) 05. Мая 2011 :: 06:47:
(помимо того, что с перехватчиком вообще нужно работать крайне аккуратно - одно неловкое движение и 1С сворачивается в коврик)

В данном случае обратная ситуация, - она никак и никуда не сворачивается, акромя убиения процесса, что ни разу не легче...
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #10 - 05. Мая 2011 :: 10:23
Печать  
Поддерживаю

Ладно, у меня база поднята под скулем - и реиндексации после убиение процесса не требуется.
Но даже в таком виде - сильно напрягает...
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #11 - 13. Мая 2011 :: 10:29
Печать  
И ведь что обидно - ВыполнитьОригинальноеСобытиеГК возвращает 0 и никак не узнать - это так и задумано или произошла ошибка в оригинальном обработчике.
А ведь в окно выводится сообщение о том, что в оригинальном обработчике произошла ошибка, значит перехватичк об этом как то знает..
Вот бы как-нибудь выцепить это..
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #12 - 14. Мая 2011 :: 05:04
Печать  
К сожалению, пока нет времени заниматься разработкой 1С++.
Я практически полностью на 8-ке.
  

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


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Невозможность закрытия 1С при ошибке в ПриЗакрытии и Перехвате
Ответ #13 - 16. Мая 2011 :: 05:41
Печать  
Да я в общем то клонил к тому, что может есть какой способ без ковыряния компоненты, просто я его не знаю..
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать