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


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 22. Октября 2008
Обработка ожидания (объект Сервис) не работает
27. Августа 2010 :: 06:41
Печать  
глСервис = СоздатьОбъект("Сервис");              
глСервис.ОбработкаОжидания("ЗавершениеРаботыПоКонстантеВыгона", 3000);

не срабатывает, хотя если изменить ЗавершениеРаботыПоКонстантеВыгона на ппп2 - ругается при загрузке 1С что нет такой процедуры, т.е. обработка устанавливается но не производит никаких действий...

Текст
Функция ЗавершениеРаботыПоКонстантеВыгона() Экспорт
     Сообщить("Таймер вылета...");
     
     Если ИмяПользователя()="Админ" Тогда
           Предупреждение("ухухух",10);
           Возврат 0;
     КонецЕсли;      
     Если Константа.ЗавершитьРаботуПрограммы<>0 Тогда
           Если глКоличествоЗапросовВыхода=0 Тогда
             Предупреждение("Будет завершен сеанс пользователя через 45 сек. для обновления!!! Сохраните данные - закройте программу",15);
                 глКоличествоЗапросовВыхода=глКоличествоЗапросовВыхода+1;
           иначе
                 ЗавершитьРаботуСистемы(0);
           КонецЕсли;
     КонецЕсли;
КонецФункции


Версии 1Cpp - 3.2.2.0 formex - 2.0.5.99
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обработка ожидания (объект Сервис) не работает
Ответ #1 - 27. Августа 2010 :: 07:07
Печать  
Попробуй вместо функции юзать процедуру все-таки
  

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


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 22. Октября 2008
Re: Обработка ожидания (объект Сервис) не работает
Ответ #2 - 27. Августа 2010 :: 07:29
Печать  
Пробовал - без разницы - тоже самое

Еще плюсом - все это в дополнительном глобальном молдуле...

Настройки=СоздатьОбъект("УправлениеНастройками");
Настройки.Сбросить("Проверка типов");
Настройки.Сбросить("Отладка");
Настройки.Включить("Оптимизация");
Настройки.Включить("TurboBL");
Настройки.Включить("ПерехватитьСобытияГК");
   
глСервис = СоздатьОбъект("Сервис");             
глСервис.ОбработкаОжидания("ЗавершениеРаботыПоКонстантеВыгона", 3000);
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обработка ожидания (объект Сервис) не работает
Ответ #3 - 27. Августа 2010 :: 07:38
Печать  
Перем глСервис;
  
Наверх
 
IP записан
 
serferian
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 22. Октября 2008
Re: Обработка ожидания (объект Сервис) не работает
Ответ #4 - 27. Августа 2010 :: 07:39
Печать  
Eprst писал(а) 27. Августа 2010 :: 07:38:
Перем глСервис;


Это конечно же есть....
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обработка ожидания (объект Сервис) не работает
Ответ #5 - 27. Августа 2010 :: 07:49
Печать  
Ну, тогда всё должно работать, за исключением того - что такая выгонялка обламывается на раз-два..
Но это мелочи.
  
Наверх
 
IP записан
 
serferian
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 22. Октября 2008
Re: Обработка ожидания (объект Сервис) не работает
Ответ #6 - 27. Августа 2010 :: 08:43
Печать  
Eprst писал(а) 27. Августа 2010 :: 07:49:
Ну, тогда всё должно работать, за исключением того - что такая выгонялка обламывается на раз-два..
Но это мелочи.


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

на копии рабочей тоже не пашет...
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обработка ожидания (объект Сервис) не работает
Ответ #7 - 27. Августа 2010 :: 08:54
Печать  
це же очевидно - где то еще переопределяешь переменнц. глСервис в конфе - вот и обработка ожидания всё.. падает
  
Наверх
 
IP записан
 
serferian
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 22. Октября 2008
Re: Обработка ожидания (объект Сервис) не работает
Ответ #8 - 27. Августа 2010 :: 09:00
Печать  
Eprst писал(а) 27. Августа 2010 :: 08:54:
це же очевидно - где то еще переопределяешь переменнц. глСервис в конфе - вот и обработка ожидания всё.. падает


Выяснилось вот что:

Как только я убрал из глобальника процедуры
ПослеОткрытия, ПослеЗакрытия

все заработало!!!

интересно это баг или фича???
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обработка ожидания (объект Сервис) не работает
Ответ #9 - 27. Августа 2010 :: 09:03
Печать  
Это не баг и не фича.
Ты просто переопределил глСервис в коде, и возможно, а точнее , я даже уверен в этом, что именно в этих процедурах.
  
Наверх
 
IP записан
 
serferian
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 22. Октября 2008
Re: Обработка ожидания (объект Сервис) не работает
Ответ #10 - 27. Августа 2010 :: 09:07
Печать  
Eprst писал(а) 27. Августа 2010 :: 09:03:
Это не баг и не фича.
Ты просто переопределил глСервис в коде, и возможно, а точнее , я даже уверен в этом, что именно в этих процедурах.


неа

в голой тестовой конфе
как только добавил пустую процедуру ПриОткрытии - все перестало работать!!!

Т.о.:
Перем глСервисглобальника;
//*****************************************
Процедура ЗавершениеРаботыПоКонстантеВыгона()
     Сообщить("Таймер вылета...");
     
     Если ИмяПользователя()="Админ" Тогда
           Возврат;
     КонецЕсли;      
     Если Константа.ЗавершитьРаботуПрограммы<>0 Тогда
     ЗавершитьРаботуСистемы(0);
     КонецЕсли;
КонецПроцедуры
//*****************************************
Процедура ПослеОткрытия()
КонецПроцедуры // ПослеОткрытия()

Сообщить("загружен доп.модуль");

глСервисглобальника = СоздатьОбъект("Сервис");              
глСервисглобальника.ОбработкаОжидания("ЗавершениеРаботыПоКонстантеВыгона", 3000);

глКоличествоЗапросовВыхода=0;

обработка ожидания не работает !!!

Как только удаляешь процедуру ПриОткрытии - все нормально
Также заметил
Если есть ПриОткрытии() - то при загрузке 1С
Сообщить("загружен доп.модуль"); -отрабатывает 1 раз (таймер не работает)

Если я убираю ПриОткрытии - то
Сообщить("загружен доп.модуль"); - отрабатывает 2 раза (таймер работает)
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обработка ожидания (объект Сервис) не работает
Ответ #11 - 27. Августа 2010 :: 09:42
Печать  
воткни это в ПриНачалеРаботыСистемы:

глСервисглобальника = СоздатьОбъект("Сервис");             
глСервисглобальника.ОбработкаОжидания("ЗавершениеРаботыПоКонстантеВыгона", 3000);
  
Наверх
 
IP записан
 
serferian
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 22. Октября 2008
Re: Обработка ожидания (объект Сервис) не работает
Ответ #12 - 27. Августа 2010 :: 09:47
Печать  
Eprst писал(а) 27. Августа 2010 :: 09:42:
воткни это в ПриНачалеРаботыСистемы:

глСервисглобальника = СоздатьОбъект("Сервис");              
глСервисглобальника.ОбработкаОжидания("ЗавершениеРаботыПоКонстантеВыгона", 3000);


хм. так работает...

вот одно тока плохо - придется конфу менять постоянно если захочу таймеров навтыкать....

Вот текст сообщений если в допМодуле нет процедуры ПослеОткрытия()

и в ПриначалеРаботысистемы

     глСервисглобальника = СоздатьОбъект("Сервис");              
     глСервисглобальника.ОбработкаОжидания("ЗавершениеРаботыПоКонстантеВыгона", 3000);

     
     Сервис = СоздатьОбъект("Сервис");              
     Попытка
           глДопМодуль = Сервис.ДобавитьГлобальныйМодуль("#ЗагрузитьИзФайла "+КаталогИБ()+"Modules\ГлобальныйМодульДополнительно.txt");
     Исключение
           Сообщить("Не загружен модуль Дополнительный"+ОписаниеОшибки());
     КонецПопытки;


загружен доп.модуль
Таймер вылета...
загружен доп.модуль
Таймер вылета...
загружен доп.модуль
Таймер вылета...
загружен доп.модуль

такое чувство что весь код после определения таймера постоянно подгружается....

Если добавить ПослеОткрытия в доп модуль
то :
загружен доп.модуль
Таймер вылета...
Таймер вылета...
Таймер вылета...


Мне кажется это все-таки баг какой-то...
Может чтото разоработчики скажут...
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обработка ожидания (объект Сервис) не работает
Ответ #13 - 27. Августа 2010 :: 11:40
Печать  
Выложи простую тестовую конфу.
  

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


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 22. Октября 2008
Re: Обработка ожидания (объект Сервис) не работает
Ответ #14 - 27. Августа 2010 :: 11:45
Печать  
тест.конфа
  

_____.zip ( 986 KB | Загрузки )
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать