Не работает обработчик ожидания

v8: Не работает ПодключитьОбработчикОжидания()

&НаКлиенте
Процедура ОповещениеОРемонте()
.
КонецПроцедуры

Процедура ПриНачалеРаботыСистемы()
.
ПодключитьОбработчикОжидания(«ОповещениеОРемонте»,10);
КонецПроцедуры

Выдает ошибку «Недопустимое значение параметра (параметр номер ‘1’)».
Варум? (не Анжелика)

Тип: Строка. Имя экспортируемой процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля.
Функция в общем глобальном модуле должна предваряться директивой компиляции НаКлиенте. При этом модуль должен быть доступен на тонком клиенте.
.

Тип: Строка.
Имя процедуры, подключаемой в качестве обработчика ожидания.

Синтаксис:
ПодключитьОбработчикОжидания( , , )
Параметры:
Тип: Строка.
Имя экспортируемой процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля.
Тип: Число.
Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число).
Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина.
Тип: Булево.
Признак однократного выполнения обработчика ожидания.
Истина — указанный обработчик ожидания будет выполнен один раз.
Значение по умолчанию: Ложь
Описание:
Подключает вызов указанной процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля через определенный интервал времени. Вызов будет осуществляться только в «состоянии покоя», то есть в тот момент, когда программа не выполняет никаких действий.

Тонкий клиент, веб-клиент, толстый клиент.
Примечание:
Вызов обработчика ожидания продолжается, пока система не завершит работу или пока не будет вызван метод глобального контекста ОтключитьОбработчикОжидания.
Пример:
См. также:
Глобальный контекст, метод ОтключитьОбработчикОжидания

Тип: Строка.
Имя экспортируемой процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля.
Процедура должна располагаться на клиенте.

Читайте также:  Как заряжать айфон если сломалась зарядка

Источник

Обработчик ожидания и БлокироватьВесьИнтерфейс

Пытаюсь реализовать следующее:
есть обработка начального заполнения ИБ.
Форма открывается в режиме блокировки интерфейса.
Состоит из нескольких вкладок — ввод данных о пользователе, организации и т.д.; табличка «чек-лист» (что в данный момент происходит с базой); перезапуск.
Проблема: при переключении на вкладку с чек-листом форма не успевает перерисоваться и юзер наблюдает рамку от таблицы всё время, пока данные пишутся в базу. Пробовал сделать с подключением обработчика ожидания, так платформа уходит в глубокую несознанку и выводится оттуда перезапуском отладки / прибиванием в диспетчере.

Как реализовать слегка отложенный запуск процедуры записи данных, чтобы пользователь увидел чек-лист?

ПодключитьОбработчикОжидания (AttachIdleHandler)
Синтаксис:

Тип: Строка.
Имя экспортируемой процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля.
Процедура должна располагаться на клиенте.
Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число).
Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина.
Признак однократного выполнения обработчика ожидания.
Истина — указанный обработчик ожидания будет выполнен один раз.
Значение по умолчанию: Ложь.
Описание:

Подключает вызов указанной процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля через определенный интервал времени. Вызов будет осуществляться только в «состоянии покоя», то есть в тот момент, когда программа не выполняет никаких действий.
Во время временной блокировки, вызванной методом ЗаблокироватьРаботуПользователя или соответствующей командой «Временная блокировка», обработчики ожидания не выполняются.

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Примечание:

Вызов обработчика ожидания продолжается, пока система не завершит работу или пока не будет вызван метод глобального контекста ОтключитьОбработчикОжидания.
Пример:

Глобальный контекст, метод ОтключитьОбработчикОжидания

Источник

Особенности работы обработки ожидания и обработки внешних событий

Механизмы обработки ожидания и обработки внешних событий схожи по своему внутреннему устройству — оба механизма построены на использовании состояния «простоя» (idle state) исполняемого приложения, в данном случае — 1С:Предприятия 8. Это состояние приложения определяется операционной системой, информация о переходе в это состояние передается приложению через очередь сообщений приложения как специальное сообщение. Как следствие, функционирование описываемых механизмов зависит от организации обработки сообщений, получаемых через очередь сообщений приложения. В 1С:Предприятии 8 используется одна очередь сообщений на все приложение, поэтому обработки ожидания и внешних событий продолжают функционировать при активизации любого окна 1С:Предприятия 8 в любом из допустимых режимов. Однако такой порядок работы не распространяется на системные диалоги (как правило, они открываются в 1С:Предприятии 8 в модальном режиме) — эти диалоги организуют свои собственные очереди сообщений, перехватывая все сообщения, посланные приложению. Соответственно, сообщения о состоянии «простоя» обрабатываются в этих диалогах и не попадают в 1С:Предприятие 8, поэтому при открытии таких диалогов обработки ожидания и внешних событий прекращают работать до закрытия системного диалога. В число таких системных диалогов входят диалоги открытия и сохранения файла, диалог печати и другие диалоги.

Необходимо отметить дополнительную деталь в обработке внешних событий — соответствующие обработчики могут располагаться как в модуле приложения, так и в модулях форм. Если обработка внешних событий в модуле формы зависит от активности формы (например, используется метод ВводДоступен() ), то при появлении модального диалога обработка будет прекращена, так как форма становится неактивной.

Источник

v8: процедура ПодключитьОбработчикОжидания, в модуле обработки.

Вызываю процедуру ПодключитьОбработчикОжидания
в модуле обработке.

Если БылоПрерывание И ФормаХодаВыполненияОбмена.Открыта() Тогда

БылоПрерывание = Истина;
ПодключитьОбработчикОжидания(«ПриОжиданииПрерывания»,0.1,Истина);
ОбработкаПрерыванияПользователя();
БылоПрерывание = Ложь;

при выполнении модуля, ругается на первый параметр ПодключитьОбработчикОжидания().

Что не так делаю?

Тип: Строка. Имя экспортируемой процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля.
Функция в общем глобальном модуле должна предваряться директивой компиляции НаКлиенте. При этом модуль должен быть доступен на тонком клиенте.

Т.е. получается подключаемая процедура должна расположена в глобальном модуле?

Глобальный контекст
ПодключитьОбработчикОжидания (AttachIdleHandler)
Синтаксис:
ПодключитьОбработчикОжидания( , , )
Параметры:
(обязательный)
Тип: Число. Интервал времени с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число).
Тип: Булево. Признак однократного выполнения обработчика ожидания.
Значение по умолчанию: Ложь
Описание:
Подключает вызов указанной экспортируемой процедуры модуля приложения или глобального общего модуля через определенный интервал времени. Вызов будет осуществляться только в «состоянии покоя», то есть в тот момент, когда программа не выполняет никаких действий.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Примечание:
Вызов обработчика ожидания продолжается, пока система не завершит работу или пока не будет вызван метод глобального контекста ОтключитьОбработчикОжидания.
Пример:

(20) это, конечно, экзотика, но даже в типовых встречается.
Например в модуле обработки БлокировкаСоединенийСИнформационнойБазой:

Источник

Периодическое выполнение кода с заданным интервалом времени — ОбработкаОжидания()

Код 1C v 8.2 УП
Параметры:
(обязательный) Тип: Строка. Имя процедуры, подключаемой в качестве обработчика ожидания.
(обязательный) Тип: Число. Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число).Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина.
(необязательный) Тип: Булево. Признак однократного выполнения обработчика ожидания.
Истина — указанный обработчик ожидания будет выполнен один раз. Значение по умолчанию: Ложь
Описание: Подключает указанную процедуру в качестве обработчика ожидания. Процедура будет вызываться в период ожидания системы каждый раз по истечению указанного интервала времени.

Доступность:
Тонкий клиент, веб-клиент, толстый клиент.

Примечание:
Вызов обработчика ожидания продолжается пока форма не будет закрыта или пока не будет вызван метод формы ОтключитьОбработчикОжидания. Код 1C v 8.2 УП

Код 1C v 8.х
Подключает вызов указанной процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля через определенный интервал времени. Вызов будет осуществляться только в «состоянии покоя», то есть в тот момент, когда программа не выполняет никаких действий. Вызов обработчика ожидания продолжается, пока система не завершит работу или пока не будет вызван метод глобального контекста ОтключитьОбработчикОжидания.
Код 1C v 8.х
Код 1C v 8.х

Для Формы
Код 1C v 8.х
Параметры:
(обязательный) Тип: Строка. Имя процедуры, подключаемой в качестве обработчика ожидания.
(обязательный) Тип: Число. Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число). Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина.
(необязательный) Тип: Булево. Признак однократного выполнения обработчика ожидания. 0Истина — указанный обработчик ожидания будет выполнен один раз. Значение по умолчанию: Ложь

Описание:
Подключает указанную процедуру в качестве обработчика ожидания. Процедура будет вызываться в период ожидания системы каждый раз по истечению указанного интервала времени.

Доступность:
Толстый клиент.
Примечание:
Вызов обработчика ожидания продолжается пока форма не будет закрыта или пока не будет вызван метод формы ОтключитьОбработчикОжидания.
Пример:
Код 1C v 8.х
Код 1C v 8.х

Обработка ожидания в системе 1С:Предприятие, как следует из документации, предназначена для периодического выполнения процедуры глобального модуля с заданным интервалом времени. Код для запуска будет выглядеть следующим образом:
Код 1C v 7.x
Где «ОбновитьСчетчик_» — имя процедуры глобального модуля, которая будет запускаться с периодичностью в 1 сек. (второй параметр, равный 1)

Но! Проблема в том, что запустить обработку ожидания можно только 1 раз. Повторный запуск приведет к отмене предыдущего. Другими словами, если Вы хотите сделать, к примеру, обработку-таймер для отсчета затраченного времени, то запустить можно только один таймер, т.к. запуск второго таймера приведет к остановке первого. А что делать если Вам надо запустить 2, 3 или больше таких таймеров одновременно? Или Вам надо еще при этом периодически сканировать состояние документов?

Выход есть! Обработку ожидания надо запустить в контексте формы, чтобы отделить этот поток от глобального контекста. И тогда станет возможным периодический запуск процедуры локального модуля, т.е. процедуры, расположенной в модуле формы Вашей обработки.

Код для запуска будет выглядеть следующим образом:
Код 1C v 7.x
Где «ОбновитьСчетчик_» — имя процедуры локального модуля формы обработки, которая будет запускаться с периодичностью в 1 сек. (второй параметр, равный 1)
Таким образом, в каждой обработке можно запустить свою обработку ожидания, которая будет работать до тех пор, пока открыта форма.

В формах можно использовать Код 1C v 8.х ,
где ИмяПроцедуры — имя процедуры, которая запускается через ВремяЗапуска секунд
В самой процедуре нужно вставить Код 1C v 8.х для прекращения обработки ожидания (естественно, после выполнения нужных условий).
Источник lessons1c
:

Источник

Оцените статью