Нерідко при веденні обліку виникає необхідність в періодичному виконанні тих чи інших дій без втручання користувача. Регламентні і фонові завдання в 1С - ті механізми, які передбачені для цієї мети у восьмій версії програми і дозволяють:
- Налаштувати своєчасне допреведеніе документів;
- Розрахувати залишки і підсумки;
- Забезпечити періодичність поштової розсилки;
- Перевірити і видалити неактуальні дані.
Фонове і регламентне завдання - що це і де налаштовується
Регламентне завдання - закладений в 1С механізм, який дозволяє налаштувати і, відповідно до закладеного розкладом і періодичністю, виконати певну послідовність дій.
Фонове завдання - дія, породжене регламентної операцією і не потребує безпосередньої участі користувача.
Створення регламентного завдання відбувається в режимі конфігуратора:
- У вікні дерева конфігурації знаходимо відповідну гілку (Рис.1);
- Натискаємо кнопку додати;
- У вікні необхідно задати ім'я, що дозволяє ідентифікувати об'єкт в конфігурації;
- Навпроти напису «Розклад» (Рис. 2) є напис «Відкрити», натискання на яку відкриває вікно настройки часу і періодичності виконання обрабочіка (Рис.3);
- Також необхідно заповнити «Ім'я методу» (сюди буде введено назву процедури, що викликається із загального модуля і описує алгоритм поведінки програми);
- Поля «Найменування» і «Ключ» дозволяють групувати об'єкти;
- Встановлений прапорець «Використання» вказує на активність регламентної операції;
- «Приречення» слід встановити, якщо обробник повинен запуститися відразу після його додавання в базу в іншому випадку запуск можна зробити з відповідної обробки (про неї нижче);
- Параметри «Кількість повторів» і «Інтервал повторів» описують поведінку програми в разі виникнення виняткової ситуації при виконанні фонового завдання.
Отже, використовуючи механізм регламентних операцій можна задати розклад і основні дії фонових завдань. Давайте тепер розглянемо їх особливості.
Особливості фонових завдань
Основна особливість цього механізму полягає в тому, що фоновий процес виконується асинхронно.
Що ж це означає. Справа в тому, що при синхронній моделі роботи, в разі виконання, будь-якого алгоритму відбувається блокування призначеного для користувача інтерфейсу. У нашому випадку користувач може продовжувати вносити і редагувати дані, навіть якщо процедура запущена. Асинхронна модель програмування передбачає поділ обчислювальних потоків.
Таким чином, фонові завдання в 1С можуть породжувати свої процеси, розподіляючи обчислення по різних серверів, що входять в один кластер.
Особливості роботи в клієнт-серверному режимі
- Планування виконання і контроль здійснюється планувальником з кластера серверів;
- У разі появи запиту на виконання, планувальник шукає робочі процеси кластера з мінімальним завантаженням і роздає їм завдання до виконання;
- Кожен процес може виконувати кілька паралельних обчислень;
- Після надходження завдання процес з'єднується з базою і виконує в ній алгоритм;
- Про результати процес повідомляє планувальником.
Фонові завдання в файловому режимі
До версії платформи 8.3.3.641 робота з фоновими завданнями в файловому варіанті представляла деякі труднощі:
- Необхідно було запускати окремий сеанс, який би цілодобово працював, замінюючи собою планувальник;
- Цей сеанс повинен був періодично виконувати метод ВиполнітьОбработкуЗаданій ().
Після поновлення кожен старт товстого і тонкого клієнтів, в разі якщо в настройках запуску (Рис.4) в поле «Додаткові параметри запуску» вказано ключ AllowExecuteScheduledJobs, ініціює додатковий потік підключення до бази, який ніяк не впливає на роботу користувача, а займається лише виконанням фонових операцій.
Слід враховувати, що навіть у файловому варіанті роботи фонові процеси не дають можливості інтерактивної роботи з користувачем (НЕ будуть виводитися службові повідомлення, попередження, питання). Тобто кодувати їх треба так, ніби вони будуть виконуватися на стороні сервера.
Як відключити регламентні завдання
Невикористані завдання можна відключити, просто знявши у властивостях об'єкта галочку «Використовувати».
У разі, коли адміністраторові необхідно заборонити використання регламентних і фонових операцій для всієї бази в цілому (припустимо, не сервері зберігається кілька баз, з яких тільки одна основна, а інші використовуються тільки для розробки) необхідно скористатися утилітою адміністрування баз. Також можна в створюваної на сервері базі поставити галочку «Встановити блокування регламентних завдань».
Крім цього на дисках ІТС є спеціальна обробка «Консоль завдань», що дозволяє редагувати розклад фонових процесів і міняти їх активність.