Консультация № 141162
01.08.2008, 10:46
0.00 руб.
0 3 2
Приветствую Вас, уважаемые Эксперты!!!
1с 7,7 конфа самописная
У меня в конфигурацию внедрена процедура для принудительного завершения работы всех пользователей (в приложении). Автор кода не я, где взял - уже не помню, возможно на mista.ru
Так вот, проблема в том, что процедура перестала работать. Толи дело в самой процедуре, толи ОбработкаОжидания() не выполняется, т.к. для проверки привешивал к ней другую процедуру, также не работает, не могу понять почему...




Приложение:
Из Глобального модуля:

Перем ПериодОпроса Экспорт;
Перем ОсталосьДоЗавершенияРаботы Экспорт;

//=================================

Процедура ПриНачалеРаботыСистемы()

Константа.ДоЗавершенияРаботы=0;
ОбработкаОжидания("ОпросСостоянияСистемы", ПериодОпроса);

КонецПроцедуры // ПриНачалеРаботыСистемы()

//=================================

Процедура ОпросСостоянияСистемы()
Если Константа.ДоЗавершенияРаботы>0 Тогда
Если ОсталосьДоЗавершенияРаботы=0 Тогда
ОсталосьДоЗавершенияРаботы=Константа.ДоЗавершенияРаботы;
Предупреждение("Через "+Константа.ДоЗавершенияРаботы+" сек Система завершит работу."+
РазделительСтрок+"Просьба сохранить данные и закрыть все открытые окна.", 5);
Иначе
ОсталосьДоЗавершенияРаботы=ОсталосьДоЗавершенияРаботы-ПериодОпроса;
Если ОсталосьДоЗавершенияРаботы<=0 Тогда
ЗавершитьРаботуСистемы(0);
Иначе
Если ОсталосьДоЗавершенияРаботы<=300 Тогда
Сообщить("До завершения работы осталось "+СокрЛП(ОсталосьДоЗавершенияРаботы)+" сек", "!");
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
ОсталосьДоЗавершенияРаботы=0;
КонецЕсли;
КонецПроцедуры

Обсуждение

Неизвестный
01.08.2008, 11:35
общий
это ответ
Здравствуйте, Сазонов Алексей!

А конфигурация, случайно, не защищена ничем?
У меня такое же встречалось, когда шифровал конфигурацию с помощью Encoder для ее защиты от просмотра и изменений.
Неизвестный
01.08.2008, 12:08
общий
Нет, конфигурацию не защищал (если не считать того, что поставил пароль на изменение автора и заставки конфигурации)
Неизвестный
01.08.2008, 17:09
общий
это ответ
Здравствуйте, Сазонов Алексей!

Процедура ОбрадоткаОжидания должна быть описана а глобальнгом модуле 1 раз. Если она встречается несколько раз, выполняется первая.
Процедура, вызываемая в обработкеОжидания должна быть описана до её вызова в ОбработкеОжидания, а у Вас в примере после...
Если Вам нужно вызывать несколько процедур в ОбработкеОжидания, то их вызывать вложенно в вызываемой. Пример в Приложении.

С уважением, Владимир.

Приложение:
глобальный модуль:

Процедура1
...
описание процедуры1
...
КонецПроцедуры //1
...
Процедура2
...
описание процедуры 2
...
КонецПроцедуры //2
...
Процедура3 // вызывает последовательно набор процедур
Процедура1();
Процедура2();
Конецпроцедуры //3
...
Процедура ПриНачалеРаботыСистемы()
...
Обработкаожидания(Процедура3,таймаут)
...
КонецПроцедуры //приНачалеРаботыСистемы
...
Форма ответа