Открывать форму обработки в определенное время

1. Shaldryn 28.02.18 22:20 Сейчас в теме
Подскажите как можно реализовать. Есть такая задача, в УТ 10.3 при начале работы системы запускаются формы обработки, в процессе рабочего дня они могут быть закрыты, но на следующий день в начале рабочего дня их заново надо запустить. Как это можно реализовать?
Была реализация через обработчик ожидания, но там интервал стоял допустим через 8 часов снова открыть, но некорректно срабатывала, так как пользователь мог закрыть базу или она у него вылетела и соответственно при запуске в течение дня сбивала эту настройку, то есть уже формы откроются не в начале дня, а середине дня.
По теме из базы знаний
Найденные решения
10. Synoecium 779 01.03.18 13:35 Сейчас в теме
(9) тут наверно лучше будет перед выставлением таймера проверить какое время ближе, утреннее или вечернее и на него выставить обработчик. После наступления события снова проверять какое время ближе, то же самое делаем при открытии сеанса. Получится, что одна процедура будет обслуживать все варианты использования.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. t.v.s. 111 28.02.18 22:26 Сейчас в теме
(1) Обработчик ожидания с интервалом минут в 10, в нем проверять текущее время
4. alxarz 31 01.03.18 04:32 Сейчас в теме
(2) задать идентификатор формы, и время можно не проверять
7. Shaldryn 01.03.18 10:04 Сейчас в теме
(2) спасибо, так и сделал, описал процедуру ПроверкаНачалаДня, там условие Если ВремяНачалаДня = Час(ТекущаяДата()) Тогда, где ВремяНачалаДня = 8
и ниже запуск открытия форм, и обработчик ожидания с интервалом в час, вроде должно работать
3. Ferth 28.02.18 22:33 Сейчас в теме
А если в модуле управляемого приложения в процедуре "ПриНачалеРаботыСистемы" открывать форму обработки ? там же и текущее время можно проверять
5. Synoecium 779 01.03.18 08:50 Сейчас в теме
Мне кажется вам нужно сделать и автооткрытие формы при запуске сеанса и обработку ожидания с запланированной проверкой (на 8 часов утра например) на случай если пользователь форму закроет, а сеанс останется включенным. Т.е. при запуске запускаем форму и считаем количество секунд до следующего начала рабочего дня, на это время ставим обработчик ожидания.
6. Shaldryn 01.03.18 10:00 Сейчас в теме
(5) так и было реализовано, но бывают ситуации когда базу перезапускают, от этого таймер уже начинает вести отчет от момента запуска
8. Synoecium 779 01.03.18 11:16 Сейчас в теме
(6) значит не до конца правильно было реализовано, можно рассчитать время и ставить таймер точно на оставшееся время до начала следующего рабочего дня.
9. Shaldryn 01.03.18 12:30 Сейчас в теме
(8) согласен, даже удобнее, спасибо, правда тут теперь еще условие добавилось, повторно открывать формы не только в начале рабочего дня( в 8ч ), но и перед концом рабочего дня (в 17-30)

тут получается еще одну процедуру надо делать, чтобы вызывать обработчик именно на вечер?
10. Synoecium 779 01.03.18 13:35 Сейчас в теме
(9) тут наверно лучше будет перед выставлением таймера проверить какое время ближе, утреннее или вечернее и на него выставить обработчик. После наступления события снова проверять какое время ближе, то же самое делаем при открытии сеанса. Получится, что одна процедура будет обслуживать все варианты использования.
12. Shaldryn 04.04.18 23:42 Сейчас в теме
(10) да, так практически и сделал, процедура для определения периода времени и возвращает значение до ближайшего события, спасибо
11. guy_septimiy 01.03.18 13:40 Сейчас в теме
При старте системы определять время, если оно например в периоде с 08:00 до 10:00 то открывать форму
для пользователя сохранять данные в хранилище - смотреть если сегодня открыли - уже не открывать.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот