Переключение на Главную Страницу Страницы: 1 [2] 3 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) Как найти причину вылета 1С++? (число прочтений - 14979 )
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #15 - 27. Ноября 2012 :: 13:35
Печать  
Eprst писал(а) 27. Ноября 2012 :: 12:26:

а ничего что это "release candidate"? типа до конца не проверена?

Eprst писал(а) 27. Ноября 2012 :: 12:26:
+ какие еще есть ВК , каких они версий и какая последовательность их загрузки ?


только это:
Код
Выбрать все
		Рез = ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "ExtDlls\1cpp.dll");
		УправлениеНастройками = СоздатьОбъект("УправлениеНастройками");
		УправлениеНастройками.Включить("EnableTurboBL");
 



Eprst писал(а) 27. Ноября 2012 :: 12:26:
+ запрос сколько строк в ИТЗ возвращает ?


230тыс.строк

Eprst писал(а) 27. Ноября 2012 :: 12:26:
+ может, заместо ИТЗ в качестве поставщика сам запрос лепить ?
Нафига ИТЗ там ?

ИТЗ потом обрабатывается, и промежуточные результаты тоже потом нужны, писать это все запросами - тяжко
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как найти причину вылета 1С++?
Ответ #16 - 27. Ноября 2012 :: 13:44
Печать  
на такой тз, скорее всего тупо памяти не хватает.
вот и валится при её обработке..
поди, группировать еще в итз применяешь потом ?

Посмотри в диспетчере, сколько ест памяти 1с-ина сразу после выполнения запроса.
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #17 - 27. Ноября 2012 :: 19:11
Печать  
Eprst писал(а) 27. Ноября 2012 :: 13:44:
на такой тз, скорее всего тупо памяти не хватает.
вот и валится при её обработке..

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

Eprst писал(а) 27. Ноября 2012 :: 13:44:
поди, группировать еще в итз применяешь потом ?

ага

Eprst писал(а) 27. Ноября 2012 :: 13:44:
Посмотри в диспетчере, сколько ест памяти 1с-ина сразу после выполнения запроса.

около 200Мб
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #18 - 27. Ноября 2012 :: 19:16
Печать  
в 1С++ можно занятую память получить?
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #19 - 27. Ноября 2012 :: 20:19
Печать  
ТЗ и ИТ с одними и теми же данными занимают разное место в памяти:
для 230 тыс. строк ТЗ занимает 300Мб, ИТ - 400 Мб.

Это нормально?
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как найти причину вылета 1С++?
Ответ #20 - 28. Ноября 2012 :: 06:24
Печать  
нормально, в ИТЗ еще и индексы есть.
ТЗ можно еще "уменьшить", если явно типизировать все колонки.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как найти причину вылета 1С++?
Ответ #21 - 28. Ноября 2012 :: 06:32
Печать  
es3000 писал(а) 27. Ноября 2012 :: 20:19:
ТЗ и ИТ с одними и теми же данными занимают разное место в памяти:
для 230 тыс. строк ТЗ занимает 300Мб, ИТ - 400 Мб.

Это нормально?

если база ms sql то вместо таких огромных таблиц  ТЗ,ИТЗ гораздо эфективене во всех отношениях
использовать временные таблицы #tabl_1 ( и индексы на них)
на самом ms sql сервере.

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как найти причину вылета 1С++?
Ответ #22 - 28. Ноября 2012 :: 06:38
Печать  
Ему группировать ИТЗ потом надо, для вывода..
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как найти причину вылета 1С++?
Ответ #23 - 28. Ноября 2012 :: 06:54
Печать  
Eprst писал(а) 28. Ноября 2012 :: 06:38:
Ему группировать ИТЗ потом надо, для вывода..

ну вообще не очень понятно,
зачем нужен отчет на 200 000 строк.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как найти причину вылета 1С++?
Ответ #24 - 28. Ноября 2012 :: 07:03
Печать  
Алкогольная декларация, к примеру..
У нас (если б её печатали) почти мульт строк.
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #25 - 28. Ноября 2012 :: 08:36
Печать  
Выяснилось: ИТ не при чем, ИТ отрабатывает нормально,
вылеты происходят когда выполняется:
КомандаОЛЕ.УложитьСписокОбъектов(лСписокНом, ВремТабл);

в списке около 6 тыс. наименований


И есть предположение с чем это связано.
Недавно на сервере вирус операционку повредил. Возможно повредились какие-то системные библиотеки связанные с OLEDB.
Возможно такое?

Ну тогда вылеты не были бы связаны с объемом данных.
А у меня на маленьких объемах (по одной номенклатуре) отрабатывает хорошо.
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как найти причину вылета 1С++?
Ответ #26 - 28. Ноября 2012 :: 08:59
Печать  
оледб ?
У тя дбф что ли ?
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #27 - 28. Ноября 2012 :: 09:06
Печать  
Eprst писал(а) 28. Ноября 2012 :: 08:59:
оледб ?
У тя дбф что ли ?

да
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Как найти причину вылета 1С++?
Ответ #28 - 28. Ноября 2012 :: 09:08
Печать  
А если попробовать прямые запросы 1С++ заменить на 1SQLite?
1SQLite использует какие-нибудь системные библиотеки?
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как найти причину вылета 1С++?
Ответ #29 - 28. Ноября 2012 :: 09:15
Печать  
переустанови vfp

если запрос правильно построен с учетом использования индексов, то sqllite ему проигрывает в разы на некоторых запросах (особенно, где group by есть)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 
ОтправитьПечать