Регламентные задания 1С — это специальный механизм системы, предназначенный для выполнения определенного действия автоматически в фоновом режиме и по определенному расписанию (например, рассылка отчетов, отложенное проведение документов, загрузка курсов валют и др.).
Фоновое задание — объект, порождаемый регламентным заданием, который непосредственно выполняет заложенное действие без участия пользователя или программиста.
Фоновое задание 1С:
- выполняется под пользователем Windows, под которым работает процесс программы сервера 1С.
- можно создавать на языке 1С произвольно без регламентного задания (для параллельных вычислений на сервере).
ВАЖНО! Фоновые задания исполняются на сервере.
Отличие регламентного задания от подписки на событие:
- позволяет выполнять обработчик не при наступлении события (как это делает подписка на событие), а по расписанию.
Механизм регламентных и фоновых заданий работает:
- автоматически - в клиент-серверном режиме работы (благодаря функционалу СУБД);
- интерактивно - при использовании файловой БД, выполнением команды
ВыполнитьОбработкуЗаданий()
из сеанса в режиме 1С:Предприятие.
Особенности регламентных и фоновых заданий 1С:
- Экземпляр регламентного задания может быть создан программно. Если регламентное задание предопределенное (в свойствах стоит флаг "Предопределенное"), то задание будет создано в единственном экземпляре с указанным в конфигураторе расписанием. Экземпляры НЕ предопределенных заданий появляются по расписанию, заданному в режиме Предприятие программно.
- Одновременно выполняться может любое количество регламентных заданий, но не будут выполняться два задания (во избежание коллизий):
- с одинаковым ключом (ключ - свойство регламентного задания, которое позволяет сгруппировать несколько однотипных заданий);
- с одинаковым именем метода;
- связанные с одним и тем же объектом метаданных.
- В качестве метода регламентного задания может использоваться процедура, у которой может быть любое количество параметров. Число параметров метода регламентного задания соответствует числу параметров самого регламентного задания.
- Для создания регламентного задания пользователь должен обладать правами администратора.
- Если регламентное задание определено в конфигураторе (в соответствующем объекте конфигурации) как предопределенное, то предопределенный экземпляр регламентного задания нельзя пометить на удаление и удалить (но можно изменять, также они всегда будут доступны в списке шаблонов регламентных заданий).
- Если в качестве метода регламентного задания используется функция, то возвращаемое функцией значение игнорируется.
- Для обеспечения работы регламентных и фоновых заданий как в файловом, так и в клиент-серверном вариантах нет необходимости в запуске экземпляра 1С:Предприятие.
Замечание
Отсюда... В клиент-серверном варианте работы запуск регламентных заданий по расписанию осуществляет менеджер кластера. Таким образом, даже если с информационной базой не установлено ни одного клиентского соединения, регламентные задания будут выполняться (при условии, что они не запрещены для конкретной информационной базы). В файловом варианте работы для автоматического запуска регламентных заданий необходимо наличие выделенного клиентского соединения, используемого в качестве планировщика заданий. В этом соединении должна быть запущена обработка ожидания, с некоторой периодичностью выполняющая вызов метода встроенного языка
ВыполнитьОбработкуЗаданий()
.[свернуть] - Фоновые задания позволяют выполнять процедуру асинхронно.
- Завершившиеся фоновые задания являются сеансовыми объектами, хранятся некоторое время (в информационной базе не сохраняются). Фоновое задание - это объект встроенного языка, который существует только во время сеанса.
Настройка регламентного задания в клиент-серверном режиме работы 1С
Настройка регламентного задания осуществляется в палитре свойств данного объекта конфигурации.
Палитра свойств объекта "Регламентные задания":
- Имя метода — путь к процедуре, которая находится в общем модуле и будет выполняться в фоновом задании по заданному расписанию. Рекомендуется не использовать типовые общие модули, а создать свой.
- Наименование – определяет название, отображаемое в средствах управления заданиями.
- Ключ – позволяет сгруппировать несколько разных регламентных заданий 1С, при этом одновременно может быть запущено только одно задание с одинаковым значением ключа. Само значение может быть произвольным. Пустое значение не учитывается при контроле (то есть считается незаполненным).
- Использование — флаг использования регламентного задания.
- Предопределенное — флаг указывает, является ли регламентное задание предопределенным, т.е. работающим сразу после помещения в БД (задание будет создано в единственном экземпляре с указанными в конфигураторе расписанием). Не предопределенные задания появляются в момент наступления расписания программно (необходимо использовать обработку «Консоль заданий» или вызывать запуск задания программно).
- Количество повторов при аварийном завершении задания — сколько раз выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
- Интервал повтора при аварийном завершении задания — периодичность выполнения перезапуска фонового задания, если оно было выполнено с ошибкой.
- Расписание - настройка интервала запуска процедуры, указанной в поле «Имя метода».
Внимание! Не забудьте отключить блокировку выполнения регламентных и фоновых заданий на уровне СУБД! Блокировка может быть установлена для каждой информационной базы в отдельности.
Блокировка отключается:
- в утилите администрирования клиент-серверного варианта либо
- при создания новой БД.
Для управления фоновыми заданиями можно использовать обработку с диска ИТС "Консоль заданий", которая позволяет:
- выполнять мониторинг работы регламентных и фоновых заданий;
- удалять и создавать новые фоновые задания средствами встроенного языка;
- временно отключать регламентные задания (?).
Особенности настройки регламентных заданий 1С:
-
Задачи выполняются автоматически – их необходимо проверять (мониторить).
Необходимо проверить, что задача выполняется и может быть выполнена как регламентное задание 1С.
[свернуть] -
Задачи выполняются в модуле на сервере.
В серверном модуле могут быть недоступны многие вещи, которые доступны на клиенте. Например, не все документы могут быть проведены только на сервере, так как в их алгоритме может быть предусмотрено, что проведение запускается пользователем вручную и могут быть использованы несерверные функции. Если модуль не может быть выполнен на сервере – задание не будет выполняться в принципе.
[свернуть] -
Задачи выполняются под другим пользователем Windows, под другими правами.
Если задача имеет дело с чем-то вне базы 1С, то важное значение приобретают права пользователя Windows, под которым выполняется задание.Для проверки нужно хотя бы раз запустить задание и посмотреть результат «Задание выполнено» в обработке Консоль заданий.
[свернуть]
Настройка регламентных заданий в файловом режиме работы 1С
В файловом режиме для регламентного задания должна быть запущена отдельная сессия программы 1С. Часто это решается определением «технического» пользователя, чей сеанс всегда запущен.
Инициализация регламентного задания происходит:
- в общем случае - при запуске метода
ВыполнитьОбработкуЗаданий()
; - для конкретного пользователя - при запуске метода
ПодключитьОбработчикОжидания(<ИмяПроцедуры>, <Интервал>, <Однократно>)
(работает на клиенте).
Где:
- ИмяПроцедуры — имя экспортируемой процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля, подключаемой в качестве обработчика ожидания. Процедура должна располагаться на клиенте.
- Интервал — период между выполнениями операций в секундах.
- Однократно — количество выполниний задания (один раз или нет).
Пример:
1 |
ПодключитьОбработчикОжидания("ЗагрузкаВалют", 3600); |
Настройка регламентных и фоновых заданий для их автоматического выполнения в "1С:Бухгалтерия 8" (ред. 3.0)