1с регламентные задания ключ зачем

Регламентные задания в 1С

Регламентные задания в 1С предназначены для выполнения определенных процедур по расписанию, с некоторой периодичностью.

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

Создание регламентного задания

Регламентные задания — объект метаданных конфигурации 1С. Находится в группе Общие. Рассмотрим параметры и свойства регламентных заданий.

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

Имя метода— путь к экспортной процедуре в общем модуле, которая будет выполняться по заданному расписанию. Процедура должна выполняться на сервере. В этом регламентные задания чем-то похожи на объект Подписка на событие.

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

Использование — флаг, показывающий, включено ли регламентное задание.

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

Количество повторов при аварийном завершении задания — определяет, сколько раз будет выполнен перезапуск фонового задания, если оно было завершено с ошибкой.

Интервал повтора при аварийном завершении задания — определяет, с какой периодичностью будет выполнен перезапуск фонового задания, если оно было завершено с ошибкой.

Программная работа с регламентными заданиями

В данных примерах будем рассматривать работу с обычными, не предопределенными, регламентными заданиями.

Программное создание регламентного задания

Программное получение регламентного задания для изменения параметров

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

//Регламентное задание находится в переменной Задание. Можно изменять его параметры.

Вызов диалога изменения расписания регламентного задания

Для работы с расписанием регламентного задания существует особый тип диалога. Все еще предполагаем, что у нас есть только одно регламентное задание данного типа.

//Создаем диалог изменения расписания регламентного задания
ДиалогРедактирования = Новый ДиалогРасписанияРегламентногоЗадания ( Расписание ) ;

Источник

Регламентные задания в 1С 8.3

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

Создание регламентного задания

Регламентные задания позволяют выполнять определенные действия по расписанию. Для выполнения используются фоновые задания.

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

Для примера создадим простое регламентное задание и установим у него флаг Предопределенное, а также Использование. Использование означает, что регламентное задание будет выполняться согласно его расписанию.

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

В свойстве Наименование можно указать произвольное наименование регламентного задания. Свойство Ключ аналогично такому же свойству фоновых заданий. Нельзя запустить несколько фоновых заданий с одним ключом и связанных с одним регламентным заданием.

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

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

Расписание регламентных заданий

Для настройки расписания нужно нажать на гиперссылку Открыть рядом со свойством Расписание. Будет открыто окно настройки расписания:

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

Для примера настроим чтобы регламентное задание выполнялось каждые 5 минут. Для этого на закладке Общее укажем, что нужно повторять задание каждый день:

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

А закладке Дневное — повторять через 300 секунд:

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

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

Расписание тоже сохраняется в таблице регламентных заданий. Если сейчас изменить расписание в конфигураторе и сохранить конфигурацию базы данных, то все равно будет использоваться старое расписание. Чтобы применилось новое расписание, его нужно установить в пользовательском режиме. Или снять флаг Предопределенное и сохранить конфигурацию базы данных. В этот момент запись об этом регламентном задании будет удалена из таблицы. А потом настроить в конфигураторе новое расписание и снова поставить флаг Предопределенное. Регламентное задание будет записано в таблицу с новым расписанием.

Для программного открытия окна настройки расписания регламентного задания в пользовательском режиме можно воспользоваться следующим кодом:

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

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

Расписание можно создать программно:

Теперь регламентное задание будет выполняться каждую минуту.

Рассмотрим некоторые настройки расписания:

Те же самые примеры, но программно:

Планировщик регламентных заданий

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

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

До версии платформы 8.3.3.641 в файловом варианте не было автоматического выполнения регламентных заданий. Нужно было программно вызывать метод ВыполнитьОбработкуЗаданий. Обычно для этого запускался отдельный сеанс и в нем через обработчик ожидания вызывался данный метод.

Программная работа с регламентными заданиями

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

На основании одного регламентного задания, созданного в конфигураторе, можно записать несколько регламентных заданий в базу данных. Для этого не нужно устанавливать флаг Предопределенное, затем записать программно два регламентных задания, а для метода указать один параметр, через который можно определить, какое именно регламентное задание выполняется. Параметры передаются через массив, который присваивается свойству Параметры. Количество параметров метода регламентного задания и в массиве должно совпадать, иначе регламентное задание не будет выполнено.

В базу данных будут записаны два регламентных задания, а в процедуре, которая указана для регламентного задания можно анализировать параметр, который был указан при создании регламентного задания:

Для получения списка всех регламентных заданий можно воспользоваться методом ПолучитьРегламентныеЗадания:

Параметром можно передать структуру с отбором:

Отбор можно выполнять по следующим свойствам:

С помощью методом НайтиПоУникальномуИдентификатору и НайтиПредопределенное можно получить конкретное задание по его идентификатору или имени предопределенного регламентного задания:

Для удаления регламентного задания используется метод Удалить. Удалена будет только запись из таблицы базы данных, само регламентное задание останется в метаданных. Предопределенные задания нельзя удалить. Они удаляются, если снять флаг Предопределенное в метаданных:

Если нужно запустить регламентное задание не дожидаясь наступления расписания, то можно просто вызвать процедуру общего модуля, которая указана в свойстве Имя метода:

Пользователь регламентных заданий

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

Перезапуск при аварийном завершении

В настройках регламентного задания есть два свойства: Количество повторов при аварийном завершении и Интервал повтора при аварийном завершении.

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

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

Ограничение времени выполнения регламентного задания

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

Например, настроено выполнение регламентного задания на каждый час. В 10:00 задание по какой-то причине зависло. Пока не будет удален сеанс зависшего фонового задания следующие задания (в 11:00, в 12:00 и т.д.) не будут запущены.

Чтобы избежать этого в расписании задания можно указать ограничение по времени. Это указывается на закладке Дневное в свойстве Завершать через:

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

В результате такой настройки максимальное время выполнения регламентного задания = 3600 секунд. Через этого время сеанс фонового задания будет автоматически завершен.

Блокировка регламентных заданий

Чтобы заблокировать выполнение регламентных заданий в клиент-серверной базе нужно выполнить следующие действия:

Чтобы заблокировать выполнение регламентных заданий в файловой базе нужно выполнить следующие действия:

Это нужно сделать у каждого клиентского приложения. Данный параметр запрещает выполнение регламентных заданий.

В конфигурациях на базе БСП можно выключить все регламентные задания следующим образом:

В конфигурациях на обычном приложении нужно скачать консоль заданий с ИТС

Открыть консоль заданий в пользовательском режиме и в верхнем списке для каждого задания снять флаг Использование:

Источник

Универсальное регламентное задание

Создадим регламентное задание «Выполнение обработки».

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

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

Сама процедура имеет вид:

Процедура РегламентноеЗаданиеВыполнениеОбработки(Ключ) Экспорт

Создаем справочник для регламентных заданий

Наше регламентное задание может порождать множество фоновых процессов – по одному на каждую обработку. У каждого задания в платформе 1С8 есть ключ. Но метод регламентного задания не знает ключ фонового задания, поэтому нужно использовать параметры фонового задания. В результате мы можем видеть фоновое задание в консоли заданий, но не можем вручную из этой консоли создать фоновое задание, т.к. задания с параметрами вручную не создаются.

Справочник «Параметры регламентных заданий» :

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

Реквизиты :

· КодПередЗапуском – неограниченная строка – код на языке 1С, который нужно выполнить перед запуском.

Создадим форму элемента :

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

По нажатию на кнопку «Создать регл. задание» программно создается регламентное задание с ключом-кодом:

Параметры = Новый Массив();

Запуск регламентного задания

Каждое созданное нами регламентное задание имеет ключ:

1с регламентные задания ключ зачем. Смотреть фото 1с регламентные задания ключ зачем. Смотреть картинку 1с регламентные задания ключ зачем. Картинка про 1с регламентные задания ключ зачем. Фото 1с регламентные задания ключ зачем

Этот ключ соответствует коду справочника «Параметры регламентных заданий», по нему осуществляется поиск при старте задания. Если элемент справочника не найдено, задание не выполняется.

В зависимости от выбранных значений реквизитов или запустится код на языке 1С, или запустится обработка из конфигурации, или обработка из типового справочника «Внешние обработки».

Для 1С81 предусмотрено выполнение в новом приложении – чтобы можно было использовать код, доступный только на клиенте, в том числе и использование внешних обработок. Для этого нужно установить галочку «Выполнять через приложение 1С». Иначе регламентное задание будет выполняться на сервере.

Рекомендую устанавливать пользователя в поле «Пользователь» у вновь созданного регламентного задания, чтобы задание выполнялось под определенными правами. Рекомендую такому пользователю давать полные права. У меня используется пользователь « robot ».

Расписание регламентного задания создается по гиперссылке «Расписание» из формы регламентного задания. Можно использовать обработку «Консоль регламентных заданий».

Источник

Как получить ключ запущенного Регламентного Задания

Представьте ситуацию:

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

Вот Вам хитроумный способ получить ключ (т.е. уникальность) сработавшего Регламентного Задания в процедуре обработчике.

Что у нас есть в штатных средствах? Есть возможность только посмотреть список работающих Фоновых Заданий, отфильтровать его по времени запуска/имени метода и надеяться, что с этим же методом в данный момент не было запущено других РЗ с этим же методом.

ТАК ВОТ, есть ТОЧНЫЙ неописанный метод

1. При записи Регламентного Задания (в режиме предприятия в шедуллере, в обработке редактирования Регламентных Заданий) заполнить параметры:

2. А в запускаемой РЗ процедуре (методе) поместить параметр «КлючРЗ» (например, имя неважно):

Процедура ЗапускРегламентногоЗадания ( КлючРЗ ) Экспорт

И при запуске этот параметр будет содержать Ключ, занесенный в параметры при записи РЗ в шедуллере, который можно использовать.

Я, например, по Ключу нахожу соответствующую запись в Регистре сведений и забираю дополнительные настройки РЗ. Такие как Каталоги архивирования.

ЗЫ. Чтобы метод начал работать, ВСЕ РЗ в режиме предприятия нужно перезаписать (переинициализировать).

Метод найден Чтением/Думанием/Тыканием. Причины его работы науке неизвестны.

Источник

Запуск регламентных заданий

Область применения: управляемое приложение, обычное приложение.

Методическая рекомендация (полезный совет)

1. Рекомендуется предоставлять пользователям альтернативную возможность по выполнению регламентных заданий вручную. Например, предлагать «по кнопке» выполнить обработку данных, обычно выполняемую регламентным заданием в фоне. Это вызвано тем соображением, что работа системы не должна зависеть от автоматического выполнения регламентных заданий. В частности:

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

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

Пример ручного запуска задания по очистке устаревших версий объектов:

// Проверка, выполняется ли фоновое задание по очистке устаревших версий.
Отбор = Новый Структура;
Отбор.Вставить(«ИмяМетода», ИмяМетода);
Отбор.Вставить(«Состояние», СостояниеФоновогоЗадания.Активно);
ФоновыеЗаданияОчистки = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор);
Если ФоновыеЗаданияОчистки.Количество() = 0 Тогда
НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр(«ru = ‘Запуск вручную: %1′»), РегламентноеЗаданиеМетаданные.Синоним);
ФоновыеЗадания.Выполнить(ИмяМетода. НаименованиеФоновогоЗадания);
КонецЕсли;
КонецПроцедуры

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

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

Примеры регламентных заданий, которые не меняют данные в базе:

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

2. Для администраторов информационных баз действует рекомендация: на период выполнения обновления ИБ блокировать работу регламентных заданий. Однако если обновление выполняет неподготовленный пользователь, в особенности, в файловом режиме работы, то рекомендуется дополнительно предусмотреть следующие меры:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *