Регламентні та фонові завдання (створення, налаштування, запуск). Універсальне регламентне завдання Регламентне завдання не знайдено

Регламентні та фонові завдання (створення, налаштування, запуск). Універсальне регламентне завдання Регламентне завдання не знайдено

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

Наприклад, вам потрібно раз на добу вам потрібно здійснювати обмін даними з іншою програмою. Використовуючи регламентні та фонові завдання, 1С зможе робити дані дії самостійно, наприклад, у неробочий час. Такий спосіб ніяк не вплине на роботу користувачів та допоможе заощадити час.

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

  • Регламентне завданнядозволяє запускати на виконання будь-які конкретні дії за заздалегідь налаштованим розкладом.
  • Фонове завдання- Це об'єкт, в якому містяться дії, що виконуються.

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

Відкрийте конфігурацію та додайте регламентне завдання.

Налаштування властивостей

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

  • В полі " Ім'я методу» вибирається та процедура якогось певного загального модуля, яка безпосередньо виконуватиметься. В ній будуть вказані всі дії щодо розвантаження цін на наш сайт. Зверніть увагу, що виконання відбуватиметься на сервері. Це логічно, адже регламентні операції виконуються без участі користувача.
  • Регламентне завдання можна відключати або вмикати за потребою. Не потрібно щоразу правити його розклад. Для цього на панелі властивостей встановіть або зніміть прапор « Використання».
  • Ще одним важливим є налаштування, чи буде це регламентне завдання зумовленим, чи ні. Обумовлені регламентні завдання запускаються автоматично. Якщо ця ознака не встановлена, вам потрібно буде запускати їх програмно, або скористатися обробкою «Консоль завдань» з ІТС.
  • Також ви можете вказати кількість повторів та інтервал між нимипри аварійному завершенні. Під аварійним завершенням маються на увазі ті ситуації, коли завдання не відпрацювали через виникнення помилки.

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

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

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

Блокування регламентних завдань

Запустіть стандартну утиліту «Адміністрування серверів 1С Підприємства» та відкрийте властивості тієї інформаційної бази, де ви створили регламентне завдання (для клієнт-серверних версій 1С).

У вікні (після введення логіну та пароля для доступу до ІБ) перевірте, щоб не було встановлено прапор на пункті «Блокування регламентних завдань увімкнено». Якщо ви зіткнулися ситуацією, коли завдання не відпрацьовує, насамперед перевіряйте це налаштування.

Так само можна повністю відключити регламентні завдання 1С 8.3. Для відключення конкретних фонових завдань можна скористатися вбудованою в останні релізи обробкою «Консоль фонових завдань».

Фонові та регламентні завдання у файловому режимі

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

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

Також ви можете скористатися наступною конструкцією:

Як ім'я процедури необхідно вказати ім'я клієнтської процедури, яка має виконатися. Інтервал показує, через скільки секунд буде здійснено виконання. Параметр «Одноразово» не є обов'язковим до заповнення. Він відображає, чи буде виконана ця процедура одноразово, або кілька разів.

Відстеження помилок у фонових завданнях

Подивитися хід виконання фонових завдань, а також наявність можливих помилок можна у журналі реєстрації. У фільтрі встановіть відбір додатку «Фонове завдання» і при необхідності виберіть важливість, наприклад, тільки «Помилки».

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

При роботі в 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С.

Створення завдання

Ми не ставимо за мету описувати код виконуваного модуля, ми покажемо загальні принципи функціонування та створення регламентного завдання.

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

  1. Якщо в поставленій задачі як одна з умов присутня необхідність періодичного виконання певного алгоритму;
  2. Якщо код повинен виконуватися незалежно від дій операторів та користувачів бази;
  3. Якщо запуск процедури не залежить від зовнішніх подій, що відбуваються з об'єктами інформаційної бази.

Для створення необхідно зайти в інформаційну базу в режимі «Конфігуратор». Далі знаходимо у дереві конфігурації гілку «Регламентні завдання», вони знаходяться на закладці «Загальні» та натискаємо кнопку «Додати» (Рис.1)

Давайте докладніше розберемо вікно його властивостей (Рис.2):
Рис.2

  1. Ім'я, синонім і коментар – правила і принципи заповнення цих полів аналогічні всім об'єктів зміни та описувати їх ще раз немає потреби;
  2. Ім'я методу – процедура загального модуля, яка максимально точно описує необхідний алгоритм (натискання на кнопку вибору відкриває доступні процедури, представлення яких складається з імені загального модуля та найменування процедури у різних колонках таблиці);
  3. Ключ – визначає не так унікальність регламентного завдання, як унікальність фонового процесу, запущеного на підставі завдання, має обмеження по довжині;
  4. Розклад – опис цього елемента ми присвятимо окремому абзацу нашої статті;
  5. Використання – встановлення даного прапорця визначає активність завдання, ІСТИНА означає, що завдання запускатиметься та виконуватиметься за розкладом;
  6. Зумовлене – якщо елемент встановлена ​​ця галочка, ці завдання не можна видалити, їх створення відбувається автоматично за збереження конфігурації до бази;
  7. Кількість повторів – якщо у процесі виконання виникла виняткова ситуація, воно буде перезапущено, щоб не виникла нескінченна зацикленість, програма обмежує кількість перезапусків;
  8. Інтервал повтору – час у секундах між повторними запусками аварійно завершених завдань.

Давайте детальніше розглянемо розклад.

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

Рис.3

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

Закладка «Загальні»:

  • Дата початку виконання завдання;
  • Дата закінчення обробки;
  • Періодичність повторення завдання.

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

Закладка «Денна» (Рис.4)
Рис.4

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

Закладки «Денні» та «Тижні» містять інформацію для відповідних періодів.

Особливості функціонування

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

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

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

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

Крім того, у стандартних поставках 1С з'явилася можливість управління плановими роботами безпосередньо з програми, не заходячи в «Конфігуратор». У конфігурації «ЗУП», версії 3.1.3.223, відкрити форму управління можна з меню Адміністрування->Обслуговування->Регламентні операції->Регламентні та фонові завдання (Рис.5)
Рис.5

Форма, що відкрилася, має інтуїтивно зрозумілий інтерфейс і дозволяє:


Можна також запустити виконання завдання безпосередньо із форми.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фонові завдання, що завершилися успішно або аварійно, зберігаються протягом доби, а потім видаляються. Якщо кількість фонових завдань, що виконалися, перевищує 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С з оновлень

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Побажання

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

 

 

Це цікаво: