Как запустить регламентное задание 1с вручную
При работе в 1С встречается много рутинных операций которые должны запускаться или формироваться по расписанию выполняя то или иное действие, например: проведение документов или загрузка данных в 1С с сайта.
Недавно я разместил статью: Чтение данных с сайта в формате XML и загрузка в 1С пришло время это автоматизировать:
Регламентные и фоновые задания
Механизм заданий предназначен для выполнения какой-либо прикладной или функциональности по расписанию или асинхронно.
Механизм заданий решает следующие задачи:
- Возможность определения регламентных процедур на этапе конфигурирования системы;
- Выполнение заданных действий по расписанию;
- Выполнение вызова заданной процедуры или функции асинхронно, т.е. без ожидания ее завершения;
- Отслеживание хода выполнения определенного задания и получение его статуса завершения (значения, указывающего успешность или не успешность его выполнения);
- Получение списка текущих заданий;
- Возможность ожидания завершения одного или нескольких заданий;
- Управление заданиями (возможность отмены, блокировка выполнения и др.).
Механизм заданий состоит из следующих компонентов:
- Метаданных регламентных заданий;
- Регламентных заданий;
- Фоновых заданий;
- Планировщика заданий.
Фоновые задания & предназначены для выполнения прикладных задач асинхронно. Фоновые задания реализуются средствами встроенного языка.
Регламентные задания & предназначены для выполнения прикладных задач по расписанию. Регламентные задания хранятся в информационной базе и создаются на основе метаданных, определяемых в конфигурации. Метаданные регламентного задания содержат такую информацию как наименование, метод, использование и т.д.
Регламентное задание имеет расписание, которое определяет, в какие моменты времени нужно выполнять связанный с регламентным заданием метод. Расписание, как правило, задается в информационной базе, но может быть задано и на этапе конфигурирования (например, для предопределенных регламентных заданий).
Планировщик заданий используется для планирования выполнения регламентных заданий. Для каждого регламентного задания планировщик периодически проверяет, соответствует ли текущая дата и время расписанию регламентного задания. Если соответствует, планировщик назначает такое задание на выполнение. Для этого по данному регламентному заданию планировщик создает фоновое задание, которое и выполняет реальную обработку.
С описанием, думаю, хватит - приступим к реализации:
Создание регламентного задания
Имя метода – путь к процедуре, которая будет выполняться в фоновом задании по заданному расписанию. Процедура должна находиться в общем модуле. Рекомендуется не использовать типовые общие модули, а создать свой. Не забудьте, что фоновые задания исполняются на сервере!
Использование – признак использования регламентного задания.
Предопределенное – указывает, является ли регламентное задание предопределенным.
Если хотите что бы регламентное задание заработало сразу после помещения в БД, укажите признак Предопределенное. В противном случае вам необходимо будет использовать обработку “Консоль заданий” или вызывать запуск задания программно.
Количество повторов при аварийном завершении задания – сколько раз выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
Интервал повтора при аварийном завершении задания – с какой периодичностью будет выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
Настройка расписания
Расписание выполнения задания:
Особенности выполнения фоновых заданий файловом и клиент-серверном вариантах
Механизмы выполнения фоновых заданий в файловом и клиент-серверном вариантах различаются.
В файловом варианте необходимо создать выделенный клиентский процесс, который будет заниматься выполнением фоновых заданий. Для этого в клиентском процессе должна периодически вызываться функция глобального контекста ВыполнитьОбработкуЗаданий. Только один клиентский процесс на информационную базу должен выполнять обработку фоновых заданий (и, соответственно, вызывать данную функцию). Если клиентского процесса для обработки фоновых заданий не создано, то при программном доступе к механизму заданий будет выдана ошибка «Менеджер заданий не активен». Не рекомендуется клиентский процесс, выполняющий обработку фоновых заданий, использовать для других функций.
После того, как клиентский процесс, выполняющий обработку фоновых заданий, запущен, остальные клиентские процессы получают возможность программного доступа к механизму фоновых заданий, т.е. могут запускать и управлять фоновыми заданиями.
В клиент-серверном варианте для выполнения фоновых заданий используется планировщик заданий, который физически находится в менеджере кластера. Планировщик для всех поставленных в очередь на выполнение фоновых заданий получает наименее загруженный рабочий процесс и использует его для выполнения соответствующего фонового задания. Рабочий процесс выполняет задание и уведомляет планировщик о результатах выполнения.
В клиент-серверном варианте имеется возможность блокирования выполнения регламентных заданий. Блокирование выполнения регламентных заданий происходит в следующих случаях:
- На информационную базу установлена явная блокировка регламентных заданий. Блокировка может быть установлена через консоль кластера;
- На информационную базу установлена блокировка соединения. Блокировка может быть установлена через консоль кластера;
- Из встроенного языка вызван метод УстановитьМонопольныйРежим() с параметром Истина;
- В некоторых других случаях (например, при обновлении конфигурации базы данных).
Обработки запуска и просмотра регламентных заданий вы можете скачать здесь:
При работе в 1С встречается много рутинных операций которые должны запускаться или формироваться по расписанию выполняя то или иное действие, например: проведение документов или загрузка данных в 1С с сайта.
Недавно я разместил статью: Чтение данных с сайта в формате XML и загрузка в 1С пришло время это автоматизировать:
Регламентные и фоновые задания
Механизм заданий предназначен для выполнения какой-либо прикладной или функциональности по расписанию или асинхронно.
Механизм заданий решает следующие задачи:
- Возможность определения регламентных процедур на этапе конфигурирования системы;
- Выполнение заданных действий по расписанию;
- Выполнение вызова заданной процедуры или функции асинхронно, т.е. без ожидания ее завершения;
- Отслеживание хода выполнения определенного задания и получение его статуса завершения (значения, указывающего успешность или не успешность его выполнения);
- Получение списка текущих заданий;
- Возможность ожидания завершения одного или нескольких заданий;
- Управление заданиями (возможность отмены, блокировка выполнения и др.).
Механизм заданий состоит из следующих компонентов:
- Метаданных регламентных заданий;
- Регламентных заданий;
- Фоновых заданий;
- Планировщика заданий.
Фоновые задания & предназначены для выполнения прикладных задач асинхронно. Фоновые задания реализуются средствами встроенного языка.
Регламентные задания & предназначены для выполнения прикладных задач по расписанию. Регламентные задания хранятся в информационной базе и создаются на основе метаданных, определяемых в конфигурации. Метаданные регламентного задания содержат такую информацию как наименование, метод, использование и т.д.
Регламентное задание имеет расписание, которое определяет, в какие моменты времени нужно выполнять связанный с регламентным заданием метод. Расписание, как правило, задается в информационной базе, но может быть задано и на этапе конфигурирования (например, для предопределенных регламентных заданий).
Планировщик заданий используется для планирования выполнения регламентных заданий. Для каждого регламентного задания планировщик периодически проверяет, соответствует ли текущая дата и время расписанию регламентного задания. Если соответствует, планировщик назначает такое задание на выполнение. Для этого по данному регламентному заданию планировщик создает фоновое задание, которое и выполняет реальную обработку.
С описанием, думаю, хватит - приступим к реализации:
Создание регламентного задания
Имя метода – путь к процедуре, которая будет выполняться в фоновом задании по заданному расписанию. Процедура должна находиться в общем модуле. Рекомендуется не использовать типовые общие модули, а создать свой. Не забудьте, что фоновые задания исполняются на сервере!
Использование – признак использования регламентного задания.
Предопределенное – указывает, является ли регламентное задание предопределенным.
Если хотите что бы регламентное задание заработало сразу после помещения в БД, укажите признак Предопределенное. В противном случае вам необходимо будет использовать обработку “Консоль заданий” или вызывать запуск задания программно.
Количество повторов при аварийном завершении задания – сколько раз выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
Интервал повтора при аварийном завершении задания – с какой периодичностью будет выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
Настройка расписания
Расписание выполнения задания:
Особенности выполнения фоновых заданий файловом и клиент-серверном вариантах
Механизмы выполнения фоновых заданий в файловом и клиент-серверном вариантах различаются.
В файловом варианте необходимо создать выделенный клиентский процесс, который будет заниматься выполнением фоновых заданий. Для этого в клиентском процессе должна периодически вызываться функция глобального контекста ВыполнитьОбработкуЗаданий. Только один клиентский процесс на информационную базу должен выполнять обработку фоновых заданий (и, соответственно, вызывать данную функцию). Если клиентского процесса для обработки фоновых заданий не создано, то при программном доступе к механизму заданий будет выдана ошибка «Менеджер заданий не активен». Не рекомендуется клиентский процесс, выполняющий обработку фоновых заданий, использовать для других функций.
После того, как клиентский процесс, выполняющий обработку фоновых заданий, запущен, остальные клиентские процессы получают возможность программного доступа к механизму фоновых заданий, т.е. могут запускать и управлять фоновыми заданиями.
В клиент-серверном варианте для выполнения фоновых заданий используется планировщик заданий, который физически находится в менеджере кластера. Планировщик для всех поставленных в очередь на выполнение фоновых заданий получает наименее загруженный рабочий процесс и использует его для выполнения соответствующего фонового задания. Рабочий процесс выполняет задание и уведомляет планировщик о результатах выполнения.
В клиент-серверном варианте имеется возможность блокирования выполнения регламентных заданий. Блокирование выполнения регламентных заданий происходит в следующих случаях:
- На информационную базу установлена явная блокировка регламентных заданий. Блокировка может быть установлена через консоль кластера;
- На информационную базу установлена блокировка соединения. Блокировка может быть установлена через консоль кластера;
- Из встроенного языка вызван метод УстановитьМонопольныйРежим() с параметром Истина;
- В некоторых других случаях (например, при обновлении конфигурации базы данных).
Обработки запуска и просмотра регламентных заданий вы можете скачать здесь:
При работе в 1С встречается много рутинных операций которые должны запускаться или формироваться по расписанию выполняя то или иное действие, например: проведение документов или загрузка данных в 1С с сайта.
Недавно я разместил статью: Чтение данных с сайта в формате XML и загрузка в 1С пришло время это автоматизировать:
Регламентные и фоновые задания
Механизм заданий предназначен для выполнения какой-либо прикладной или функциональности по расписанию или асинхронно.
Механизм заданий решает следующие задачи:
- Возможность определения регламентных процедур на этапе конфигурирования системы;
- Выполнение заданных действий по расписанию;
- Выполнение вызова заданной процедуры или функции асинхронно, т.е. без ожидания ее завершения;
- Отслеживание хода выполнения определенного задания и получение его статуса завершения (значения, указывающего успешность или не успешность его выполнения);
- Получение списка текущих заданий;
- Возможность ожидания завершения одного или нескольких заданий;
- Управление заданиями (возможность отмены, блокировка выполнения и др.).
Механизм заданий состоит из следующих компонентов:
- Метаданных регламентных заданий;
- Регламентных заданий;
- Фоновых заданий;
- Планировщика заданий.
Фоновые задания & предназначены для выполнения прикладных задач асинхронно. Фоновые задания реализуются средствами встроенного языка.
Регламентные задания & предназначены для выполнения прикладных задач по расписанию. Регламентные задания хранятся в информационной базе и создаются на основе метаданных, определяемых в конфигурации. Метаданные регламентного задания содержат такую информацию как наименование, метод, использование и т.д.
Регламентное задание имеет расписание, которое определяет, в какие моменты времени нужно выполнять связанный с регламентным заданием метод. Расписание, как правило, задается в информационной базе, но может быть задано и на этапе конфигурирования (например, для предопределенных регламентных заданий).
Планировщик заданий используется для планирования выполнения регламентных заданий. Для каждого регламентного задания планировщик периодически проверяет, соответствует ли текущая дата и время расписанию регламентного задания. Если соответствует, планировщик назначает такое задание на выполнение. Для этого по данному регламентному заданию планировщик создает фоновое задание, которое и выполняет реальную обработку.
С описанием, думаю, хватит - приступим к реализации:
Создание регламентного задания
Имя метода – путь к процедуре, которая будет выполняться в фоновом задании по заданному расписанию. Процедура должна находиться в общем модуле. Рекомендуется не использовать типовые общие модули, а создать свой. Не забудьте, что фоновые задания исполняются на сервере!
Использование – признак использования регламентного задания.
Предопределенное – указывает, является ли регламентное задание предопределенным.
Если хотите что бы регламентное задание заработало сразу после помещения в БД, укажите признак Предопределенное. В противном случае вам необходимо будет использовать обработку “Консоль заданий” или вызывать запуск задания программно.
Количество повторов при аварийном завершении задания – сколько раз выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
Интервал повтора при аварийном завершении задания – с какой периодичностью будет выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
Настройка расписания
Расписание выполнения задания:
Особенности выполнения фоновых заданий файловом и клиент-серверном вариантах
Механизмы выполнения фоновых заданий в файловом и клиент-серверном вариантах различаются.
В файловом варианте необходимо создать выделенный клиентский процесс, который будет заниматься выполнением фоновых заданий. Для этого в клиентском процессе должна периодически вызываться функция глобального контекста ВыполнитьОбработкуЗаданий. Только один клиентский процесс на информационную базу должен выполнять обработку фоновых заданий (и, соответственно, вызывать данную функцию). Если клиентского процесса для обработки фоновых заданий не создано, то при программном доступе к механизму заданий будет выдана ошибка «Менеджер заданий не активен». Не рекомендуется клиентский процесс, выполняющий обработку фоновых заданий, использовать для других функций.
После того, как клиентский процесс, выполняющий обработку фоновых заданий, запущен, остальные клиентские процессы получают возможность программного доступа к механизму фоновых заданий, т.е. могут запускать и управлять фоновыми заданиями.
В клиент-серверном варианте для выполнения фоновых заданий используется планировщик заданий, который физически находится в менеджере кластера. Планировщик для всех поставленных в очередь на выполнение фоновых заданий получает наименее загруженный рабочий процесс и использует его для выполнения соответствующего фонового задания. Рабочий процесс выполняет задание и уведомляет планировщик о результатах выполнения.
В клиент-серверном варианте имеется возможность блокирования выполнения регламентных заданий. Блокирование выполнения регламентных заданий происходит в следующих случаях:
- На информационную базу установлена явная блокировка регламентных заданий. Блокировка может быть установлена через консоль кластера;
- На информационную базу установлена блокировка соединения. Блокировка может быть установлена через консоль кластера;
- Из встроенного языка вызван метод УстановитьМонопольныйРежим() с параметром Истина;
- В некоторых других случаях (например, при обновлении конфигурации базы данных).
Обработки запуска и просмотра регламентных заданий вы можете скачать здесь:
В системе 1С:Предприятие 8.3 предусмотрено довольно много способов повышения производительности и быстродействия. Один из вариантов – настройка регламентных и фоновых заданий.
Для начала кратко определим, что это такое, для чего они нужны и за что отвечают:
- Регламентные задания в 1С – это механизмы, заложенные в конфигурацию, указывающие на необходимость выполнять определенных задач по установленному расписанию. Такое задание в обязательном порядке порождает фоновое.
- Фоновые задания в 1С 8.3 – это действия, производимые программой 1С незаметно для работающего в ней. Отслеживают их исполнение только по журналу регистрации. Особенностью такого задания является то, что при его выполнении не блокируется работа пользователя, он может продолжать вносить и редактировать данные, даже если процедура запущена.
Как настроить регламентное задание и фоновое
Рассматриваемые нами процессы начинают исполняться автоматом после запуска 1С, при этом они используют огромное количество ресурсов и замедляют работу. Чтобы оптимизировать работу, по согласованию с пользователем конкретной информационной базы надо решить, какие задания нужно отключить, а какие оставить в автоматическом запуске при загрузке.
В программе 1С 8.3 список заданий находится в «Администрирование-Настройки программы-Обслуживание».
Рис.1 Обслуживание
В «Обслуживание-Регламентные операции» находим ссылку на наши операции.
Рис.2 Регламентные операции
Перед нами список заданий, разделенных по виду на отдельных вкладках.
Рис.3 Список заданий
У Регламентных заданий указывается:
- Наименование;
- Состояние (выполняется или выполнено);
- Дата окончания.
У Фоновых заданий:
- Состояние (выполняется или выполнено);
- Наименование;
- Начало;
- Окончание.
Рассмотрим регламентную операцию «Загрузка курсов валют». Заходим на соответствующую вкладку. С заданиями можно осуществлять следующие действия:
- Включить – поставить флажок «включено»;
- Выключить – снять флажок «включено», затем «Записать и закрыть». Так можно отключить задания, которые не представляются важными, и это значительно увеличит скорость работы в программе 1С;
- Настроить расписание исполнения.
Рис.5 Загрузка курсов валют
Виды расписаний
Общее – указываем дату начала/окончания, а также периодичность повторений в днях.
Рис.6 Общее расписание
Дневное – указав время начала, время окончания, завершать после какого времени, а также повторять через, повторять с паузой, останавливать через. Время указывается в секундах.
Рис.7 Дневное расписание
Недельное – на этой вкладке галочками мы отмечаем дни недели, а также количество повторений.
Рис.8 Недельное расписание
Месячное – галочками отмечают месяцы, в которые надо запускать задания обоих видов.
Рис.9 Месячное расписание
Добавление Регламентного задания
Для добавления в информационную базу такого вида задания, надо открыть Конфигуратор. Для создания задания пользователь должен обладать правами администратора.
Рис.10 Добавление Регламентного задания
Далее выбираем «Конфигурация-Открыть конфигурацию». Затем открываем «Общие-Регламентные задания», нажимаем правой кнопкой мыши, появляется окошко «Добавить». Выбираем его.
Рис.11 Регламентные задания
- В графе «Имя модуля» указывается процедура для исполнения. В ней прописаны все подробности и нюансы работы;
- Для отключения или включения задания необходимо установить или удалить флажок в поле «Использование»;
- Указываем «Предопределенность». Задания с этой характеристикой запускаются автоматом. Если не поставить галочку, то надо будет запускать их дополнительно;
- Указываем число повторений и длину интервалов между ними при аварийном завершении работы.
Рис.12 Заполняем задание
Также здесь мы можем настроить расписание задания. Нажимаем на кнопку «Расписание (Открыть)» и переходим к его заполнению.
Рис.13 Расписание (Открыть)
К примеру, нам нужно выполнять наше задание с 1 по 30 сентября один раз в день. Также мы можем настроить расписание исполнения Регламентного задания, как уже было описано выше.
Сегодня мы познакомились с Регламентными и Фоновыми заданиями в программе 1С 8.3, узнали, как добавить новое задание или настроить существующее, а также отключить выполнение ненужных задач. В заключение хочется отметить, что оба видов заданий в 1С очень удобны для пользователя, так как выполняются автоматом, по четко заданному сценарию, не отвлекая специалиста от работы, и тем самым увеличивают производительность труда.
Регламентные задания в 1С предназначены для выполнения определенных процедур по расписанию, с некоторой периодичностью.
Регламентные задания хранятся в информационной базе, имеют расписание запуска. Сам запуск производится полностью автоматически, если режим работы информационной базы клиент-серверный. Если же база файловая, то необходимо выполнить следующие действия:
- выделить специального пользователя для выполнения регламентных заданий;
- должна быть открыта база под этим пользователем, в которой периодически должна выполняться функция ВыполнитьОбработкуЗаданий().
Создание регламентного задания
Регламентные задания — объект метаданных конфигурации 1С. Находится в группе Общие. Рассмотрим параметры и свойства регламентных заданий.
Ключ — позволяет создать несколько регламентных заданий одного типа. Например, выполнение синхронизации данных между несколькими информационными базами может быть реализовано с помощью одного объекта метаданных РегламентноеЗадание, при этом самих регламентных заданий будет создано несколько (по количеству баз для обмена). Различаться эти регламентные задания будут с помощью свойства Ключ. Одновременно может выполняться только одно задание с одинаковым ключом.
Использование — флаг, показывающий, включено ли регламентное задание.
Предопределенное — здесь можно провести аналогию с предопределенными элементами справочника. Предопределенные элементы создаются в конфигураторе и применяются пользователями в работе. Обычные элементы пользователь создает сам. С регламентными заданиями точно так же: если оно предопределенное, то оно существует и может выполняться по расписанию сразу после создания в конфигураторе. Если же флаг Предопределенное не установлен, то пользователю нужно самому создать одно или несколько регламентных заданий данного типа (например, через Консоль заданий).
Количество повторов при аварийном завершении задания — определяет, сколько раз будет выполнен перезапуск фонового задания, если оно было завершено с ошибкой.
Интервал повтора при аварийном завершении задания — определяет, с какой периодичностью будет выполнен перезапуск фонового задания, если оно было завершено с ошибкой.
Программная работа с регламентными заданиями
В данных примерах будем рассматривать работу с обычными, не предопределенными, регламентными заданиями.
Программное создание регламентного задания
//Создаем задание
Задание = РегламентныеЗадания . СоздатьРегламентноеЗадание ( "ИмяРегдаментногоЗадания" ) ;
//Устанавливаем ключ регламентного задания (не обязательно)
Задание . Ключ = "КлючЗадания" ;
//Включаем регламентное задание
Задание . Использование = Истина ;
//Записываем регламентное задание
Задание . Записать ( ) ;
Программное получение регламентного задания для изменения параметров
В этом примере предположим, что существует только одно регламентное задание данного типа. Если заданий несколько, то, зная методы работы с массивами, нетрудно внести в код соответствующие изменения.
//Получаем массив с регламентными заданиями нужного типа
Задания = РегламентныеЗадания . ПолучитьРегламентныеЗадания ( новый Структура ( "Метаданные" , Метаданные . РегламентныеЗадания [ "ИмяРегламентногоЗадания" ] ) ) ;
//Если задание существует, то по условию оно одно
Если Задания . Количество ( ) >0 Тогда
Задание = Задания [ 0 ] ;
//Если задания нет, создадим его
Иначе
Задание = РегламентныеЗадания . СоздатьРегламентноеЗадание ( "ИмяРегламентногоЗадания" ) ;
//Регламентное задание находится в переменной Задание. Можно изменять его параметры.
Вызов диалога изменения расписания регламентного задания
Для работы с расписанием регламентного задания существует особый тип диалога. Все еще предполагаем, что у нас есть только одно регламентное задание данного типа.
//Получаем массив с регламентными заданиями нужного типа
Задания = РегламентныеЗадания . ПолучитьРегламентныеЗадания ( новый Структура ( "Метаданные" , Метаданные . РегламентныеЗадания [ "ИмяРегламентногоЗадания" ] ) ) ;
//Если задание существует, то по условию оно одно
Если Задания . Количество ( ) >0 Тогда
Задание = Задания [ 0 ] ;
//Если задания нет, создадим его
Иначе
Задание = РегламентныеЗадания . СоздатьРегламентноеЗадание ( "ИмяРегламентногоЗадания" ) ;
Расписание = Задание . Расписание ;
//Создаем диалог изменения расписания регламентного задания
ДиалогРедактирования = Новый ДиалогРасписанияРегламентногоЗадания ( Расписание ) ;
//Показываем диалог пользователю и обрабатываем изменения расписания
Если ДиалогРедактирования . ОткрытьМодально ( ) Тогда
Задание . Расписание = ДиалогРедактирования . Расписание ;
Задание . Записать ( ) ;
КонецЕсли ;
Добавить комментарий Отменить ответ
Теперь мы в соцсетях! Подписывайтесь, чтобы получать информацию о последних обновлениях или задать вопрос.
Читайте также: