Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Нужен совет по поиску проблемы падения 1С (число прочтений - 5666 )
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по поиску проблемы падения 1С
Ответ #15 - 15. Февраля 2011 :: 10:16
Печать  
chessman писал(а) 14. Февраля 2011 :: 15:39:
а чем тебе Express-вариант не нравится?  таки бесплатно Улыбка

имеешь ввиду это?
http://www.hex-rays.com/idapro/idadownfreeware.htm
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Нужен совет по поиску проблемы падения 1С
Ответ #16 - 15. Февраля 2011 :: 11:10
Печать  
CaBaT писал(а) 15. Февраля 2011 :: 10:16:
chessman писал(а) 14. Февраля 2011 :: 15:39:
а чем тебе Express-вариант не нравится?  таки бесплатно Улыбка

имеешь ввиду это?
http://www.hex-rays.com/idapro/idadownfreeware.htm


Я про студию говорил.
У IDы тоже есть бесплатный вариант, не знаю только насколько он урезан.
Хотя в данном случае, идея с логированием, более эффективна.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужен совет по поиску проблемы падения 1С
Ответ #17 - 15. Февраля 2011 :: 13:16
Печать  
Satans Claws писал(а) 15. Февраля 2011 :: 08:29:
Можешь проделать нудную и утомительную работу:
в каждом классе дописать конструктор + деструктор + локальную переменну "ГУИД_Объекта":

Множественный ООП никто не отменял.
ВСЕ классы делаем наследником от одного класса - ЛоггерОбъектов, в нем выполняем нужные действия.
Так что не очень-то и нудно Улыбка - меняем только часть файлов.
  

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С
Ответ #18 - 15. Февраля 2011 :: 13:21
Печать  
В чистой 1С нельзя открыть/закрыть слишком много окон, т.е. открываем\закрываем окна, течет память GDI, при достижении предельного числа GDI процесс 1С77 падает.
Эффект был исследован в одной из веток про GDI, адрес не помню.
  

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С
Ответ #19 - 15. Февраля 2011 :: 13:46
Печать  
artbear писал(а) 15. Февраля 2011 :: 13:21:
В чистой 1С нельзя открыть/закрыть слишком много окон, т.е. открываем\закрываем окна, течет память GDI, при достижении предельного числа GDI процесс 1С77 падает.
Эффект был исследован в одной из веток про GDI, адрес не помню.

Об этом знаю, но думаю, тут не этот случай - падает не в процессе работы, а при закрытии..
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по поиску проблемы падения 1С
Ответ #20 - 15. Февраля 2011 :: 13:59
Печать  
Для того, что бы внести ясность, почему я думаю, что проблема связана с инициализацией/разрушением объектов классов, опишу схему, которая у меня используется.

Есть набор классов, который представляет из себя по сути библиотеку служебных процедур/функций, которые сгруппированы по назначению. (например на картинке - группа классов "Система").

В свою очередь классы могут использовать методы других классов, а что бы не плодить в памяти одинаковые экземпляры классов, был придуман специальный диспетчер, через который идет обращение к классам, который при необходимости создает экземпляры классов и сохраняет в своем списке.
Это было необходимо для того, что взаимосвязь классов стала сложной, а при обращении через диспетчер достигается автоматическое создание экземпляров классов по мере необходимости.

Так вот я думаю, что при завершении работы при уничтожении объектов классов происходит какая то шляпа..
Экземпляры удаляются неявно, т.е. при уничтожении диспетчера удаляются и все объекты, которых он создал, и вот здесь могут быть лямки..

Пока не знаю, как здесь лучше поступить, буду думать..
Хотя до недавнего времени таких проблем у меня не было, правда тогда была другая база и другая специфика (много баз, по одному пользователю, а сейчас - одна база, много пользователей)
  

_______005.jpg ( 75 KB | Загрузки )
_______005.jpg
Наверх
 
IP записан
 
Thor
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 82
Зарегистрирован: 12. Июля 2006
Re: Нужен совет по поиску проблемы падения 1С
Ответ #21 - 15. Февраля 2011 :: 18:53
Печать  
Скорей всего проблема в том, что объекты не разрушаются при закрытии контекста, в котором они были созданы. Причина может быть в циклических ссылках объектов друг на друга или на себя. По крайне мере у меня так было. Если не очистил ссылку - то объект не разрушается и при завершении работы 1С-ка 100%-но вылетает.
В моем случае помогла система логирования создания и уничтожения объектов.
  
Наверх
ICQ  
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по поиску проблемы падения 1С
Ответ #22 - 16. Февраля 2011 :: 06:41
Печать  
Один такой косяк уже нашел, вчера поправил - будем посмотреть..

Что было:
Не разрушался экземпляр класса-перехватчика, причем довольно глупо - в классе создавался объект "Таймер" и задавался обработчик в классе-перехватчике.

Добавил в обработчике события "ПриЗакрытии" принудительное удаление обработчика в объекте "Таймер" - деструктор стал срабатывать.
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по поиску проблемы падения 1С
Ответ #23 - 18. Февраля 2011 :: 14:33
Печать  
Похоже проблема в другом месте, так как похоже опять у кого то упало..
Будем искать..
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по поиску проблемы падения 1С
Ответ #24 - 28. Февраля 2011 :: 09:35
Печать  
С помощью одного сознательного сотрудника удалось таки поймать проблему.

Если кратко, то суть была в том, что есть один внешний отчетик, который отображает график событий, так вот в нем был обработчик события "ПриАктивацииОкна", в котором производилось обновление данных графика.

Если был открыт этот отчет и еще любое окно (справочник, журнал и т.д.) поверх него и при этом 1С закрыть, то происходило срабатывание этого события, в то время как объекты, используемые в отчете могли быть уже разрушены..

Естественно, если отчет был на переднем плане, или открыт только он, или закрыт перед завершением 1С, то проблем не было..
Вот ведь как бывает.. Озадачен
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Нужен совет по поиску проблемы падения 1С
Ответ #25 - 01. Марта 2011 :: 06:25
Печать  
Хмм (с)
Мне всегда казалось, что 1С сначала закрывает все открытые формы, и лишь потом передает управление в "ПриЗавершенииРаботыСистемы"...
был неправ.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать