#0
by Cerera
В модуле приложения в функции "ПриНачалеРаботыСистемы", подключается обработчик ожидания с нужным интервалом. Как после того, как он уже запущен, поменять этот интервал? Допустим, я хочу, чтобы он брался из настройки пользователя или константы. Но как заставить систему отключить обработчик ожидания и запустить уже с новым параметром?
#1
by vicof
Глобальный контекст.ОтключитьОбработчикОжидания (Global context.DetachIdleHandler) Глобальный контекст (Global context) ОтключитьОбработчикОжидания (DetachIdleHandler) Синтаксис: ОтключитьОбработчикОжидания(<ИмяПроцедуры>) Параметры: Тип: Строка. Имя процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля, используемой в качестве обработчика ожидания. Описание: Отключает подключенный ранее при помощи процедуры ПодключитьОбработчикОжидания вызов процедуры через определенный интервал времени. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Пример: См. также: Глобальный контекст, метод ПодключитьОбработчикОжидания
#4
by Cerera
я знаю эти команды. только вопрос был не в этом. вопрос заключался в другом - как мне заставить поменяться интервалу? обработку достаточно запустить с этой командой? Команда будет доступна в пределах видимости самой обработки, а мне надо, чтобы в глобальном контексте было это.
#5
by Cerera
даже так лучше сформулировать: Где мне вызвать эти команды? Скорее всего в самом обработчике, который я запустил. Только Как сделать, чтобы стало понятно, что значение константы или настройки пользователя изменилось?
#7
by Cerera
это уже куда не шло. А если при смене значения характеристики? В настройке пользователя если поменяю значение характеристики "Интервал..." ? Как это событие отловить
#8
by Cerera
точнее даже не характеристики. А настройки пользователя. Это же в регистре хранится судя по всему.
#13
by ДенисЧ
да ядрить... Повесь второй обработчик, каждую минуту проверяй значения, если изменились - меняй первый.
#14
by Cerera
тоже хороший вариант. Я не спорю. Но если учесть, что интервал меняется не часто, то лишняя нагрузка на базу будет от второго обработчика. Или они не сильно кушают ресурс? И как проверять поменялось ли что то или нет? Сеансовые переменные заводить под это дело? Тогда можно не во втором обработчике проверку делать, а в функции, которая вызывается от первого обработчика
#17
by AaNnDdRrEeYy
да ты можешь хоть на элемент формы на событие ПриИзменении повесить обработчик, в котором отключать обработчик и подключать с новым интервалом, вариантов решения море...
#18
by Cerera
ну по сути я нашел ответ на свой вопрос. то что из форм обработок и объектов метаданных, можно управлять обработчиком, вызванном в глобальном модуле. Хотя прокрадывалось подозрение, что область видимости команд обработок не распространяется на глобальный контекст.
#20
by Cerera
Ребята! Ну ёжкин кот. Смотрите какая ситуация: Если я стартую программу и в модуле "При начале работы системы" был выполнен код ПодключитьОбработчикОжидания("ТестированиеОтправкиСообщений",ИнтервалМеждуВыводомВсплывающихНапоминанийМинут*60); То, если из формы справочника или обработки, я его отключу, он отключится, а потом снова включу - он включится. Но если при запуске системы в функции "ПриНачалеРаботыСистемы" я не запускаю этот обработчик изза того, что у пользователя в настройках не стоит галочка "запускать уведомления", то даже когда я потом зайду в справочник пользователя, установлю эту галочку, вызовется обработчик ПодключитьОбработчикОжидания("ТестированиеОтправкиСообщений",ИнтервалМеждуВыводомВсплывающихНапоминанийМинут*60); То обработчик ТестированиеОтправкиСообщений, располагаемый в модуле прилолжения, уже не будет вызываться. это не честно. Тогда что же мне делать? запускать обработчик при старте системы при любом раскладе, а потом его отключать в этом же модуле, если галочка не установлена, чтоб потом пользователь зайдя в справочник, мог установить галочку и чтоб обработчик начал работать?
#21
by Cerera
Бред написал. Короче если мы из формы запускаем этот обработчик, то хрен там он будет запускать функцию глобального модуля... Я был прав. Я достоин 150 тыщ. Ладно. решил по другому вопрос.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- изменить шрифт в ВвестиЧисло(), как ?
- Значение зависимой ячейки изменить программно...
- ЗиК. Изменить Вид расчета.
- Можно ли подключить два обработчика ожидания?
- можно ли изменить найти и изменить значение в дереве значений
- Превышено максимальное время ожидания предоставления блокировки из-за ожидания
- Как замутить чат в 1С 8.2 без обработчика ожидания?
- баг УФ. Ввод текста в поле ввода и подключение обработчика ожидания
- Как изменить заголовок в шапке универсального отчёта?
- Изменить способ отражение расходов по амортизации
- Как в управляемой форме изменить масштаб поля табличного документа?
- нумерация мониторов в RDP Windows 10, как изменить
В этой группе 1С
- Обмен РИБ УТ 11 не идет обмен записи
- 1с БП 82. Замена владельца у договора
- ЕстьNULL как правильно использовать в запросе...
- 1c82 не запускается дополнительный рабочий процесс
- Загрузка актуального справочника Банки не с РБК. А откуда?
- Процедура При проведении
- v7: Incorrect syntax near the keyword 'ORDER'.
- ЗУП: можно ли делать увольнение будущей датой?
- Разница по свободным остаткам в отчетах и подборе
- ЭДО тестовый режим обмена
- Как передать массив post запросом?
- СКД. Как выводить суммы без пробелов
- Изменение владельца у характеристики номенклатуры
- Что покурить по тестированию ПО?
- Ошибка- не заполнено субконто
- клиентские лицензии с программной защитой или аппаратной защитой? что выбрать?
- Регламентное задание + Завершить работу системы
- Как передать фокус между элементами управляемой формы?
- ЗУП выгрузка проводок в БП по алиментам
- Почему не выгружаются сведения отпуска по уходу за ребенком