Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ОбработкаОжинания() (число прочтений - 2652 )
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
ОбработкаОжинания()
26. Июня 2007 :: 07:29
Печать  
Использую у глобальную обработку ожидания из Объекта "Сервис"
Так вот иногда при попытке закрыть 1С через "Закрыт окно" выбрасывает вопрос:
Ошибка выполенения глобального модуля
Закрыть приложение?

Пока не использовать Сервис.ОбработкаОжидания("глПроверкаЗавершенияРаботы()",10000)
было все нормально.

Может уважаемый АЛьФ подскажет че делать-то?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ОбработкаОжинания()
Ответ #1 - 26. Июня 2007 :: 07:34
Печать  
А какой код "глПроверкаЗавершенияРаботы" и длительность ее работы?
  

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


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: ОбработкаОжинания()
Ответ #2 - 26. Июня 2007 :: 07:49
Печать  
Да как бы не сильно и большой:

Процедура глПроверкаЗавершенияРаботы()
     час=0;м=0;с=0;
     ТекущееВремя(час,м,с);
     // после 22.00 нечево сидеть в базе
     Если час=22 Тогда
           Если м>0 Тогда
                 ЗавершитьРаботуСистемы(0);
                 Возврат;
           КонецЕсли;
     КонецЕсли;
     Если ФС.СуществуетФайл(КаталогИБ()+"clouse.dat")=1 Тогда
           Текст=СоздатьОбъект("Текст");
           Текст.Открыть(КаталогИБ()+"clouse.dat");
           Имя=ИмяПользователя();
           НеВыходить=0;
           Для н=1 По Текст.КоличествоСтрок() Цикл
                 стр=Текст.ПолучитьСтроку(н);
                 Если СокрЛП(стр)=Имя Тогда
                       НеВыходить=1;
                       Прервать;
                 КонецЕсли;
           КонецЦикла;
           Если НеВыходить=0 Тогда
                 Предупреждение("Система заблокирована!
                 |Обратитесь к "+СокрЛП(стр),15);
                 ЗавершитьРаботуСистемы(0);
           КонецЕсли;
     КонецЕсли;
     Если ПустоеЗначение(глРегистратор)=0 Тогда
           Если глМожноВыводитьТекст=1 Тогда
                 ВремяОбновления=глКонстанта("СчетОбновления","Число");
                 Если Число(ВремяОбновления)=0 Тогда
                       ВремяОбновления=4;
                 КонецЕсли;
                 Если глСчетчикВывода=ВремяОбновления Тогда
                       глРегистратор.ОбновитьТабло();
                       глСчетчикВывода=0;
                 Иначе
                       глСчетчикВывода=глСчетчикВывода+1;
                 КонецЕсли;
           КонецЕсли;
     КонецЕсли;
КонецПроцедуры      // глПроверкаЗавершенияРаботы

Причем сюда заходить только кассиров.
Если ПустоеЗначение(глРегистратор)=0 Тогда

  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ОбработкаОжинания()
Ответ #3 - 26. Июня 2007 :: 08:00
Печать  
Попробуй поставить флаг нахождения внутри обработчика.
Если флаг = 1, не заходит в обработчик.
По окончания работы обработчика флаг = 0
  

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


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: ОбработкаОжинания()
Ответ #4 - 26. Июня 2007 :: 08:10
Печать  
artbear писал(а) 26. Июня 2007 :: 08:00:
Попробуй поставить флаг нахождения внутри обработчика.

А о каком это обработчике речь?
я крестиком закрываю приложение.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ОбработкаОжинания()
Ответ #5 - 26. Июня 2007 :: 08:16
Печать  
В глобальник добавь флаг
и проверяй/устанавливай его в "глПроверкаЗавершенияРаботы()"
  

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


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: ОбработкаОжинания()
Ответ #6 - 26. Июня 2007 :: 08:34
Печать  
АЛьФ говорил что Сервис.ОбработкаОжидания() работает даже для Модальных Окон.
Получается что типа оно работает в отдельном потоке?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать