Регламентне завдання ключ. Регламентні та фонові завдання (1Cv8)

Механізм завдань

Механізм завдань призначений для виконання будь-якої прикладної або функціональності за розкладом або асинхронно.

Механізм завдань вирішує такі завдання:

  • Можливість визначення регламентних процедур на етапі конфігурування системи;
  • Виконання заданих дій за розкладом;
  • Здійснення виклику заданої процедури чи функції асинхронно, тобто. без очікування її завершення;
  • Відстеження ходу виконання певного завдання та отримання його статусу завершення (значення, що вказує на успішність або не успішність його виконання);
  • отримання списку поточних завдань;
  • Можливість очікування завершення одного чи кількох завдань;
  • Управління завданнями (можливість скасування, блокування виконання та ін.).

Механізм завдань складається з наступних компонентів:

  • Метаданих регламентних завдань;
  • Регламентні завдання;
  • фонових завдань;
  • Планувальник завдань.

Фонові завдання - призначені до виконання прикладних завдань асинхронно. Фонові завдання реалізуються засобами інтегрованої мови.

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

Регламентне завдання має розклад, який визначає, у які часи потрібно виконувати пов'язані з регламентним завданням метод. Розклад, як правило, задається в інформаційній базі, але може бути заданий і на етапі конфігурування (наприклад, для визначених регламентних завдань).

Планувальник завдань використовується для планування виконання регламентних завдань. Для кожного регламентного завдання планувальник періодично перевіряє, чи поточна дата і час відповідає розкладу регламентного завдання. Якщо відповідає, планувальник призначає таке завдання виконання. Для цього за цим регламентним завданням планувальник створює фонове завдання, яке виконує реальну обробку.

Фонові завдання

Фонові завдання зручно використовувати для виконання складних обчислень, коли результат обчислення можна отримати через тривалий час. Механізм завдань має засоби виконання таких обчислень асинхронно.

З фоновим завданням пов'язаний метод, який викликається під час виконання фонового завдання. Як метод фонового завдання може бути будь-яка процедура або функція не глобального загального модуля, яку можна викликати на сервері. Параметрами фонового завдання можуть бути будь-які значення, які можна передавати на сервер. Параметри фонового завдання повинні точно відповідати параметрам тієї процедури або функції, яку воно викликає. Якщо методом фонового завдання є функція, її повертається значення ігнорується.

Фонове завдання може мати ключ – будь-яке прикладне значення. Ключ вводить обмеження на запуск фонових завдань – в одиницю часу може виконуватися лише одне фонове завдання з певним значенням ключа та заданим ім'ям методу фонового завдання (ім'я методу складається з імені модуля та імені процедури або функції). Ключ дозволяє групувати фонові завдання, мають однакові методи, за певним прикладним ознакою про те, щоб у межах однієї групи виконувалося трохи більше одного фонового завдання.

Створення та керування фоновими завданнями виконується програмно з будь-якого з'єднання. Створювати фонове завдання можна будь-якому користувачеві. При цьому воно виконується від імені користувача, який його створив. Отримувати завдання, а також очікувати на їх завершення, дозволено з будь-якого з'єднання користувачеві з адміністративними правами, або користувачу, який створив ці фонові завдання.

Фонове завдання є чисто сеансовим об'єктом, але не належить будь-якому сеансу користувача. Для кожного завдання створюється спеціальний системний сеанс, що виконується від імені користувача, який виконав виклик. Фонові завдання не мають стану, що зберігається.

Фонове завдання може викликати інші фонові завдання. У клієнт-серверному варіанті це дозволяє розпаралелювати складні обчислення за робочими процесами кластера, що може значно прискорити процес обчислення загалом. Розпаралелювання реалізується породженням кількох дочірніх фонових завдань з очікуванням завершення кожного з них в основному фоновому завданні.

Фонові завдання, що завершилися успішно або аварійно, зберігаються протягом доби, а потім видаляються. Якщо кількість фонових завдань, що виконалися, перевищує 1000, то найбільш старі фонові завдання також видаляються.

Регламентні завдання

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

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

Створення та управління регламентними завданнями виконується програмно з будь-якого з'єднання та дозволено лише користувачам, які мають адміністративні права.

Примітка. При роботі в файловому варіантістворювати та редагувати регламентні завдання можливо без запуску планувальника завдань.

p align="justify"> З регламентним завданням пов'язаний метод, який викликається при виконанні регламентного завдання. Як метод регламентного завдання може бути будь-яка процедура чи функція не глобального загального модуля, яку можна викликати на сервері. Параметрами регламентного завдання можуть бути будь-які значення, які можна передавати на сервер. Параметри регламентного завдання повинні точно відповідати параметрам тієї процедури або функції, яку воно викликає. Якщо методом регламентного завдання є функція, її повертається значення ігнорується.

Регламентне завдання може мати ключ – будь-яке прикладне значення. Ключ вводить обмеження запуск регламентних завдань, т.к. в одиницю часу серед регламентних завдань, пов'язаних з тим самим об'єктом метаданих, може виконуватися лише одне регламентне завдання з певним значенням ключа. Ключ дозволяє групувати регламентні завдання, пов'язані з тим самим об'єктом метаданих, за певним прикладним ознакою про те, щоб у межах однієї групи виконувалося трохи більше одного регламентного завдання.

При конфігуруванні можна визначити визначені регламентні завдання. Наперед визначені регламентні завдання нічим не відрізняються від звичайних регламентних завдань за винятком того, що їх не можна явно створювати та видаляти. Якщо у метаданих регламентного завдання встановлено ознака зумовленого регламентного завдання, то при оновленні конфігурації в інформаційній базі автоматично буде створено певне регламентне завдання. Якщо ознака зумовленості знято, то при оновленні конфігурації в інформаційній базі автоматично буде видалено визначене регламентне завдання. Початкові значення властивостей зумовленого регламентного завдання (наприклад, розклад) встановлюються метаданими. Надалі, під час роботи програми їх можна міняти. Зумовлені регламентні завдання немає параметрів.

Розклад регламентного завдання визначає, у які моменти часу регламентне завдання має бути запущене. Розклад дозволяє задавати: дату та час початку та закінчення виконання завдання, період виконання, дні тижня та місяці, за якими потрібно виконувати регламентне завдання та ін. (див. опис вбудованої мови).

Приклади розкладів регламентних завдань:

Щогодини, тільки один день

ПеріодПовторуДнів = 0, ПеріодПовторуНа протязіДня = 3600

Щодня один раз на день

ПеріодПовторуДнів = 1, ПеріодПовторуНа протязіДня = 0

Один день, один раз

ПеріодПовторуДнів = 0

Через день один раз на день

ПеріодПовторуДнів = 2

Щогодини з 01.00 до 07.00 щодня

ПеріодПовторуДнів = 1

ПеріодПовторуНа протязіДня = 3600

ЧасПочатку = 01.00

ЧасКінця = 07.00

Щосуботи та неділі о 09.00

ПеріодПовторуДнів = 1

Дні Тижня = 6, 7

ЧасПочатку = 09.00

Щодня один тиждень, тиждень перепустки

ПеріодПовторуДнів = 1

ПеріодТижнів = 2

О 01.00 один раз

ЧасПочатку = 01.00

Останнє число кожного місяця о 9:00.

ПеріодПовторуДнів = 1

ДеньВ Місяці = -1

ЧасПочатку = 09.00

П'яте число кожного місяця о 9:00

ПеріодПовторуДнів = 1

ДеньВмісяці = 5

ЧасПочатку = 09.00

Друге середа кожного місяця о 9:00

ПеріодПовторуДнів = 1

ДеньТижняВМісяці = 2

ДніТижня = 3

ЧасПочатку = 09.00

Можна перевіряти, чи виконується завдання для заданої дати (метод Потрібно Виконання об'єкта Розклад Регламентних Задань). Регламентні завдання завжди виконуються про ім'я певного користувача. Якщо користувач регламентного завдання не вказано, виконання відбувається від імені користувача за умовчанням, що має адміністративні права.

Виконання регламентних завдань відбувається із використанням фонових завдань. Коли планувальник визначає, що регламентне завдання має бути запущено, то автоматично з урахуванням даного регламентного завдання створюється фонове завдання, яке виконує всю подальшу обробку. Якщо дане регламентне завдання вже виконується, воно не буде запущено повторно, незалежно від його розкладу.

Регламентні завдання мають можливість перезапуску. Це особливо актуально, коли метод регламентного завдання має бути гарантовано виконаним. Перезапуск регламентного завдання здійснюється у тому випадку, коли воно завершено аварійно або коли робочий процес (у клієнт-серверному варіанті) або клієнтський процес (у файловому варіанті), на якому виконувалося регламентне завдання, завершено аварійно. У регламентному завданні можна вказати скільки разів потрібно його перезапускати, а також інтервал між перезапусками. При реалізації методу регламентного завдання, що перезапускається, потрібно враховувати, що при перезапуску його виконання буде розпочато з початку, а не продовжено з моменту аварійного завершення.

Важливо пам'ятати що Час кінцяне обов'язково завершить фонове завдання у вказаний час. Деякі твердження:

* Фонове завдання може проігнорувати своє автоматичне скасування, якщо воно не зависло, а продовжує працювати по тієї причини, що не всі операції платформи можна скасувати. Якщо виконується циклічний кодвбудованої мови, то завдання скасувати можна інакше немає. Все залежить від того, що виконує завдання. * Час кінця - межа, у межах якої завдання може запускатися, а чи не завершуватися? * Примусове завершеннязавдання відкочує внесені зміни на момент початку транзакції?

Особливості виконання фонових завдань файловому та клієнт-серверному варіантах

Механізми виконання фонових завдань у файловому та клієнт-серверному варіантах різняться.

  • У файловому варіанті необхідно створити виділений процес клієнта, який буде займатися виконанням фонових завдань. Для цього в клієнтському процесі має періодично викликатись функція глобального контексту Виконати Обробку Завдань. Лише один клієнтський процес на інформаційну базуповинен виконувати обробку фонових завдань (і, відповідно, викликати цю функцію). Якщо клієнтського процесу для обробки фонових завдань не створено, при програмному доступі до механізму завдань буде видана помилка «Менеджер завдань не активний». Не рекомендується використовувати клієнтський процес, який виконує обробку фонових завдань, для інших функцій.

Коли клієнтський процес, виконує обробку фонових завдань, запущений, інші клієнтські процеси отримують можливість програмного доступу до механізму фонових завдань, тобто. можуть запускати та керувати фоновими завданнями.

У клієнт-серверному варіанті для виконання фонових завдань використовується планувальник завдань, який фізично знаходиться у менеджері кластера. Планувальник для всіх поставлених у чергу на виконання фонових завдань отримує найменш завантажений робочий процес та використовує його для виконання відповідного фонового завдання. Робочий процес виконує завдання та повідомляє планувальник про результати виконання.

У клієнт-серверному варіанті є можливість блокування виконання регламентних завдань. Блокування виконання регламентних завдань відбувається у таких случаях:

  • На інформаційну базу встановлено явне блокування регламентних завдань. Блокування може бути встановлене через консоль кластера;
  • На інформаційну базу встановлено блокування з'єднання. Блокування може бути встановлене через консоль кластера;
  • Зі вбудованої мови викликаний метод ВстановитиМонопольнийРежим() з параметром Істина;
  • У деяких інших випадках (наприклад, при оновленні конфігурації бази даних).

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

Перед тим, як програмно створити регламентне завдання в інформаційній базі, необхідно створити йому об'єкт метаданих.

Для створення об'єкта метаданих регламентного завдання у дереві конфігурації у гілці «Загальні» для гілки «Регламентні завдання» виконайте команду «Додати» та на панелі властивостей заповніть наступні властивості регламентного завдання:

Ім'я методу – вказується ім'я методу регламентного завдання.

Ключ - вказується довільне рядкове значення, яке буде використано як ключ регламентного завдання.

Розклад – зазначається розклад регламентного завдання. Для формування розкладу клацніть посилання «Відкрити» і в формі розкладу, що відкрилася, встановіть потрібні значення.

На закладці «Загальне» вказуються дата початку та завершення завдання та режим повтору.

На закладці «Денний» вказується денний розклад завдання.

Вкажіть розклад:

  • час початку та час закінчення завдання;
  • час завершення завдання, після якого буде примусово завершено;
  • період повторення завдання;
  • тривалість паузи між повторами;
  • тривалість виконання.

Допускається вказівка ​​довільного поєднання умов.

На закладці «Тижне» вказується тижневий розклад завдання.

Встановіть прапорці за тими днями тижня, за якими завдання виконуватиметься. Якщо потрібно повторювати завдання, вкажіть інтервал повтору на тижні. Наприклад, завдання виконується за 2 тижні, значення повтору – 2.

На закладці «Місячний» вказується місячний розклад завдання.

Встановіть прапорці за тими місяцями, у яких завдання виконуватиметься. За потреби можна вказати конкретний день (місяця чи тижня) виконання з початку місяця/тижня чи кінця.

Використання - якщо встановлено, то завдання виконуватиметься згідно з розкладом.

Зумовлене – якщо встановлено, то завдання є наперед визначеним завданням.

Кількість повторів під час аварійного завершення - вказує кількість повторів при аварійному завершенні.

Інтервал повтору під час аварійного завершення - вказує інтервал повтору при аварійному завершенні. Приклади

Створення фонового завдання «Оновлення індексу повнотекстового пошуку»:

Виконати ("Оновлення Індекса Повнотекстового Пошуку");

Створення регламентного завдання «Відновлення послідовностей»:

Розклад = Новий РозкладРегламентногоЗавдання; Розклад. Період Повтору Днів = 1; Розклад. Період Повтору Плин Дня = 0;

Завдання = Регламентні Завдання. Створити Регламентне Завдання ("Відновлення Послідовностей"); Розклад = Розклад; Завдання.Записати();

Консоль завдань

Обробка з ІТС, здійснює управління регламентними завданнями:

Робота з регламентними завданнями

Об'єкти завдань

Об'єкти завдань є посилальними, але зберігаються у базі даних у якомусь спеціальному сховищі.

Якщо в метаданих увімкнено прапорець "Предвизначене", то такий об'єкт створюється автоматично при запуску 1С:Підприємства і завжди існує рівно в одному примірнику. Такий об'єкт не можна видалити.

Якщо прапорець "Визначене" не встановлено, об'єкти такого завдання створюються та видаляються програмно, з вказівкою розкладу та параметрів.

Отримання списку завдань

Список завдань можна отримати методом ОтриматиРегламентніЗавданняглобального менеджера завдань РегламентніЗавдання

МенеджерРегламентнихЗадань (ScheduledJobsManager)

ОтриматиРегламентніЗавдання (GetScheduledJobs)

Синтаксис:

ОтриматиРегламентніЗавдання(<Отбор>)

Параметри:

<Отбор>(Необов'язковий)

Тип: структура. Структура, що задає вибір. Значеннями структури можуть бути: Унікальний Ідентифікатор, Ключ, Метадані, Обумовлене, Використання, Найменування. Якщо відбір не заданий, виходять усі регламентні завдання.

Якщо виконується відбір за метаданим, то значення Метадані можна вказати або об'єкт метаданих регламентного завдання, або його ім'я.

Значення, що повертається:

Тип: Масив.

Опис:

Отримує масив регламентних завдань із заданого відбору. Отримання регламентних завдань можливе лише адміністратора.

Доступність:

Регламентні = Регламентні Завдання. ОтриматиРегламентніЗавдання (Відбір);

Для кожного Регламентне з Регламентні Цикл НовийРядок = СписокРегламентнихЗадань.Додати(); НоваРядок.Метадані = Регламентне.Метадані.Подання(); НоваРядок.Найменування = Регламентне.Найменування; НоваРядок.Ключ = Регламентне.Ключ; НоваРядок.Розклад = Регламентне.Розклад; НоваРядок.Користувач = Регламентне.Ім'яКористувача; НоваРядок.Призначене = Регламентне.Призначене; НоваРядок.Використання = Регламентне.Використання; НовийРядок.Ідентифікатор = Регламентне.УнікальнийІдентифікатор;

ОстаннєЗавдання = Регламентне.ОстаннєЗавдання; Якщо останнє завдання<>Невизначено Тоді НоваРядок.Виконувалося = ОстаннєЗавдання.Початок; НоваРядок.Стан = ОстаннєЗавдання.Стан; КінецьЯкщо; КінецьЦикл;

створення

Створюється методом Створити Регламентне завдання менеджера регламентних завдань:

РегламентнеЗавдання = РегламентніЗавдання.СтворитиРегламентнеЗавдання(МетаданіВибір);

Регламентне Завдання. Найменування = Найменування; Регламентне Завдання. Ключ = Ключ; Регламентне Завдання. Використання = Використання; РегламентнеЗавдання.Ім'яКористувача = КористувачіВибір; РегламентнеЗавдання.КількістьПовторівПриАварійномуЗавершенні = КількістьПовторівПриАварійномуЗавершенні; РегламентнеЗавдання.ІнтервалПовторуПриАварійномуЗавершенні = ІнтервалПовторуПриАварійномуЗавершенні; Регламентне Завдання. Розклад = Розклад; РегламентнеЗавдання.Записати();

Об'єкт Завдання = Регламентні Завдання. Створити Регламентне Завдання ("Виконання Обміну");

Об'єкт Завдання. Найменування = Найменування; Об'єкт Завдання. Використання = Істина;

Об'єкт завдання має поле "Параметри", в якому задаються параметри методу:

Регламентне завдання (ScheduledJob)

Параметри(Parameters)

Використання:

Читання та запис.

Опис:

Тип: Масив. Масив параметрів регламентного завдання. Кількість та склад параметрів має відповідати параметрам методу регламентного завдання.

Доступність:

Сервер, товстий клієнт, зовнішнє з'єднання.

Примітка:

Можливість читання та запису доступні лише для адміністратора.

Вилучення

Видаляється методом Видалити() об'єкта завдання:

РегламентнеЗавдання.Видалити();

Отримання об'єкта завдання

  • списком через метод ОтриматиРегламентніЗавдання:

Регламентні = Регламентні Завдання. ОтриматиРегламентніЗавдання (Відбір);

  • через метод ЗнайтиПо УнікальномуІдентифікатору менеджера завдань:

Завдання = Регламентні Завдання. Знайти По Унікальному Ідентифікатору (УІД);

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

Для редагування регламентних та фонових завдань у вкладці адміністрування потрібно вибрати зліва «регламентні та фонові завдання». З'явиться список існуючих завдань, їх стан, розклад та інша інформація.

Клікнувши пару разів на будь-яке завдання відкриється вікно з властивостями цього завдання. Тут можна змінити безліч налаштувань на свій смак, включаючи розклад виконання цього завдання. Для відключення завдання потрібно зняти прапорець «Увімкнено». Але якщо завдання має виконувати за розкладом, дуже важливо використовувати окремого користувача з повними правами для всіх фонових завдань.

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

Завантаження класифікатора банків - неділя, 4:30
Завантаження курсів валют – щодня; 7:00
Вилучення текстів - щодня; 6:00.
Обмін повідомленнями з облікових записів документообігу – щодня; кожні 10 800 сек.
Оновлення агрегатів – щодня; з 5:00:00 раз на день
Оновлення Завдань Бухгалтера – щодня; з 6:30:00 один раз на день
Оновлення індексу ППД (повнотекстового пошуку) – щодня; кожні 10 800 сек.
Перебудова агрегатів - щодня, щодня тижня [субота]; з 3:00:00 один раз на день
Перерахунок поточних значень відносних дат заборони зміни щодня; з 7:00:00 один раз на день
Злиття індексу ППД (повнотекстового пошуку) - щодня; з 4:00:00 раз на день
Видалення неактуальної інформації синхронізації – щодня; з 3:30:00 один раз на день
Встановлення періоду розрахованих підсумків - щодня, 5-го числа місяця; з 1:00:00 один раз на день

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

Нещодавно я розмістив статтю: настав час це автоматизувати:

Регламентні та фонові завдання

Механізм завдань призначений для виконання будь-якої прикладної або функціональності за розкладом або асинхронно.

Механізм завдань вирішує такі завдання:

  • Можливість визначення регламентних процедур на етапі конфігурування системи;
  • Виконання заданих дій за розкладом;
  • Здійснення виклику заданої процедури чи функції асинхронно, тобто. без очікування її завершення;
  • Відстеження ходу виконання певного завдання та отримання його статусу завершення (значення, що вказує на успішність або не успішність його виконання);
  • отримання списку поточних завдань;
  • Можливість очікування завершення одного чи кількох завдань;
  • Управління завданнями (можливість скасування, блокування виконання та ін.).

Механізм завдань складається з наступних компонентів:

  • Метаданих регламентних завдань;
  • Регламентні завдання;
  • фонових завдань;
  • Планувальник завдань.

Фонові завдання & призначені для виконання прикладних завдань асинхронно. Фонові завдання реалізуються засобами інтегрованої мови.

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

Регламентне завдання має розклад, який визначає, у які часи потрібно виконувати пов'язані з регламентним завданням метод. Розклад, як правило, задається в інформаційній базі, але може бути заданий і на етапі конфігурування (наприклад, для визначених регламентних завдань).

Планувальник завдань використовується для планування виконання регламентних завдань. Для кожного регламентного завдання планувальник періодично перевіряє, чи поточна дата і час відповідає розкладу регламентного завдання. Якщо відповідає, планувальник призначає таке завдання виконання. Для цього за цим регламентним завданням планувальник створює фонове завдання, яке виконує реальну обробку.

З описом, гадаю, вистачить - приступимо до реалізації:

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

Ім'я методу– шлях до процедури, яка виконуватиметься у фоновому завданні за розкладом. Процедура повинна знаходитись у загальному модулі. Рекомендується не використовувати загальні типові модулі, а створити свій. Не забудьте, що фонові завдання виконуються на сервері!

Використання- Ознака використання регламентного завдання.

Зумовлене- Вказує, чи є регламентне завдання зумовленим.

Якщо хочете, щоб регламентне завдання запрацювало відразу після приміщення в БД, вкажіть ознаку Зумовлене. В іншому випадку вам необхідно буде використовувати обробку Консоль завдань або викликати запуск завдання програмно.

Кількість повторів при аварійному завершенні завдання- Скільки разів виконано перезапуск фонового завдання, якщо воно було виконане з помилкою.

Інтервал повтору при аварійному завершенні завдання- З якою періодичністю буде виконано перезапуск фонового завдання, якщо воно було виконане з помилкою.

Налаштування розкладу

Розкладвиконання завдання:

Щогодини, тільки один деньПеріодПовторуДнів = 0, ПеріодПовторуНа протязіДня = 3600
Щодня один раз на деньПеріодПовторуДнів = 1, ПеріодПовторуНа протязіДня = 0
Один день, один разПеріодПовторуДнів = 0
Через день один раз на деньПеріодПовторуДнів = 2
Щогодини з 01.00 до 07.00 щодняПеріодПовторуДнів = 1ПеріодПовторуВПлин Дня = 3600 ЧасПочатку = 01.00

ЧасКінця = 07.00

Щосуботи та неділі о 09.00ПеріодПовторуДнів = 1ДніТижня = 6, 7ЧасПочатку = 09.00
Щодня один тиждень, тиждень перепусткиПеріодПовторуДнів = 1ПеріодТижень = 2
О 01.00 один разЧасПочатку = 01.00
Останнє число кожного місяця о 9:00.ПеріодПовторуДнів = 1ДеньВМісяці = -1ЧасПочатку = 09.00
П'яте число кожного місяця о 9:00ПеріодПовторуДнів = 1ДеньВмісяці = 5ЧасПочатку = 09.00
Друге середа кожного місяця о 9:00ПеріодПовторуДнів = 1ДеньТижняВМісяці = 2ДніТижня = 3

ЧасПочатку = 09.00

Особливості виконання фонових завдань файловому та клієнт-серверному варіантах

Механізми виконання фонових завдань у файловому та клієнт-серверному варіантах різняться.

У файловому варіантінеобхідно створити виділений клієнтський процес, який займатиметься виконанням фонових завдань. Для цього в клієнтському процесі має періодично викликатись функція глобального контексту Виконати Обробку Завдань. Тільки один клієнтський процес на інформаційну базу має виконувати обробку фонових завдань (і, відповідно, викликати цю функцію). Якщо клієнтського процесу для обробки фонових завдань не створено, при програмному доступі до механізму завдань буде видана помилка «Менеджер завдань не активний». Не рекомендується використовувати клієнтський процес, який виконує обробку фонових завдань, для інших функцій.

Коли клієнтський процес, виконує обробку фонових завдань, запущений, інші клієнтські процеси отримують можливість програмного доступу до механізму фонових завдань, тобто. можуть запускати та керувати фоновими завданнями.

У клієнт-серверному варіантіДля виконання фонових завдань використовується планувальник завдань, який фізично перебуває у менеджері кластера. Планувальник для всіх поставлених у чергу на виконання фонових завдань отримує найменш завантажений робочий процес та використовує його для виконання відповідного фонового завдання. Робочий процес виконує завдання та повідомляє планувальник про результати виконання.

У клієнт-серверному варіанті є можливість блокування виконання регламентних завдань. Блокування виконання регламентних завдань відбувається у таких случаях:

  • На інформаційну базу встановлено явне блокування регламентних завдань. Блокування може бути встановлене через консоль кластера;
  • На інформаційну базу встановлено блокування з'єднання. Блокування може бути встановлене через консоль кластера;
  • Зі вбудованої мови викликаний метод ВстановитиМонопольнийРежим() з параметром Істина;
  • У деяких інших випадках (наприклад, при оновленні конфігурації бази даних).

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

Управління регламентними завданнями баз 1С з оновлень

2018-11-20T15:18:30+00:00

У цій нотатці пробіжимося на можливості обновлятора для управління регламентними завданнями в базах.

Насамперед у пункті "Ще" -> "Управління регламентними завданнями...":

У контекстному менювиділеної бази (або групи баз):

І, нарешті, у шаблонах для пакетних скриптів (це дозволяє виконувати операції над регламентними завданнями зі скрипту за розкладом):

Ось так виглядає діалог управління регламентними завданнями у базах:

Які завдання він дозволяє вирішувати в потрібної групибаз (чи одній базі)?

Вибір регламентних завдань

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

Але в діалозі вибору може не бути регламентних завдань саме для вашої бази:

У цьому випадку ви можете вказати імена потрібних вам регламентних завдань у розділі "Свої завдання...", наприклад:

Імена для таких регламентних завдань можна брати прямо зі звіту за всіма регламентними завданнями (про нього розповідається).

Виводимо поточний стан завдань

Для цього переходимо на закладку "Вивести" натискаємо кнопку "Вивести...":

У результатах ми можемо бачити:

  1. Включено або вимкнено запуск нових регламентних завдань на сервері 1С.
  2. Список регламентних завдань у базі.
  3. Їхній розклад.
  4. Увімкнено завдання або вимкнено.
  5. Якщо останній запуск завдання був з помилкою – ця помилка виводиться червоним кольором поруч із завданням.

При необхідності в налаштуваннях можливості ми можемо звузити список регламентних завдань, а також виводити лише включені завдання:

Вимикаємо всі чи деякі завдання

Для цього переходимо на закладку "Вимкнути":

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

Ось результат для однієї бази (натисніть, щоб розкрити)

Включаємо всі чи деякі завдання

Для цього переходимо на закладку "Увімкнути":

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

Зверніть увагу, що в цій закладці є прапор "Зробити резервну копіюбази" у нижньому лівому кутку.

Ось результат для однієї бази (натисніть, щоб розкрити)

Керуємо запуском регламентних завдань на сервері 1С

Для цього переходимо на закладку "Сервер 1С":

Вибираємо "блокувати" або "розблокувати" та натискаємо кнопку "Виконати".

Налаштовуємо розклад завдань

А якщо нам потрібно налаштувати розклад запуску якогось завдання (або групи завдань) відразу в багатьох базах?

Для цього переходимо на закладку "Налаштувати розклад":

Налаштовуємо розклад (діалог та його можливості повністю збігаються зі штатним у самій 1С) та натискаємо "Налаштувати...".

Запускаємо завдання на виконання

Для цього переходимо на закладку "Запустити":

Вибираємо потрібні завдання та натискаємо кнопку "Запустити":

Зберігаємо налаштування завдань у зовнішній файл

Припустимо, що ми ідеально налаштували регламентні завдання в одній з баз і хочемо перенести ці налаштування до всіх інших баз.

Для цього ми спочатку вивантажуємо всі налаштування завдань у ідеальній базі у зовнішній файл:

Відновлюємо налаштування завдань із зовнішнього файлу

А потім завантажуємо цей файл з налаштуваннями завдань у всі інші бази:

Тільки зверніть увагу, що для цього завдання (перенесення налаштувань завдань однієї бази до інших) я вибрав спосіб зіставлення на ім'я завдання, а не по внутрішньому ідентифікатору.

Побажання

Загалом, це все, що я хотів розповісти. Я сам бачу багато сценаріїв для використання нових можливостей, тут я лише швидко пробігся по основних пунктах.

Напевно, кожному програмісту 1С 8.3 рано чи пізно доводилося налаштовувати виконання певних завдань за розкладом. Нижче я дам докладний описданих механізмів, сподіваюся, це буде корисною інформацієюдля програмістів-початківців 1С. Це дуже зручно, адже не вимагає дій від людини, регламентне завдання налаштовується 1 раз і працює за Вашим розкладом.

Розгорнуту інструкцію на прикладі Ви знайдете далі.

Що таке регламентні та фонові завдання у 1С

  • Регламентні завдання- Це спеціальний механізм 1С підприємства 8.3, призначений для виконання певної дії за заданим розкладом.
  • Фонове завдання- об'єкти, що породжуються регламентним завданням, які безпосередньо виконує закладену дію без участі користувача або програміста 1С 8.2.

Механізм регламентних та фонових завдань працює у клієнт-серверному режимі роботи (SQL), завдяки функціоналу СУБД. Якщо у вас файлова БД, то завдання також можна налаштувати, але трохи за іншим принципом.

Налаштування фонових завдань у клієнт-серверному режимі роботи 1С

Спочатку створимо новий об'єкт метаданих — регламентне завдання. Я назву своє завдання «ЗавантаженняКурсовВалют». Розглянемо палітру властивостей даного об'єктаконфігурації:

Отримайте 267 відеоуроків з 1С безкоштовно:

  • Ім'я методу— шлях до процедури, яка виконуватиметься у фоновому завданні за розкладом. Процедура повинна знаходитись у загальному модулі. Рекомендується не використовувати типові, а створити свій. Не забудьте, що фонові завдання виконуються на сервері!
  • Використання- Ознака використання регламентного завдання.
  • Зумовлене- Вказує, чи є регламентне завдання зумовленим. Якщо хочете, щоб регламентне завдання запрацювало відразу після приміщення в БД, вкажіть цю ознаку. В іншому випадку вам необхідно буде використовувати обробку Консоль завдань або викликати запуск завдання програмно.
  • Кількість повторів при аварійному завершенні завдання- Скільки разів виконано перезапуск фонового завдання, якщо воно було виконано з помилкою.
  • Інтервал повтору при аварійному завершенні завдання— з якою періодичністю буде виконано перезапуск фонового завдання, якщо його було виконано з помилкою.

І найцікавіше налаштування Розклад:

Тут налаштовується інтервал запуску процедури, вказаної у полі «Ім'я методу». Допустимо я налаштував

Увага!Не забудьте вимкнути блокування виконання регламентних та фонових завдань на рівні СУБД!

Зробити це можна в утиліті адміністрування клієнт-серверного варіанта або під час створення нової БД:

Налаштування регламентних завдань у файловому режимі роботи 1С

У файловому режиміНалаштування таких завдань дещо складніше. Для такого завдання має бути запущено окрему сесію програми 1С. Найчастіше це вирішується закладом «технічного» користувача, сеанс якого завжди запущений.

У файловому режимі ініціалізація регламентного завдання відбувається під час запуску методу «Виконати ОбработкуЗаданий()».

Для певного користувача можна налаштувати запуск цього методу, використовуючи інший метод.

ПідключитиОбробникОчікування( <ИмяПроцедуры>, <Интервал>, <Однократно>).

  • Ім'я процедури- Ім'я процедури, що підключається як обробник очікування. Ім'я процедури, що експортується, модуля керованого додатка (модуля звичайної програми) або глобального загального модуля. Процедура повинна розташовуватись на клієнті.
  • Інтервал- Період між виконаннями операцій в секундах.
  • Одноразовояк виконувати завдання, один раз чи ні.

ПідключитиОбробникОчікування, 3600);

Двохвилинне відео, в якому показано, як настроїти регламентне завдання в конфігураторі 1С:



Завантаження...
Top