Запуск зовнішньої обробки 1С 8.3 за розкладом. Універсальне регламентне завдання

Питання: Проблема з доступом до додаткової обробки в ЗУП3


створив додаткову обробку, помістив у розділ зарплата. Користувач із правами старший кадровик розрахунник не може запустити, каже "недостатньо прав доступу". Як встановити право на запуск додаткової обробки?

Зарплата та управління персоналом, редакція 3.0 (3.0.24.115) ()
Copyright © ТОВ "1C", 2007-2014. Всі права захищені
()

Відповідь:

Питання: Запуск додаткової обробки за розкладом


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

Код у модулі форми

Функція ВідомостіЗовнішнійОбробці() Експорт ПараметриРеєстрації = Новий Структура;

ПараметриРеєстрації.Вставити("Вигляд", "Додаткова Обробка");
ПараметриРеєстрації.Вставити("Найменування", "Завантаження залишків (PCService(C))");
ПараметриРеєстрації.Вставити("Версія", "1.0");

Відповідь:

ПараметриРеєстрації.Вставити("БезпечнийРежим", Брехня);

ПараметриРеєстрації.Вставити("Інформація", "Завантаження Залишків");


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

Відповідь:

Проблема вирішилася з переустановкою платформи на всіх комп'ютерах

Запитання: Додаткова обробка


Всім доброго доби.
Управління нашою фірмою, редакція 1.6 (1.6.12.4)

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

Відповідь:

Створюєте звіт у розширенні, додаєте потрібну (існуючу) підсистему на розширення, робите посилання створений звіт у " розширеної " підсистемі.

Запитання: Використання Веб-Сервісів у додатковій обробці з використанням БСП


Добридень!
У фреші необхідно вбудувати додаткову обробку, яка буде звертатися до веб-сервісу іншої бази. Обробка звичайно ж у безпечному режимі, однак "допускається використання розширення безпечного режиму бібліотеки стандартних підсистем(можливість працювати з файлами, з ресурсами мережі Інтернет тощо) через спеціалізований програмний інтерфейс з реєстрацією дозволів, необхідних додатковому звіту/обробці." Однак не можу знайти в поточній версії БСП як налаштувати це. допоможіть, будь ласка : Бухгалтерія підприємства, редакція 3.0 (3.0.59.45) БСП 2.4.5.31

Відповідь: oO

Запитання: ЗуП вилітає при запуску певної обробки, що робити?


Є дописка, яка оновлює документи розрахунку, запроваджені на підставі звільнення. При запуску цієї обробки програма тупо закривається без повідомлень. У налагоджувачі нічого не видно. На тестовій даті, на яку зробив 1 документ проходить. Що ще робити? Тестування запускав, начебто помилок немає.

Відповідь:чудово, але цикл навіщо потрібний був.

Запитання: Регламентне завдання Додаткової обробки


Конфігурація Альфа-Авто: Автосалон+Автосервіс+Автозапчастини КОРП. редакція 6.
Створив зовнішню обробку. Підключив її як додаткову обробку.
Налаштував виконання за розкладом. А вона не запускається з помилкою:
Регламентне завдання "Запуск додаткових обробок", не може бути виконане через відсутність налаштувань у процедурі РегламентніЗавданняПеревизначуваний. Зверніться до системному адміністратору!
Хто підкаже, що не так з обробкою або Налаштуванням Бази.

Відповідь:() Так Ви подивіться що там в РегламентніЗавданняПеревизначається.ПриВизначенніНалаштуваньРегламентнихЗадань()
У БСП ця процедура зазвичай пуста. В Альфі можливо щось доопрацьовували.

Запитання: Автоматичний запуск зовнішньої обробки


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

Питання: чи можливо зробити так, щоб дана обробкаавтоматично виконувалася щодня. тобто. наприклад: о 08:00 ранку кожного дня спрацьовувала процедура кнопки "Виконати" та "Відправити"? База серверна. Буду радий будь-якої допомоги та будь-яким варіантам.

Відповідь:() А при такому варіанті запуску процес 1С закриється після виконання обробки? або його потрібно завершувати з обробки через Завершити Роботу Системи (Брехня)?

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

Відповідь:будь-який планувальник nncron xstarter

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

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

Наступний крок, робимо автоматичне закриття програми після виконання зовнішньої обробки, яку ми створили, і вона у нас вже працює. Для цього у процедурі При відкритті()в самому кінці вставляємо наступну команду: ЗавершитиРоботуСистеми(Брехня);у цьому випадку параметром Запитувати Можливістьми передаємо значення «Брехня», щоб відсікти різні варіанти додаткових питаньсистеми при закритті, тим самим ініціюємо безумовне завершення роботи 1С після виконання зовнішньої обробки. Для вірності знову запускаємо програму та виконуємо обробку та переконуємось, що вона відпрацювала і програма сама закрилася.

"C:\Program Files (x86)\1cv8\8.3.5.хххх\bin\1cv8.exe" ENTERPRISE /DisableStartupMessages /FС:\шлях до бази /N"Ім'я Користувача" /P"ПарольКористувача" до обробки\самообробка.epf

Розшифруємо:

1. "C: Program Files (x86) \ 1cv8 \ 8.3.5.хххх \ bin \ 1cv8.exe" ENTERPRISE - сам двигун 1С в даному випадку 8.3, перевірте шлях з себе самі, він відрізняється в залежності від версії і движка навіть не забуваємо правити його після оновлення останнього.

2. /DisableStartupMessages - відключаємо всі повідомлення при старті системи.

4. /N»Ім'я Користувача» /P»ПарольКористувача» - відповідно /N ім'я користувача, також відразу без пропуску та /P пароль.

5. /Execute з:\шлях до обробки\самаобработка.epf - /Execute запускає нашу обробку, шлях і назва має слідувати після цього ключа.

Тепер все, залишається тільки додати у планувальник завдань наш cmd файл: avtozapusk1c.cmd, вказавши розклад його запуску.

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

Ось такі не хитрі інструменти допомагають автоматизувати щоденні рутинні операції, Вам успіхів!

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

Створюємо зовнішню обробку 1С 8.3

Для створення нової зовнішньої обробки використовуємо конфігуратор. Через меню «Файл» вибираємо команду створення «Новий…» і визначаємо, що ми створюватимемо зовнішню обробку. У вікні задаємо ім'я, і ​​при натисканні «Enter» воно заповнюється автоматично. Також це ім'я вам запропонує система як назву файлу при збереженні.

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

  • Реквізит – поле для встановлення номенклатури;
  • Кнопку, яка здійснить виклик коду.

Додаємо реквізит «Номенклатура» з типом даних «Довідник Посилання.Номенклатура» у відповідному розділі та кнопку «Показати» у меню «Команда» -> «Команда форми».

Щоб на формі відобразилися додані дані, їх необхідно перетягнути елементи форми, розташовані в лівій верхній частині. Можна поміняти місцями елементи за допомогою синіх стрілок. Щоб створена кнопка виконувала задумане, їй потрібно призначити процедуру. Через контекстне меню виберемо «Дію команди», і питанням, де потрібен обробник, відповімо: «Створити клієнта і процедуру на сервері».


Фрагмент 1

&НаКлієнті Процедура Показати(Команда) ПоказатиНаСервері(); КінецьПроцедури &НаСервері Процедура ПоказатиНаСервере() //Вставити вміст обробника. КінецьПроцедури

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


Фрагмент 2

&НаКлієнті Процедура Показати(Команда) ПоказатиНаСервері(Номенклатура); КінецьПроцедури &НаСервері Процедура ПоказатиНаСервері(Номенклатура) Запит = Новий Запит;

Запит.Текст = "ВИБРАТИ РІЗНІ | Замовлення Клієнта Склад. Посилання ЯК Посилання | З | Документ. Замовлення Клієнта. Склад ЯК Замовлення Клієнта Склад | ДЕ | Замовлення Клієнта Склад.

Запит.ВстановитиПараметр("Номенклатура", Номенклатура);

РезультатЗапиту = Запрос.Выполнить();

ВибіркаДетальніЗаписи = РезультатЗапроса.Вибрати();

Поки ВибіркаДетальніЗаписи.Наступний() Цикл Повідомити(ВибіркаДетальніЗаписи.Посилання);

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


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

  • Вказати розміщення об'єкта. Натискаючи на «Не визначено», ми відкриваємо вікно розділів і вкажемо, в яких розділах буде доступна операція;
  • Вибрати користувачів, у яких команда з'явиться в меню «Додаткові обробки» вибраних розділів без зайвих налаштувань. Для цього в табличній частині потрібно вибрати пункт «Швидкий доступ» та додати до правої половини відповідальних користувачів;
  • На вкладці « додаткова інформація» ви можете вказати папку, в якій буде завантажена обробка;
  • Після натискання клавіші «Записати» у вибраному розділі в меню «Додаткові обробки» користувачі виявлять нашу команду та зможуть нею скористатися.

Якщо ми хочемо внести зміни до нашої обробки, необхідно спочатку вивантажити її з бази. Для цього в довіднику «Додаткові обробки та звіти» знайдіть потрібний рядок та скористайтеся командою «Вивантажити у файл…». Внесіть зміни, збережіть обробку і за допомогою клавіші «Завантажити з файлу…» знайдіть змінений файл epf, не змінюючи параметри. Після запису усі користувачі побачать внесені зміни.

Якщо ви використовуєте не типову або зняту з підтримки базу 1С, скористайтеся можливістю завантажити обробку через конфігуратор. У дереві об'єктів у розділі «Обробки» створіть нову обробку та за допомогою контекстного меню виберіть «Замінити на зовнішню обробку, звіт…». Залишиться лише налаштувати запуск зовнішньої обробки з потрібного розділу, включивши додану обробку потрібну підсистему.


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

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

Що таке зовнішні звіти та обробки

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

За функціональністю обробки поділяються на ті, які можуть змінювати дані та ті, які просто аналізують інформацію та виводять результат у зручній для користувача формі (звіти). Щоб не змінювати стандартні макети друку документів, розробляються зовнішні форми друку. Також зовнішні обробки можуть виконуватися за розкладом на сервері додатків 1С - це регламентні завдання.

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

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

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

І виводиться друкована форма договору:

Обробки за розкладом (регламентні завдання) використовуємо, наприклад, для виправлення виписки. У Кнопки налаштовані інтеграції з основними банками та спеціальні роботи завантажують витяг безпосередньо в 1С. Завдяки технології машинного навчання, Відсоток помилок під час проведення виписки вдалося знизити до 3%. Але як завжди є винятки, наприклад, клієнти, які використовують агентську схему реалізації товарів, у цьому випадку правила проведення банківської виписки індивідуальні. Щоб не перепрограмувати робота для окремого випадку, до появи розширень конфігурації використовували регламентне завданнящоб раз на 10 хвилин виправляти виписку за роботом.

Що таке розширення конфігурації

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

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

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

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

Підготовка зовнішніх звітів та обробок до публікації у моделі сервісу

Додатковий звіт або обробка створюються у конфігураторі "1С: Підприємство 8" як стандартні зовнішні звітита обробки та зберігаються у файл з розширенням - .epf (для додаткових обробок) або .erf (для додаткових звітів).

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

Зауважте, що важливим параметром є “Версія“. Якщо ви внесли зміни в обробку, яка вже була завантажена в каталог менеджера сервісу, обов'язково змініть номер версії, інакше менеджер сервісу відмовиться завантажувати цей файл. Під час розробки звіту чи обробки треба враховувати, що користувачі працюють у моделі сервісу через web-клієнт (хороша стаття у блозі 1С). Якщо обробка містить форми, то вони повинні працювати у web-клієнті під усіма web-браузерами, які підтримуються технологічною платформою "1С: Підприємство 8".

За стандартами сервісу 1cfresh.com додатковий звіт або обробка повинні бути повністю працездатними при виконанні в безпечному режимі, тобто працювати без звернення до зовнішніх для конфігурації об'єктів.

Додатковий звіт або обробка повинні бути підготовлені для завантаження у сервіс у вигляді комплекту постачання. Комплект поставки є архівом (zip-файлом), що містить:

  • файл додаткового звіту чи обробки;
  • xml-файл маніфесту, в якому знаходиться додаткова метаінформація, необхідна менеджеру сервісу для публікації додаткового звіту або обробки у сервісі.
Підготовка виконується в локально розгорнутій інформаційній базі конфігурації, для якої призначається додатковий звіт або обробка. Використовуємо спеціальний помічник створення комплекту постачання, зовнішню обробку Підготовка Додаткових Звітів І Обробок КП публікації В Моделі Сервісу. Докладніше можна почитати в документації з Технології публікацій рішень 1С Fresh.

Встановлення додаткових звітів та обробок у моделі сервісу

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

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

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

Так виглядає форма властивостей додаткового звіту з версіями. За посиланням “Установка/видалення“, потрапляємо до списку додатків і вибираємо необхідні бази.

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

Запускаємо обробки за розкладом

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

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



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

Докладніше про розширення конфігурації

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

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

Нове розширення підготувати досить легко. Розгляньмо процес створення розширень на конкретних прикладах.
З досвіду роботи лідером за запитами на внесення коригувань є друкована форма ТОРГ-12. Наприклад, нам треба зробити розширення для можливості друкувати товарну накладну у валюті (за умовчанням вона може формуватися лише у рублях).
Відкриваємо Меню → Конфігурація → Розширення конфігурації
Створюємо нове розширення із призначенням “Адаптація“.

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

Оскільки товарна накладна роздруковується з документа “Реалізація товарів послуг“, додамо цей документ у наше розширення з основної конфігурації та внесемо потрібні зміни до модуль менеджера. Для цього в контекстному менюреалізації вибираємо «додати розширення».

Тепер можна доопрацювати модуль менеджера реалізації. Нам потрібно додати нову форму до списку друкованих форм та заповнити суми у валюті.

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

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

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

Анотацію &Замість треба застосовувати якомога рідше, оскільки вона повністю замінює виконання процедури та функції з основної конфігурації на процедуру/функцію розширення. При цьому способі перехоплення процедура/функція з основної конфігурації взагалі перестануть виконуватися, поки встановлено розширення, навіть оновлення версій не допоможе.

Висновок

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

Можна використовувати кілька розширень для однієї області даних.
Для специфіки роботи 1С Fresh в режимі поділу даних (одна конфігурація, багато незалежних областей), метод розширень відмінний вихід.

2017-12-19T18:29:06+00:00

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

Запуск за розкладом працює через стандартний механізм Windows, який називається "Планувальник завдань".

І коли користувач задає налаштування розкладу...

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

Чого не можна забувати

Вибір користувача

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

Повинен мати права у системі на "Вхід як пакетне завдання".

Як перевірити, чи має користувач необхідні права?

Найпростіший варіант, це натиснути правою кнопкоюна створеному завданні у планувальнику та вибрати "Виконати":

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

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

Має непустий пароль. Ця вимога безпеки Windows. Якщо ви зіткнулися саме з цим обмеженням, то самим правильним рішеннямбуде:

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

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

Вибір баз

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

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

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

Порядок запуску

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

Це означає, що й нам, наприклад, потрібно налаштувати, щоб у 22-00 виконувалася архівація, а відразу після закінчення оновлення баз, досить для архівації вказати час запуску 22-00, а оновлення, наприклад, 22-01.

Що якщо потрібний складніший розклад

А що, якщо нам потрібен не просто регулярний запуск визначений часу певні дні? Що якщо ми хочемо, скажімо, налаштувати запуск з 5 годин кожні півгодини, ну чи щось таке?

У цьому випадку нам потрібно скористатися всією міццю планувальника завдань.

Спочатку налаштовуємо розклад через обновлятор, вказавши, що конкретний розклад буде налаштовано вже в планувальнику:

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

І на відповідних вкладках налаштовуємо все, що наша душа забажає:

Як виключити базу з деяких операцій за розкладом

Припустимо, що у нас налаштований розклад для оновлення та для архівації:

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

Як же цього досягти - адже список баз, які беруть участь у розкладі, у нас один:

А зробити це дуже просто.

Зайдіть до властивостей тієї бази, яку потрібно виключити з оновлення за розкладом і в самому низу вікна знайдіть пункт "Виключити деякі операції...":

Натисніть на нього та виключіть оновлення цієї бази із запуску за розкладом:

Повинно вийти ось так:

Чи можливий запуск за розкладом з іншими параметрами

Хочу звернути окрему увагу на те, що завдання у планувальнику завдань – це звичайний запуск обновлятора з певними параметрами командного рядка:

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

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

Про всі ключі командного рядка оновлень.

Як дізнатися чи запускався обновлятор за розкладом

Буває так, що розклад начебто налаштували – але щось йде не так.

І ми взагалі не впевнені – чи запускався обновлятор цієї ночі.

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

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

Також ми можемо зайти в повний журнал звітів оновлень.

І подивитися чи відбувалося виконання завдань.

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

Щоб увімкнути журнал планувальника Windowsзаходимо в діалог "Запуск за розкладом" та натискаємо кнопку "Відкрити планувальник Windows":

Це можна зробити також із панелі управління Windows(Розділ адміністрування).

Тут знаходимо та натискаємо пункт "Включити журнал усіх завдань":

Готово! Тепер ми зможемо переглядати історію роботи будь-якого завдання у планувальнику.

Наприклад, виділимо одне із завдань обновлятора:

Як налаштувати хмарну систему моніторингу за запуском завдань оновлень

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

Така ситуація дуже можлива, якщо ми налаштували запуск архівації за розкладом, а потім:

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

А потрібно лише на додаток до налаштування повідомлень про помилки на пошту налаштувати хмарну систему моніторингу запуску нашого обновлятора. Що це та як працює?

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

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

  • Гей, HealthChecks, дай мені унікальну Url (адресу інтернет ресурсу).
  • HealthChecks, якщо за цією адресою ніхто не буде стукатися (запитувати) протягом такого періоду - повідомити мене про це на таку пошту.

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

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

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

Найпростіший сценарій налаштування HealthChecks разом із обновлятором

Нехай ми налаштовуємо щоденну архівацію на сервері з ім'ям DataServer, який належить компанії ТОВ "Ромашка":

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

3. Реєструємося на пошту, яку хочемо отримувати оповіщення.

3. Переходимо в розділ "Checks" та натискаємо велику зелену кнопку "Add Check".

5. Змінимо ім'я цієї перевірки на ТОВ "Ромашка" (DataServer, archiving). Це потрібно зробити, щоб ми розуміли з чим саме пов'язана ця перевірка (архівація на сервері з ім'ям DataServer у компанії ТОВ "Ромашка"):

6. Вкажемо період перевірки (архівація має запускатися 1 раз на день, сам процес архівації може тривати до 12 годин):

Другий повзунок (grace) це якраз допустиме перевищення періоду, тобто час, протягом якого може тривати процес архівації.

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

Наприклад, якщо ми налаштовуємо оновлення за розкладом на запуск о 22:00, то сьогодні це оновлення може закінчитися о 23:00, а вже завтра (вийшло багато нових оновлень) триватиме до 4 ранку.

Звідси і додатковий запас о 12 годині, щоб не було помилкових спрацьовувань від HealthChecks.

Результат налаштування періоду буде таким:

7. Але як бачите поле Last Ping порожнє (Never). Воно буде оновлюватися в міру звернення до цієї адреси при архівації. А якщо звернення не буде більше ніж 1 день та 12 годин, то HealthChecks заб'є тривогу і сповістить нас на пошту.