1С фонове завдання - загальний опис механізму

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

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

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

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

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

Які ж засоби ми маємо для управління фоновими завданнями? Цим засобом є об'єкт метаданих "МенеджерФоновихЗаданія". У цього об'єкта є метод "Виконати". за допомогою цього методу, як раз і запускається фонове завдання.

Має він такі параметри: "ІмяМетода" - ім'я процедури або функції, яку потрібно виконати, причому це має бути процедура або функція серверного контексту; "Параметри" - масив параметрів, кількість елементів якого має відповідати кількості параметрів нашої процедури / функції, зазначеної в параметрі "ІмяМетода"; "Ключ" - такий собі ключ унікальності, що вдає із себе рядок, по якій система розуміє чи потрібно запускати фонове завдання або таке завдання вже запущено; "Найменування" - тут можна вказати довільне опис нашого методу.

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

Фонове завдання 1С 8.2, 8.3 - Приклад використання

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

1. Створимо загальний модуль "ОбработчікіФоновихЗаданій". який компілюватиметься на стороні сервера;

2. Наведемо в ньому експортну процедуру "ПроізветіФоновоеВичісленіе (Параметр)". яка приймає один параметр строкового типу;

3. Далі створимо зовнішню обробку і в подію натискання на кнопку помістимо код, який запускає наш алгоритм;

Готово. Тепер при запуску обробки і натисканні на кнопку відбувається підвисання системи на кілька секунд, в процесі якого нічого не можна зробити. Це якраз те, що нам і потрібно було зробити.

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

1. В обробці, в подію натискання кнопки пропишемо наступний код.

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

Готово. Тепер можемо перевіряти. Перезапускаємо нашу обробку натискаємо кнопку, система не підвисає і ми працюємо безперешкодно.

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

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

Завантажити базу з прикладом ви можете тут

Ви ще не читали? Вам це буде цікаво.

1С фонове завдання - загальний опис механізму

Робочі процеси 1С Оптимальна настройка кількості робочих процесів 1С.

1С фонове завдання - загальний опис механізму

Приклад роботи з деревом значень в 1С. Частина друга - Додавання можливості проставлення галок і зіставлення рядку картинки. Розглянемо на прикладі, як в дерево значень додати можливість проставлення галок і зіставляти кожної конкретної рядку необхідну нам картинку.

1С фонове завдання - загальний опис механізму

Приклад роботи з деревом значень в 1С. Частина перша - додавання рядків. Робота з деревом значень трохи відрізняється від роботи з таблицею значень, зокрема це видно на операції додавання рядків. Дивимося на прикладі.

1С фонове завдання - загальний опис механізму

Налагодження фонових (регламентних) завдань в 1С 8 Іноді виникає необхідність налагодити фонове (регламентне) завдання. Якраз з цим-то, найчастіше, і виникає проблема.

1С фонове завдання - загальний опис механізму

Віддалене програмування в 1С. Які переваги? Вибираючи співпрацю з віддаленим програмістом 1С, ви вибираєте правильну економію ваших засобів і високу якість виконання завдань.

Схожі статті