Регламентные и фоновые задания 1С 8
Наверное, каждому программисту 1С 8.3 рано или поздно приходилось настраивать выполнение определенных заданий по расписанию. Ниже я дам подробное описание данных механизмов, надеюсь, это будет полезной информацией для начинающих программистов 1С. Это очень удобно, ведь не требует действий от человека, регламентное задание настраивается 1 раз и работает по Вашему расписанию.
Содержание
Как настраиваются регламентные и фоновые задания в 1С 8?
Развернутую инструкцию на примере загрузки курсов валют Вы найдете далее.
Что такое регламентные и фоновые задания в 1С
- Регламентные задания — это специальный механизм 1С предприятия 8.3, предназначенный для выполнения определенного действия по заданному расписанию.
- Фоновое задание — объекты, порождаемые регламентным заданием, которые непосредственно выполняет заложенное действие без участия пользователя или программиста 1С.
Механизм регламентных и фоновых заданий работает в клиент-серверном режиме работы (SQL), благодаря функционалу СУБД . Если у вас файловая БД, то задание тоже можно настроить, но немного по другому принципу.
Настройка фоновых заданий в клиент-серверном режиме работы 1С
Для начала создадим новый объект метаданных — регламентное задание. Я назову свое задание «ЗагрузкаКурсовВалют». Рассмотрим палитру свойств данного объекта конфигурации:
- Имя метода — путь к процедуре, которая будет выполняться в фоновом задании по заданному расписанию. Процедура должна находиться в общем модуле. Рекомендуется не использовать типовые общие модули, а создать свой. Не забудьте, что фоновые задания исполняются на сервере!
- Использование — признак использования регламентного задания.
- Предопределенное — указывает, является ли регламентное задание предопределенным. Если хотите чтобы регламентное задание заработало сразу после помещения в БД, укажите этот признак. В противном случае вам необходимо будет использовать обработку «Консоль заданий» или вызывать запуск задания программно.
- Количество повторов при аварийном завершении задания — сколько раз выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
- Интервал повтора при аварийном завершении задания — с какой периодичностью будет выполнен перезапуск фонового задания, если оно было выполнено с ошибкой.
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
И самая интересная настройка — Расписание:
Тут настраивается интервал запуска процедуры, указанного в поле «Имя метода». Допустим я настроил
Внимание! Не забудьте отключить блокировку выполнения регламентных и фоновых заданий на уровне СУБД!
Сделать это можно в утилите администрирования клиент-серверного варианта либо при создания новой БД:
Для управления фоновыми заданиями рекомендую использовать обработку с диска ИТС — «Консоль заданий«.
Настройка регламентных заданий в файловом режиме работы 1С
В файловом режиме настройка таких заданий несколько труднее. Для такого задания должна быть запущена отдельная сессия программы 1С. Зачастую это решается заведением «технического» пользователя, чей сеанс всегда запущен.
В файловом режиме инициализация регламентного задания происходит при запуске метода «ВыполнитьОбработкуЗаданий()».
Для определенного пользователя можно настроить запуск этого метод, используя другой метод —
ПодключитьОбработчикОжидания(<ИмяПроцедуры>, <Интервал>, <Однократно>).
Где:
- Имя процедуры — имя процедуры, подключаемой в качестве обработчика ожидания. Имя экспортируемой процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля. Процедура должна располагаться на клиенте.
- Интервал — период между выполнениями операций в секундах.
- Однократно — как выполнять задание, один раз или нет.
Пример:
ПодключитьОбработчикОжидания("ЗагрузкаВалют", 3600);
Двухминутное видео, в котором показано, как настроить регламентное задание в конфигураторе 1С:
Другие статьи по 1С:
- Администрирование (обновление 1С, резервные копии и т.д);
- Программирование 1С
- Обучение 1С (для пользователей)
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Алекс:
Ничего не понял из этого описания! Вот мне нужно настроить запуск регламентных заданий для файловой базы: где руководство к действию? что нужно сделать?
Программист 1С:
Если вам не понятен пример:
ПодключитьОбработчикОжидания(“ЗагрузкаВалют”, 3600);
Лучше не пытаться самому это сделать 🙂
Алексей:
А что случиться?
Санёк:
Не случиТЬся, а случиТся
Кирилл:
Будет грузить валюты каждые 3600 сек
Пупкин:
Если в конфигурации есть «Загрузка валют», иначи ничего грузиться не будет :)))
Владимир:
Не иначИ, а иначЕ ))
Копетан Ачивиднасть:
Синтаксический контроль не правит — значит, ошибок нет.
СинтаксМатьЕгоШлеп:
после значит запятая не нужна.
xdd:
отрабатывает ли событие ПодключитьОбработчикОжидания в клиент серверном варианте?
Программист 1С:
Да, обрабатывает
Ильдар:
Что в файловом нужно дописать, чтобы регламентное задание работало? ВыполнитьОбработкуЗаданий() что значит инициализация?
Олег:
Обычные формы, файловый режим,8.2, самописная конф.Создали Регламентное задание(с прикрепленным к нему экспортной функцией из общего модуля), настроили расписание, в модуле обычного приложения текст:
ПодключитьОбработчикОжидания(«ОбработкаЗаданий», 3);
Процедура ОбработкаЗаданий()Экспорт
ВыполнитьОбработкуЗаданий();
КонецПроцедуры
Ничего не запускает и не происходит… Куда копать?
Кирилл:
Олег, не очень вас понимаю.
Ведь функция «ПодключитьОбработчикОжидания» по сути и копирует функционал регламентного задания — по определенному регламенту запускать нужную функцию.
Посмотрите как пользуются этой функцией в типовом функционале. Под рукой 8.2 нет 🙁
Илья:
Обработчик ожидания работает на клиенте, а регламентные задания работают на сервере.
Игорь:
Добрый день. Подскажите, под каким пользователем выполняются фоновые задания в 8.3?
Кирилл:
Добрый день!
Пользователя можно указать при запуске фонового задания. Это можно посмотреть в консолях регламентных заданий.
Если пользователь не указан, то запускается под «невидимым» пользователем с правами по-умолчанию из палитры свойств конфигурации (в типовых они обычно полные).
Александр:
где то нашел такую фразу » имя пользователя, от имени которого должно выполняться регламентное задание,» — т.е. можно указать от какого имени выполняется задание?
Кирилл:
Конечно, обычно её можно узнать из параметров сеанса «ПараметрыСеанса.ТекущийПользователь» или «ИмяПользователя()». Вариантов там много.
Александр:
Например, мне нужно чтобы данное конкретное задание выполнялось от имени другого пользователя (есть логин/пароль). Это возможно?
Кирилл:
Да, запустите консоль фоновых заданий (встроена во все последние конфигурации), и в настройках конкретного регламентного задания выберите нужного пользователя.
Александр:
Спасибо. Попробую.
Надя:
Кирилл, спасибо огромное!!!
Помогло!
Лекс Ливень:
Добрый день. Такая ситуация. Создал в центре РИБ предопределенное регламентное задание. Указал ему расписание. Задание улетело в периферию.
Вопрос — могу ли я централизованно изменить расписание выполнение задания на всех узлах РИБ?
Сергей:
Добрый день. Такой вопрос: в случае принудительной отмены фонового задания, в котором была начата транзакция, что произойдет с этой транзакцией и данными, которые она успела затронуть? Заранее спасибо.
Мария:
Добрый день, ситуация такая не выполняется регламентное задание «Расчет предварительной себестоимости» выходит ошибка «Регламентное задание недоступно по функциональным опциям или
не поддерживает работу в текущем режиме работы программы.
Выполнение прервано. Задание отключено.» Перерыла всю программу, не получается. Галочка «включить не устанавливается» 1с предприятие 8.3 УТ 11.5