Обробка регламентних та фонових завдань 1с 8.2. Фонові завдання: особливості, можливості, налаштування. Фонові завдання у файловому режимі

Як прискорити роботу в 1С:Бухгалтерія 8.3 (редакція 3.0) або відключаємо регламентні та фонові завдання

2019-01-15T13:28:19+00:00

Ті з вас, хто вже встиг перейти на нову редакцію 1С: Бухгалтерія 8.3 (редакція 3.0) встигли помітити, що працювати вона стала повільнішою, ніж двійка. Якісь незрозумілі підгальмовування, нескінченні фонові завдання кілька разів на день, які її ніхто не просив виконувати без нашого відома.

Мені мої бухгалтери одразу після переходу так і заявили, що нова редакція 1С:Бухгалтерія 3.0 порівняно з попередніми відверто гальмує! І працювати просто неможливо.

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

Ну, наприклад, навіщо нам по сто разів на день запускати завдання "Вилучення тексту", якщо ми не здійснюємо повнотекстовий (бухгалтери, не лякайтеся) пошук по всіх об'єктах нашої бази.

Або навіщо постійно завантажувати курси валют, якщо ми не маємо валютних операцій або ми робимо їх зрідка (і перед цим і самі можемо натиснути кнопку завантажити курси).

Те саме стосується і постійної спроби 1С підключитися до сайту та перевірити та оновити класифікатори банків. Навіщо? Я і сам натисну кнопку оновити класифікатори, якщо не знайду потрібного банку за його БІК.

Про те, як це зробити за пунктами нижче.

1. Зайдіть до розділу "Адміністрування" і на панелі дій виберіть "Обслуговування" ():

2. У вікні знайдіть і виберіть пункт "Регламентні та фонові завдання":

3. Відкрийте кожне завдання, яке має у колонці "Увімк." стоїть галка.

4. Зніміть позначку з пункту "Увімкнено" та натисніть кнопку "Записати та закрити".

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

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

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

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

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

У принципі, вихідних даних вже достатньо, щоб зробити перші висновки. Наведемо їх ще раз:

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

Щоб підтвердити свої здогади, заглянемо в Налаштування параметрів обліку:

Справді, " проблемний " користувач зазначений як користувач виконання регламентних завдань. Як з'ясувалося, колись давно від імені цього користувача працювало завдання автообміну РІБ. Залишилося подивитися, що саме було причиною епізодичного "гальмування". Це також нескладно зробити:

А ось і "винуватець урочистостей" - завдання оновлення індексу повнотекстового пошуку, яке запускалося один раз на 2,5 хвилини. В даному випадку проблема була повністю вирішена відключенням виконання регламентних завдань під цим користувачем, проте це не завжди можливо або доцільно, тому нижче ми розглянемо, яким чином можна керувати регламентними завданнями і як зробити так, щоб вони не впливали негативно на продуктивність.

Звичайний додаток

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

Управління багатьма регламентними завданнями здійснюється через налаштування пов'язаних із нею підсистем. Наприклад, налаштування регламентних завдань, пов'язаних з обміном даними, слід шукати в налаштуваннях обміну, пов'язаних з ЄДАІС в налаштуваннях торгівлею алкоголем і т.д.

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

У цьому випадку слід скористатися зовнішньою обробкою КонсольЗадань (JobsConsole), яка входить до набору стандартних обробок на диску ІТС. Обробка надає єдиний інтерфейс для всіх завдань і дозволяє виконувати їх централізоване налаштування, а також контролювати завдання, що виконуються в даний час.

Даний список потрібно ретельно вивчити, всі непотрібні завдання слід відключити, а у потрібних привести розклад у відповідність до насущних потреб і здорового глузду. Наприклад, у нашому випадку, немає жодної необхідності обробляти відповіді ЄДАІС раз на 30 секунд (це налаштування зроблено для тестування) і в робочому режимі цілком достатньо буде робити це скажемо раз на півгодини.

Керований додаток

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

Для керування регламентними завданнями призначений готельний пункт у меню Адміністрація - Підтримка та обслуговування.

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

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

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

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

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

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

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

Ці нескладні операції дозволять вам без особливої ​​шкоди для функціональності конфігурації підняти комфортність роботи з нею на новий рівень за рахунок відмови від частого виконання ресурсних ресурсів. Тільки не слід впадати в крайнощі, грамотно розсудіть, наскільки вам потрібні ті чи інші можливості і як часто слід виконувати пов'язані з ними завдання.

  • Теги:

Please enable JavaScript to view the

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Як правило фонові завданняу 1C:Підприємстві запускаються з-під регламентного.

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

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

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

Створимо в цьому загальному модулі процедуру, яка робитиме запис до журналу
реєстрації

Процедура ЗаписВЖурналРеєстрації(пар_Ім'яПодії, пар_Коментар) Експорт ЗаписЖурналуРеєстрації(пар_Ім'яПодії, , , , пар_Коментар) ;

КінецьПроцедури
Як бачимо, у процедурі є параметри. Значить фонове завдання повинне їх буде якимось

У процедуру передати.

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


методи використовуються ті самі. Створюємо найпростішу форму з однією командою:

У модулі форми пишемо наступний код: &НаСервері Процедура ЗаписЖРНаСервере() МасивПараметрів = Новий Масив;Масив Параметрів. Додати( "Подія. Фонове завдання успішно відпрацювало"); Масив Параметрів. Додати("Коментар. Перевірка роботи фонового завдання"

); Фонові завдання. Виконати (
"сайт_РегламентніЗавдання.ЗаписВЖурналРеєстрації"

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

А тепер протестуємо роботу опрацювання. Відкриємо її в режимі 1С:Підприємства та
запустимо виконання. Далі відкриваємо журнал реєстрації та бачимо, що завдання
відпрацювало успішно та зробило в журналі відповідний запис.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Побажання

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

Сподобалось? Лайкни нас на Facebook