Обработчик ожидания вложенный не выполняет
Здравствуйте.
Вот кусок кода.
Вызываю обработчик, который проверяет установку Истина/Ложь
Если Ложь, то я его завершаю и подключаю следующий, но он не выполняет вызов процедуры.
С чем это может быть связано? Никакой ошибки при это не возникает.
Первый отрабатывает как надо.
Все процедуры &НаКлиенте
Вот кусок кода.
Вызываю обработчик, который проверяет установку Истина/Ложь
Если Ложь, то я его завершаю и подключаю следующий, но он не выполняет вызов процедуры.
С чем это может быть связано? Никакой ошибки при это не возникает.
Первый отрабатывает как надо.
Все процедуры &НаКлиенте
НеВыводитьПроведенныеДокументы = Истина;
...................
НеВключатьТаймер = Истина;
ПодключитьОбработчикОжидания("ПроверитьРаботуТаймера", 60, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьРаботуТаймера()
Если НЕ НеВключатьТаймер Тогда
ОтключитьОбработчикОжидания("ПроверитьРаботуТаймера");
ПодключитьОбработчикОжидания("_Заполнить", 86400, Ложь);
КонецЕсли;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Как то та, вы же таймер однократно запускаете, он у вас один раз сработает и все
&НаКлиенте
Процедура ПроверитьРаботуТаймера()
Если НЕ НеВключатьТаймер Тогда
ПодключитьОбработчикОжидания("_Заполнить", 86400, Ложь);
Иначе
ПодключитьОбработчикОжидания("ПроверитьРаботуТаймера,60,Ложь");
КонецЕсли;
КонецПроцедуры
Показать
(2) да нет, третий параметр же как раз и показывает , что неоднократно выполнять (Ложь - многократно, Истина - однократно). Тут что-то другое мешает.
На картинке видно, что точка остановки сработала, но вызова процедуры не последовало...
ПодключитьОбработчикОжидания("ПроверитьРаботуТаймера", 60, Ложь);
На картинке видно, что точка остановки сработала, но вызова процедуры не последовало...
Прикрепленные файлы:
(4) зачем 1140 минут, это сутки.
Задача каждые 60 секунд проверят флаг, если его сняли, то идем выполнять процедуру, к которой вернется таймер через 24 часа.
Но когда через 60 секунд флаг снять, он идет к обработчику, но не может вызвать нужную мне процедуру, а просто уходит на конец проверки условия.
Задача каждые 60 секунд проверят флаг, если его сняли, то идем выполнять процедуру, к которой вернется таймер через 24 часа.
Но когда через 60 секунд флаг снять, он идет к обработчику, но не может вызвать нужную мне процедуру, а просто уходит на конец проверки условия.
Прикрепленные файлы:
(5) Там 1/10 секунды так что 6секунд и 144 минуты
А Сама процедура "Зап" есть и она на клиенте ?
Да и вы хотите держать открытым клиентсое окно 24 часа ?
А Сама процедура "Зап" есть и она на клиенте ?
Да и вы хотите держать открытым клиентсое окно 24 часа ?
Примечание:
Вызов обработчика ожидания продолжается пока форма не будет закрыта или пока не будет вызван метод формы
Вызов обработчика ожидания продолжается пока форма не будет закрыта или пока не будет вызван метод формы
(7)
мне её нужно каждые сутки выполнять.
Нам написали её на УФ, а работаем вы в обычном приложении.
Я не могу сделать автозапуск внешней обработки по расписанию, т.к. её нельзя открыть в обычном приложении не поместив в конфигураторе в обработки
Кстати а почему эту процедуру просто не выполнить ? Зап();
мне её нужно каждые сутки выполнять.
Нам написали её на УФ, а работаем вы в обычном приложении.
Я не могу сделать автозапуск внешней обработки по расписанию, т.к. её нельзя открыть в обычном приложении не поместив в конфигураторе в обработки
(9)
Если есть БСП то вполне все возможно, При том если весь код выполняться на сервере может, то и форма ей не нужна как таковая
Таки и выполняйте
при НеВключатьТаймер = Ложь выполниться Заполнить(), и подключит Обработчик ПроверитьРаботуТаймера на время сутки
при этом будет выполне нужный вам код
Я не могу сделать автозапуск внешней обработки по расписанию
Если есть БСП то вполне все возможно, При том если весь код выполняться на сервере может, то и форма ей не нужна как таковая
мне её нужно каждые сутки выполнять.
Таки и выполняйте
&НаКлиенте
Процедура ПроверитьРаботуТаймера()
Если НЕ НеВключатьТаймер Тогда
Заполнить();
Иначе
ПодключитьОбработчикОжидания("ПроверитьРаботуТаймера",60,Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Заполнить()
ПодключитьОбработчикОжидания("ПроверитьРаботуТаймера",864000,Истина);
......
КонецПроцедуры
Показатьпри НеВключатьТаймер = Ложь выполниться Заполнить(), и подключит Обработчик ПроверитьРаботуТаймера на время сутки
при этом будет выполне нужный вам код
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот