Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 542
от 09.07.2007, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 411, Экспертов: 57
В номере:Вопросов: 1, Ответов: 6


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

Вопрос № 93.887
Здравствуйте, пишу процедуру принудительного завершения работы пользователей, т.к. приходиться очень долго рассылать сообщения, да и многие уходят оставив программу запущенной. Создала константу ПринудительноеЗавершение, если она равна 1 то программа должна предупредить пользователей, что через 40 или 30секунд работа будет завершена и чтобы они сохранили все свои документы, а как это сделать??? Я делаю так:

Приложение:

Отправлен: 04.07.2007, 11:59
Вопрос задала: Fifina (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Краюшкин Игорь Валерьевич
Здравствуйте, Fifina!

Вам еще необходимо в глобальном модуле (в его корне, а не в какой-нибудь процедуре или функции) вставить следующую команду:
ОбработкаОжидания("глЗавершитьРаботу", 10);

Описание:
ОбработкаОжидания(<?>,)
Синтаксис:
ОбработкаОжидания(<ИмяПроцедуры>,<ИнтервалВызова>)
Назначение:
Инициирует периодический вызов процедуры глобального модуля с заданным интервалом времени.
Возвращает имя процедуры глобального модуля, которая назначена для периодического запуска (на момент до исполнения процедуры).
Параметры:
<ИмяПроцедуры> - необязательный параметр. Строковое выражение - имя процедуры глобального модуля, которая будет вызываться периодически с временным интервалом <ИнтервалВызова>. Тело процедуры <ИмяПроцедуры> должно быть написано разработчиком конфигурации в глобальном программном модуле. Если в качестве параметра передается 'пустая строка', то ранее запущенный процесс прекращается.
<ИнтервалВызова> - необязательный параметр. Числовое выражение - интервал времени в секундах, с которым периодически будет вызываться процедура глобального модуля <ИмяПроцедуры>. Если в качестве параметра передается 0 (ноль), то ранее запущенный процесс прекращается.
Ответ отправил: Краюшкин Игорь Валерьевич (статус: 9-ый класс)
Ответ отправлен: 04.07.2007, 12:24
Оценка за ответ: 4
Комментарий оценки:
Спасибо я ее и так использую

Отвечает: IUnknown
Здравствуйте, Fifina!
Данный подход изначально неправильный. Запущенная на выполнения обработка, открытая в модальном режиме форма, нажатая педалька в реквизите диалога и простая блокировка наглухо прекращают действие данной выгонялки.

Все надо решать средствами администрирования. Закрывать открыте файлы. Закрывать терминальные сессии. Выгонять из скульных баз средствами скула.
---------
я не специалист
Ответ отправил: IUnknown (статус: Студент)
Ответ отправлен: 04.07.2007, 12:48
Оценка за ответ: 4
Комментарий оценки:
спасибо...

Отвечает: Игорь К.
Здравствуйте, Fifina!

Константу ПринудительноеЗавершение лучше сделать Числовой длиной 2.

В Глобальном Модуле:

В процедуре:ПриНачалеРаботыСистемы()
добавляете:
Константа.ПринудительноеЗавершение=-1;
ОбработкаОжидания("глЗавершитьРаботу",60);

Сама процедура:

Процедура глЗавершитьРаботу()
Если Константа.ПринудительноеЗавершение=0 Тогда
ЗавершитьРаботуСистемы(1);
КонецЕсли;
Если Константа.ПринудительноеЗавершение>0 Тогда
Предупреждение("Система завершит работу через "+Строка(Константа.ПринудительноеЗавершение)+" Минут",10);
Константа.ПринудительноеЗавершение=Константа.ПринудительноеЗавершение-1;
КонецЕсли;
КонецПроцедуры //ПоказВремени

Думаю нецелесообразно ограничивать пользователей секундами, поэтому написал в минутах.
Теперь если надо всех предупредить и выключить минуты через 3.
Измените значение константы ПринудительноеЗавершение с -1 на 3.
Предупреждения будут выдаваться каждую минуту.
Удачи!
---------
Лучше два часа потерять, потом за пять минут долететь
Ответ отправил: Игорь К. (статус: 4-ый класс)
Ответ отправлен: 04.07.2007, 13:43
Оценка за ответ: 5
Комментарий оценки:
Спасибо, попробую

Отвечает: Владимир Лазурко
Здравствуйте, Fifina!
В дополнение к данным ответам:
А что мешает в модули вызываемых модально форм вставить ту же проверку на закрытие? И в Глобальном модуле в ОбработкеОжидания прописать оное закрытие.
Ответ отправил: Владимир Лазурко (статус: 8-ой класс)
Ответ отправлен: 04.07.2007, 19:59
Оценка за ответ: 4
Комментарий оценки:
Спасибо

Отвечает: Ромашов Евгений Николаевич
Здравствуйте, Fifina!

Наверно стоить использовать процедуру ОбработкаОжидания в ней задается процедура которая вызывается с заданным интервалом, еще сделать глобальную переменную счетчик обращений, когда переменная завершение работы будет выставлена в 1 процедура начинает увеличивать счетчик и выдавать предупреждение

30 секунд мало обычно если фактура набивается оператор думает что успеет доделать, а если в ней будет в районе 30 - 50 строк и при завершении работы она не сохранится, будет много шума.
Ответ отправил: Ромашов Евгений Николаевич (статус: 2-ой класс)
Ответ отправлен: 05.07.2007, 05:06
Оценка за ответ: 5
Комментарий оценки:
Спасибо...

Отвечает: Dmitry Stashenko
Здравствуйте, Fifina!

Ну и в дополнение к ответам. ЗавершитьРаботуСистемы(0) не всегда сработает, например, если база заблокирована или открыта модально какая-нибудь форма. В приложении процедура, которая делает Log Off (Парам=4), Shutdown (Парам=5) или Reboot (Парам=6) выбранному компьютеру. Это если уж совсем надо, и наплевать на некорректное завершение.

Приложение:

Ответ отправил: Dmitry Stashenko (статус: 6-ой класс)
Ответ отправлен: 05.07.2007, 11:30


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.53 beta от 09.07.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное