1с обработчик ожидания обычные формы

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

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

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

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

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

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

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

Источник

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

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

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

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

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

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

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

Источник

Обучение программированию на 1С

Обработчик ожидания – выполнение кода через заданное время

2017 01 09 21 55 56

В этой статье покажем как в 1С выполнять код с заданной периодичностью с использованием функций обработчика ожидания:

Обработчик ожидания – это механизм, который используется на стороне клиентского приложения (т.е. в пользовательских формах и т.п.). Его задача запустить процесс, который выполнит определённые действия однократно или через заданный интервал времени. Обработчик ожидания выполняет свои действия параллельно (в выделенном потоке) основной работе пользователя.

Синтаксис

Рассмотрим синтаксис вышеуказанных функций:

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

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

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

Пример вызова обработчика ожидания

Приведём пример работы с обработчиком ожидания:

В этом примере обработчик вызывается с клиента и выполняет клиентскую процедуру, которая, в свою очередь, передаёт управление серверной процедуре.

К примеру, вы хотите сделать с помощью данного механизма таймер. И хотите, чтобы имелась возможность вызывать несколько таймеров за раз. Вышеприведённый код не позволит вам вызывать обработчик несколько раз. Для этого можно сделать одну из следующих вещей:

По ссылке ниже можно скачать пример внешней обработки ожидания.

Если у вас остались вопросы, задавайте их ниже в комментариях.

Источник

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

Обработчик ожидания (формы клиентского приложения) – это процедура модуля формы с директивой компиляции &НаКлиенте, вызываемая с указанным интервалом механизмом платформы 1С, который включается с помощью метода формы клиентского приложения ПодключитьОбработчикОжидания.

Вызов метода доступен в тонком клиенте, веб-клиенте, толстом клиенте.

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

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

(необязательный) Тип: Булево. Признак однократного выполнения обработчика ожидания.

Истина – указанный обработчик ожидания будет выполнен один раз. Значение по умолчанию: Ложь.

1. Варианты подключения Обработчика ожидания

Вариант 1. Требуется однократный вызов выполнения какой-либо процедуры с директивой компиляции &НаКлиенте, отложенный на определенное время.

Вариант 2. Требуется регулярный вызов выполнения какой-либо процедуры с директивой компиляции &НаКлиенте с указанной периодичностью.

2. Ограничение механизма обработчика ожидания

Ограничение механизма обработчика ожидания. Сразу оговоримся, что вызов и выполнение процедуры, подключенной через метод ПодключитьОбработчикОжидания, как однократный, так и регулярный, механизмом платформы 1С происходит только в период ожидания системы. Поэтому использовать данный механизм платформы 1С как таймер, либо другой аналогичный инструмент, выполняющий функцию точного отсчета времени при выполнении кода, не следует.

Как было сказано выше, в качестве обработчика ожидания (формы клиентского приложения) можно подключить процедуру модуля формы с директивой компиляции &НаКлиенте.

Но если требуется выполнение с помощью данного механизма платформы 1С какой-либо процедуры с директивой компиляции, отличной от директивы &НаКлиенте (например, процедуры модуля данной формы или любой доступной экспортной процедуры конфигурации), то можно просто осуществлять вызов такой процедуры из процедуры-обработчика ожидания. Это справедливо и для случая, когда требуется осуществлять через данный механизм платформы 1С вызов какой-либо функции модуля данной формы или любой доступной экспортной функции конфигурации.

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

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

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

Источник

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

Обработчик ожидания (формы клиентского приложения) – это процедура модуля формы с директивой компиляции &НаКлиенте, вызываемая с указанным интервалом механизмом платформы 1С, который включается с помощью метода формы клиентского приложения ПодключитьОбработчикОжидания.

Вызов метода доступен в тонком клиенте, веб-клиенте, толстом клиенте.

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

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

(необязательный) Тип: Булево. Признак однократного выполнения обработчика ожидания.

Истина – указанный обработчик ожидания будет выполнен один раз. Значение по умолчанию: Ложь.

1. Варианты подключения Обработчика ожидания

Вариант 1. Требуется однократный вызов выполнения какой-либо процедуры с директивой компиляции &НаКлиенте, отложенный на определенное время.

Вариант 2. Требуется регулярный вызов выполнения какой-либо процедуры с директивой компиляции &НаКлиенте с указанной периодичностью.

2. Ограничение механизма обработчика ожидания

Ограничение механизма обработчика ожидания. Сразу оговоримся, что вызов и выполнение процедуры, подключенной через метод ПодключитьОбработчикОжидания, как однократный, так и регулярный, механизмом платформы 1С происходит только в период ожидания системы. Поэтому использовать данный механизм платформы 1С как таймер, либо другой аналогичный инструмент, выполняющий функцию точного отсчета времени при выполнении кода, не следует.

Как было сказано выше, в качестве обработчика ожидания (формы клиентского приложения) можно подключить процедуру модуля формы с директивой компиляции &НаКлиенте.

Но если требуется выполнение с помощью данного механизма платформы 1С какой-либо процедуры с директивой компиляции, отличной от директивы &НаКлиенте (например, процедуры модуля данной формы или любой доступной экспортной процедуры конфигурации), то можно просто осуществлять вызов такой процедуры из процедуры-обработчика ожидания. Это справедливо и для случая, когда требуется осуществлять через данный механизм платформы 1С вызов какой-либо функции модуля данной формы или любой доступной экспортной функции конфигурации.

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

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

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

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с обработкаполученияформы открыть обычную форму
  • 1с обработкаоповещения в управляемых формах