Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема проблема с методом ReconnectNative() (число прочтений - 3006 )
Lili
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 31. Августа 2006
проблема с методом ReconnectNative()
27. Марта 2007 :: 12:58
Печать  
Проблема в следующем:
нужно перепровести скл базу. Пользуюсь методом ReconnectNative().

База = СоздатьОбъект("ODBCDatabase");
     
УстановитьТАна(НачДата);
Сообщить("Точка актуальности установленна на " + Строка(НачДата) + " !!!");

НачДата1 = НачДата;
Пока НачДата1<= КонДата Цикл
     УстановитьТАна(НачДата1);
     Сообщить("Точка актуальности установленна на " + Строка(НачДата1) + " !!!");
     дкДок = "";
     
     ОбнулениеПеременных();
     База.ReconnectNative();
     ЗаполнитьПеременные();
           
     дкДок = СоздатьОбъект("Документ");
     дкДок.УстановитьФильтр(1,0,0,1,1);
     дкДок.ВыбратьДокументы(НачДата1,НачДата1);
     
     Пока дкДок.ПолучитьДокумент() = 1 Цикл
           дкДок.Провести(2);
           
           //установка ГП
           ПозицияДокумента = СформироватьПозициюДокумента(дкДок, 0);      

           Если дкДок.ПринадлежитПоследовательности("ОсновнаяПоследовательность") = 1 Тогда
                 Последовательность.ОсновнаяПоследовательность.Установить(ПозицияДокумента);      
           КонецЕсли;

           Если дкДок.ПринадлежитПоследовательности("КнигаПокупок") = 1 Тогда
                 Последовательность.КнигаПокупок.Установить(ПозицияДокумента);      
           КонецЕсли;

           Если дкДок.ПринадлежитПоследовательности("КнигаПродаж") = 1 Тогда
                 Последовательность.КнигаПродаж.Установить(ПозицияДокумента);      
           КонецЕсли;      
                 
           Сообщить(дкДок);
     КонецЦикла;
     
     НачДата1 = НачДата1 + 1;
КонецЦикла;
дкДок = "";

Запускаю перепроведение, некоторое время работает стабильно, может провести несколько дней, а потом падает с ошибкой:
Инструкция по адресу "0x00000000". Память не может быть "written".
"OK" - завершения приложения.
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: проблема с методом ReconnectNative()
Ответ #1 - 27. Марта 2007 :: 15:02
Печать  
Сейчас заканчивается перепроведение базы за период 2004-2007 год. Ничего не отваливается.
  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: проблема с методом ReconnectNative()
Ответ #2 - 27. Марта 2007 :: 16:32
Печать  
А что там в процедурах Обнуление..., Заполнение() ?
Можно нарисовать?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Lili
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 31. Августа 2006
Re: проблема с методом ReconnectNative()
Ответ #3 - 28. Марта 2007 :: 06:30
Печать  
Процедура ОбнулениеПеременных()
     глДистрибьюторскийАссортиметнт = "";
     ТЦ_Фактр_с_отсрочкой = "";
     ТЦ_Факт_со_стаканами = "";
     ТЦ_Факт = "";
     ТЦ_Отсрочка = "";
     глПользователь = "";

     глРубли            = "";
     глДоллары      = "";
     глРадугаСервис = 0;
КонецПроцедуры

Процедура ЗаполнитьПеременные()
     спрНмк = СоздатьОбъект("Справочник.Номенклатура");
     Если спрНмк.НайтиПоКоду("00001041") = 1 Тогда
           глДистрибьюторскийАссортиметнт = спрНмк.ТекущийЭлемент();
     Иначе
           Сообщить("Не найдена группа товаров ""Дистрибьюторский ассортимент"".", "!");
           Сигнал();
     КонецЕсли;

     спрТЦ = СоздатьОбъект("Справочник.ТипыЦен");
     Если спрТЦ.НайтиПоКоду("00027") = 1 Тогда
           ТЦ_Фактр_с_отсрочкой = спрТЦ.ТекущийЭлемент();
     Иначе
           Сообщить("Не найден тип цен ""Факт с отсрочкой"".", "!");
           Сигнал();
     КонецЕсли;
     Если спрТЦ.НайтиПоКоду("00013") = 1 Тогда
           ТЦ_Факт_со_стаканами = спрТЦ.ТекущийЭлемент();
     Иначе
           Сообщить("Не найден тип цен ""Факт со стаканами"".", "!");
           Сигнал();
     КонецЕсли;
     Если спрТЦ.НайтиПоКоду("00003") = 1 Тогда
           ТЦ_Факт = спрТЦ.ТекущийЭлемент();
     Иначе
           Сообщить("Не найден тип цен ""Фактическая"".", "!");
           Сигнал();
     КонецЕсли;
     Если спрТЦ.НайтиПоКоду("00004") = 1 Тогда
           ТЦ_Отсрочка = спрТЦ.ТекущийЭлемент();
     Иначе
           Сообщить("Не найден тип цен ""Отсрочка"".", "!");
           Сигнал();
     КонецЕсли;

     СпрП = СоздатьОбъект("Справочник.Пользователи");
     Если СпрП.НайтиПоКоду(ИмяПользователя()) = 1 Тогда
           глПользователь = СпрП.ТекущийЭлемент();
     КонецЕсли;

     глРубли            = Константа.ВалютаБухУчета;
     глДоллары      = Константа.ВалютаУпрУчета;
     глФлагГрупповойОбработки =1;
КонецПроцедуры      // ЗаполнитьПеременные
  
Наверх
 
IP записан
 
Lili
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 31. Августа 2006
Re: проблема с методом ReconnectNative()
Ответ #4 - 28. Марта 2007 :: 06:33
Печать  
то есть это все объекты ссылочного типа, которые заполняются в процедуре - "ПриНачалеРаботыСистемы"
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: проблема с методом ReconnectNative()
Ответ #5 - 28. Марта 2007 :: 06:35
Печать  
Lili писал(а) 28. Марта 2007 :: 06:33:
то есть это все объекты ссылочного типа, которые заполняются в процедуре - "ПриНачалеРаботыСистемы"


А можно глупый вопрос ? Подмигивание Улыбка

Пользователи имеют право изменять код элемента Справочника.Номенклатура ?
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Lili
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 31. Августа 2006
Re: проблема с методом ReconnectNative()
Ответ #6 - 28. Марта 2007 :: 08:06
Печать  
Вопрос не глупый, а вполне логичный. Тем не менее, эта система работает уже долгое время, и представьте себе, даже с возможностью изменения кода справочника, ни разу таких инцидентов не было  Улыбка
Могу сказать – в свою сторону, что этот маразм с поиском по коду писала не я, эту базу «дорабатывало» уже много умельцев. От меня требовалось лишь сделать быстрое перепроведение документов.

То, что система падает на перепроведении с реконнектом, скоре всего связано с «нестабильностью» в работе базы. На ночь оставляла тестирование – выдало очень много ошибок. Будем править.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать