Всем доброе утро!
Начну сначала. Нужно чтобы при работе клиента с определенной переодичностью выполнялось создание закупки, строк закупки, обработка закупки. Для этого создан ряд классов, которые создают закупки, строки закупки, и обработывают их до накладной ( всего их 5 ). Все они наследники
RunBaseBatch для возможного запуска этой функциональности в пакетном режиме.
Но хочется сделать автоматическую обработку. Для этого в классе
Application в ClassDeclaration завожу переменные класса [COLOR=red] Thread[/COLOR=red], в [COLOR=blue]startupPost[/COLOR=blue] запускаю таймеры
PHP код:
this.setTimeOut( IdentifierStr( имя_обработчика ), 3000 );
.
В обработчике:
PHP код:
protected void имя_обработчика() {
// если поток еще не создан или уже закончил работу, то создать новый поток
if ( !handlingMovement_Header || handlingMovement_Header.status() == 2 ) {
// запуск потока
handlingMovement_Header = null;
handlingMovement_Header = HandlingMovement_Header::runThread();
}
// запуск метода снова
this.setTimeOut( IdentifierStr( имя_обработчика ), 10000 );
}
// запуск потока
client static Thread runThread() {
Thread thread; // объект класса Thread
;
// создание объекта класса Thread
thread = new Thread();
// запуск потока
thread.run( ClassNum( HandlingMovement_Header ), StaticMethodStr( HandlingMovement_Header, entryPointThread ) );
return thread;
}
// точка входа
private client static void entryPointThread( Thread pThread ) {
HandlingMovement_Header handlingMovement_Header; // объект класса HandlingMovement_Header
;
// создание объекта класса HandlingMovement_Header
handlingMovement_Header = new HandlingMovement_Header();
// обработка
if ( handlingMovement_Header ) handlingMovement_Header.run();
}
// обработка
void run() {
;
// цикл по одобренным строкам
while select movement_Header_Select
where movement_Header_Select.Approve == true {
// перейти в компанию
changeCompany( movement_Header_Select.CompanyTo ) {
try {
// обработка
this.handling();
}
catch ( Exception::Deadlock ) {
}
catch ( Exception::Error ) {
}
}
}
}
Некоторое время все работает нормально 10 - 15 мин, а потом появляется сообщение
Can't create tooltip ( type 2 ), а еще через некоторое время падает сама Axapta. Что я сделал не правильно?