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

19.11.2019 Огляди

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

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

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

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

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

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

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


Фрагмент 1

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

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


Фрагмент 2

&НаКлієнті Процедура Показати(Команда) ПоказатиНаСервері(Номенклатура); КінецьПроцедури &НаСервері Процедура ПоказатиНаСервері(Номенклатура) Запит = Новий Запит; Запит.Текст = "ВИБРАТИ РІЗНІ | Замовлення Клієнта Склад. Посилання ЯК Посилання | З | Документ. Замовлення Клієнта. Склад ЯК Замовлення Клієнта Склад | ДЕ | Замовлення Клієнта Склад. Запит.ВстановитиПараметр("Номенклатура", Номенклатура); РезультатЗапиту = Запрос.Выполнить(); ВибіркаДетальніЗаписи = РезультатЗапроса.Вибрати(); Поки ВибіркаДетальніЗаписи.Наступний() Цикл Повідомити(ВибіркаДетальніЗаписи.Посилання); КінецьЦикл; КінецьПроцедури

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

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

Функція ВідомостіЗовнішнійОбробці() Експорт ДаніДляРег = Новий Структура(); ДаніДляРег.Вставити("Найменування","Нова зовнішня обробка"); ДаніДляРег.Вставити("БезпечнийРежим", Істина); ДаніДляРег.Вставити("Версія", "ver.: 1.001"); ДаніДляРег.Вставити("Вигляд", "Додаткова Обробка"); ТабЗнКоманда = Новий ТаблицяЗначень; ТабЗнКоманди.Колонки.Додати("Ідентифікатор"); ТабЗнКоманда.Колонки.Додати("Використання"); ТабЗнКоманди.Колонки.Додати("Подання"); НовийРядок = ТабЗнКоманда.Додати(); НовСтрока.Ідентифікатор = "Нова Зовнішня Обробка"; НовийРядок.Використання = "ВідкриттяФорми"; НовСтрока.Представлення = "Нова зовнішня обробка"; ДаніДляРег.Вставити("Команда", ТабЗнКоманда); Повернення ДаніДляРег; КінецьФункції

Фрагмент 3

Підключення зовнішньої обробки до 1С

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


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

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

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

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


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

Розглянемо у цій статті покрокову інструкціющодо створення зовнішньої обробки в 1С 8.3 в режимі керованого додатка, відповідно, будемо використовувати керовані форми. А найголовніше — ми навчимося підключати її до механізму зовнішніх обробок конфігурацій 1С, побудованих на бібліотеці стандартних підсистем версії 2.0 і новіші.

Завдання буде наступне: створити найпростішу зовнішню обробку, яка виконуватиме групову дію над довідником «Номенклатура», а саме, встановлюватиме обраний відсоток ставки ПДВ для зазначеної групи номенклатури.

Для цього одразу зробимо необхідне налаштування у програмі (розглядається конфігурація 1С 8.3: «Бухгалтерія підприємства 3.0» на керованих формах).

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

Створення нової зовнішньої обробки 1С 8.3 на прикладі

Тепер переходимо до конфігуратора. У меню "Файл" вибираємо "Новий ...". Відкриється вікно вибору виду створюваного файлу. Вибираємо «Зовнішня обробка»:

Відкриється вікно нової зовнішньої обробки. Відразу поставимо їй ім'я. Воно буде запропоновано за умови збереження обробки на диск:

Додамо нову керовану форму обробки. Вказуємо, що це форма обробки і є основною:

На формі у нас буде два реквізити:

  • Група Номенклатури – посилання на довідник "Номенклатура";
  • ВибСтавка ПДВ – посилання на перерахування Ставки ПДВ.

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

Черговість реквізитів можна міняти стрілками «Вгору» – «Вниз»:

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

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

У модулі форми буде створено однойменну процедуру. У ній викличемо процедуру на сервері:

&На Клієнті

Процедура ВстановитиСтавку ПДВ(Команда)

ВстановитиСтавку ПДВСервері();

КінецьПроцедури

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

&На сервері

Процедура ВстановитиСтавку ПДВСервері()

Запит = Новий Запит;
Запит.Текст =
«ВИБРАТИ
| Номенклатура.

| Довідник Номенклатура ЯК Номенклатура
|ДЕ
| Номенклатура.Посилання В ІЄРАРХІЇ (&ГрупаНоменклатури)
| І НЕ Номенклатура.
| І НЕ Номенклатура. Це Група »;

Запит.ВстановитиПараметр(«Група номенклатури», група номенклатури);
РезЗапроса = Запрос.Выполнить();
ВибДетЗаписи = РезЗапроса.Вибрати();

Поки ВибДетЗаписи.Наступний() Цикл

Спроба
СпрНомОбъект.Записать();
Виняток
Повідомити(«Помилка запису об'єкта «»» + СпрНомОб'єкт + «»»!
|» + ОписПомилки());
КінецьСпроби;

КінецьЦикл;

КінецьПроцедури

Повертаємось на закладку «Форма», додаємо на форму кнопку та зв'язуємо її з командою:

Як така наша обробка готова до використання. Щоб її викликати, у режимі "1С Підприємства" потрібно зайти в меню "Файл" - "Відкрити" і вибрати створений файл.

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

Для цього служить розділ «Додаткові звіти та обробки».

Але щоб додати туди нашу обробку, потрібно спочатку дати їй опис та повідомити програму її властивості.

Опис функції «Відомості про зовнішню обробку»

Наведу приклад вмісту цієї функції. Вона має бути експортною і, відповідно, розташовуватися в модулі обробки:

Функція ВідомостіЗовнішнійОбробці() Експорт

ДаніДляРег = Новий Структура();
ДаніДляРег.Вставити(«Найменування», «Установка ставки ПДВ»);
ДаніДляРег.Вставити(«БезпечнийРежим», Істина);
ДаніДляРег.Вставити(«Версія», «ver.: 1.001»);
ДаніДляРег.Вставити(«Інформація», «Обробка для встановлення ставки ПДВ у довіднику Номенклатура»);
ДаніДляРег.Вставити(«Вигляд», «Додаткова Обробка»);

ТабЗнКоманда = Новий ТаблицяЗначень;
ТабЗнКоманди.Колонки.Додати(«Ідентифікатор»);
ТабЗнКоманди.Колонки.Додати(«Використання»);
ТабЗнКоманди.Колонки.Додати(«Подання»);

НовийРядок = ТабЗнКоманда.Додати();
НовСтрока.Ідентифікатор = «Відкрити Обробку»;
НовийРядок.Використання = «ВідкриттяФорми»;
НовСтрока.Представлення = «Відкрити обробку»;
ДаніДляРег.Вставити(«Команди», ТабЗнКоманди);

Повернення ДаніДляРег;

КінецьФункції

Щоб краще зрозуміти, які поля структури реєстраційних даних потрібно використовувати, переглянемо реквізити довідника «Додаткові звіти та обробки»:

Як бачимо, все досить просто. Не збігається лише один реквізит: "Варіант Запуску" - "Використання". Якщо подивитися код одного із загальних модулів, то ми побачимо, як виникає зв'язка цих полів:

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

Підключення зовнішньої обробки до 1С 8.3

Створюємо регламентне завдання

Створимо регламентне завдання "Виконання обробки".

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

Призначимо процедуру, яка спрацьовуватиме під час запуску регламентного завдання:МодульРегламентнихЗаданий.РегламентнеЗавданняВиконання Обробки.

Сама процедура має вигляд:

Процедура РегламентнеЗавданняВиконання Обробки(Ключ) Експорт

ПараметриРегламентнихЗаданий.Виконати ОбробкуСпараметрами(Ключ);

КінецьПроцедури

Створюємо довідник для регламентних завдань

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

Довідник «Параметри регламентних завдань» :

Реквізити :

· КодПередЗапуском- необмежений рядок – код на мові 1С, який потрібно виконати перед запуском.

· Обробка конфігурації - рядок (100) - ідентифікатор обробки конфігурації

· Обробка із довідника - рядок (100) - посилання на елемент довідника «Зовнішні обробки», якщо такий є в конфігурації

· Виконувати через додаток 1С - Булев - буде створено окремий додаток 1С та в ньому буде запущено регламентне завдання. Створено для 8.1, де не всі методи застосування доступні на сервері, де працює регламентне завдання.

· КодЗапуску- - необмежений рядок - код мовою 1С, який виконуватиметься під час запуску регламентного завдання.

Створимо форму елемента :

За натисканням кнопки «Створити регл. завдання» програмно створюється регламентне завдання з ключем-кодом:

Процедура ОсновніДіїФормиСтворитиРеглЗавдання(Кнопка)

Перем Завдання;

Ключ = СокрЛП (Код);

Завдання = Регламентні Завдання. Створити Регламентне Завдання ("Виконання Обробки");

Завдання. Найменування = Ключ;

Завдання. Ключ = Ключ;

Параметри = Новий Масив();

Параметри.Додати(Ключ);

Завдання.Параметри = Параметри;

Завдання.Записати();

КінецьПроцедури

Запуск регламентного завдання

Кожне створене нами регламентне завдання має ключ:

Цей ключ відповідає коду довідника «Параметри регламентних завдань», ним здійснюється пошук при старті завдання. Якщо елемент довідника не знайдено, завдання не виконується.

Далі, якщо заданий кодКодПередЗапускомто буде виконано цей код. Далі, якщо змінна Виконуватинабере значення брехня, то завдання не буде виконане. При аналізі доступна змінна Параметри, де зберігається посилання знайдений елемент довідника «Параметри регламентних завдань».

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

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

Рекомендую встановлювати користувача у полі «Користувач» у новоствореного регламентного завдання, щоб завдання виконувалося під певними правами. Рекомендую такому користувачеві надавати повні права. У мене використовується користувачrobot».

Розклад регламентного завдання створюється за посиланням «Розклад» з форми регламентного завдання. Можна використовувати обробку Консоль регламентних завдань.

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 заб'є тривогу і сповістить нас на пошту.

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


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

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

Відповідь:

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


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

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

Функція ВідомостіЗовнішнійОбробці() Експорт ПараметриРеєстрації = Новий Структура; ПараметриРеєстрації.Вставити("Вигляд", "Додаткова Обробка"); ПараметриРеєстрації.Вставити("Найменування", "Завантаження залишків (PCService(C))"); ПараметриРеєстрації.Вставити("Версія", "1.0"); ПараметриРеєстрації.Вставити("БезпечнийРежим", Брехня); ПараметриРеєстрації.Вставити("Інформація", "Завантаження Залишків"); ПараметриРеєстрації.Вставити("ВерсіяБСП", "2.3.2.33"); ТаблицяКоманд = ОтриматиТаблицюКоманд(); ДодатиКоманду(ТаблицяКоманд, "Завантаження залишків (PCService(C))", "1", "ВідкриттяФорми", Істина,""); ДодатиКоманду(ТаблицяКоманд, "Завантаження залишків (PCService(C))", "2", "ВикликСерверногоМетоду", Істина,""); Ідентифікатор Команди = "2"; ПараметриРеєстрації.Вставити("Команда", ТаблицяКоманд); Повернення ПараметриРеєстрації; КінецьФункції Функція ОтриматиТаблицюКоманд() Команди = Новий ТаблицяЗначень; Команди.Колонки.Додати("Подання", Новий ОписТипів("Рядок")); Команди.Колонки.Додати("Ідентифікатор", Новий ОписТипів("Рядок")); Команди.Колонки.Додати("Використання", Новий ОписТипів("Рядок")); Команди.Колонки.Додати("ПоказуватиОповідання", Новий ОписТипів("Булево")); Команди.Колонки.Додати("Модифікатор", Новий ОписТипів("Рядок")); Повернення Команди; КінецьФункції Процедура ДодатиКоманду(ТаблицяКоманд, Подання, Ідентифікатор, Використання, ПоказуватиОповідь = Брехня, Модифікатор = "") НоваКоманда = ТаблицяКоманд.Додати(); Нова Команда. Подання = Подання; Нова Команда. Ідентифікатор = Ідентифікатор; Нова Команда. Використання = Використання; НоваКоманда.ПоказуватиОповідання = ПоказуватиОповідання; Нова Команда. Модифікатор = Модифікатор; КінецьПроцедури &На Сервері Процедура ВиконатиКоманду(ІдентифікаторКоманди, Об'єктиПризначення) Експорт КінецьПроцедури

При натисканні на кнопку виконати з варіантом запуску "Відкриття форми" форма відкривається і одночасно виконується програма (відразу виконується тому що на формі в подіях "При створенні на сервері" вказано щоб виконала основний код програми)
При натисканні на кнопку виконати з варіантом запуску "Виклик Серверного Методу" помилок не видає, але й результату ніякого.
Що я роблю не так??

Відповідь:

Все вкурив. Сюди і треба було скопіювати код, який я хотів, щоб виконувався без відкриття форми

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


Вітаю. Роздріб 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