1с як налагодити регламентне завдання. Налагодження фонових завдань

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

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

Для вирішення цієї проблеми нам необхідно вирішити два завдання:

1. Включити налагодження на сервері 1С. За замовчуванням налагодження на сервері виключена і щоб її включити, необхідно: Запустити реєстр Windows, Прописавши в " виконати"команду REGEDIT. знайти рядок

"C: \\ Program Files \\ 1cv81 \\ bin \\ ragent.exe" -srvc -agent

(Взяту з параметрів запуску служби Агент сервера 1С: Підприємства 8.1). (Це для версії платформи 8.1)

Дописати в кінець ключ -debug (не забуваємо перед ключем -debug ставити пробіл)

приклад
. "ImagePath" \u003d було "З: \\ Program Files \\ 1cv81 \\ bin \\ ragent.exe "-srvc -agent -regport 1 541 -port 1540 -range 1560 1591 -d" З: \\ Program Files \\ 1cv81 \\ server " ставимо "З: \\ Program Files \\ 1cv81 \\ bin \\ ragent.exe" -srvc -agent -regport 1 541 -port 1540 -range 1560 1591 -debug -d "З: \\ Program Files \\ 1cv81 \\ server"

Перезапустити агент сервера. Готово. Тепер нам доступна налагодження серверних потоків виконання.

2. Регістр букв імені сервера та імені бази в з'єднання клієнта з сервером 1С повинен в точності збігатися.

Правильне підключення:
фонове завдання клієнт - Srvr \u003d "SERVER-NAME"; Ref \u003d "Base_Name";
неправильне підключення:
фонове завдання - Srvr \u003d "SERVER-NAME"; Ref \u003d "Base_Name"; клієнт - Srvr \u003d "Server-name"; Ref \u003d "Base_Name";

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

Код наступний:

процедура ЗапісатьСоедіненіеСБазой() Експорт
ЗапісьЖурналаРегістраціі(,СтрокаСоедіненіяІнформаціоннойБази());
КонецПроцедури

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


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

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


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

налагодження 1С - дуже потужний і функціональний механізм платформи 1С 8.3, що дозволяє швидко знайти помилки в програмному коді (в інших мовах програмування це називається «дебаг», від англійського «debug»).

Нижче розглянемо основні методи використання механізму налагодження у вигляді практичної інструкції на конкретному прикладі.

Увага! Якщо Ви використовуєте клієнт-серверний режим роботи (на сервері), Вам необхідно.

Найпростіший спосіб запустити налагодження в 1С - відкрити 1С в режимі і з нього запустити режим налагодження в потрібному режимі роботи (тонкому / товстому, керованому / звичайному):

Налагодження фонових завдань 1С

Для того щоб мати можливість налагодження фонових завдань, необхідно зайти в меню «Налагодження - Підключення». У вікні, натиснути кнопку «Автоматичне підключення»:

У цьому вікні Ви можете встановити відповідний прапор.

Крім фонових завдань, в даному вікні Ви можете включити налагодження зовнішніх з'єднань, http і.

Установка точки зупинки (брейкпойнта)

Другим етапом при налагодженні є установка точки зупинки (в інших мовах програмування - брейкпойнт).

Для прикладу я вибрав для налагодження обробник «При зміні» на формі документа:

Для того щоб встановити точку зупину, необхідно знайти потрібний програмний код і натиснути двічі на поле, зліва від поля введення коду (або натиснути кнопку F9):

Щоб побачити список всіх встановлених, необхідно зайти в меню Налагодження - Список точок зупину (alt + F9):

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

Точка зупину 1С з умовою (синя)

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

Наприклад, зупинимо цикл на рядку з номером 25:

Неактивна точка зупинки (сіра)

Сіра точка зупинки означає, що вона не активна, система не буде зупинятися на такій точці. Вдіяти не активної її можна, натиснувши спеціальну кнопку на панелі «Відключити точку зупину» (shift + ctrl + F9):

Точка зупину помилково

Система може зупинитися по викликаної помилку, для цього необхідно в меню Налагодження - Зупинка помилково встановити відповідний прапор:

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

Покрокове переміщення по програмному коду 1С

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

Для того щоб зробити крок до наступного рядка, необхідно натиснути кнопку «F11" (Зробити крок в).

Якщо Ви покроково проходьте по рядках програмного коду і на рядку присутній процедура або функція, то Ви «провалитеся» всередину цієї процедури (або функції).

Щоб не «провалюватися», досить замість F11 (Зробити крок в) виконувати перехід по рядках кнопкою F10 (Зробити крок через), ця кнопка дозволяє переступати через процедури в програмному коді.

Щоб перейти з поточного положення курсору до потрібного, минаючи проміжні рядки коду, необхідно встановити курсор на потрібному рядку і натиснути shift + F10 (Йти до курсора).

Аналіз значень в режимі налагодження 1С

Подивитися значення певних значень можна різними способами:

Відображення значення при наведенні курсору

При наведенні на змінну система «підсвічує» значення змінної:

Використання «Обчислити вираз» або «Табло»

  • форму обчислити вираз можна викликати за допомогою контекстного меню або натискання швидких клавіш - (Shift + F9), або меню (Налагодження - Обчислити вираз).
  • табло викликається за допомогою швидких клавіш Ctrl + Alt + W або з меню (Налагодження - Табло).

Ці два методи аналізу дуже схожі, основні відмінності в інтерфейсі. Табло зручніше використовувати для групи показників, вирази - для одиночних.

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

наприклад:

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

Як дізнатися звідки викликана процедура в налагодженні - Стек викликів

Дуже часто потрібно зрозуміти, звідки була викликана та чи інша процедура або функція і з якими параметрами. Для цього в 1С передбачена спеціальна функція - «Стек викликів». Для запуску Стека викликів необхідно натиснути гарячі клавіші - Ctrl + Alt + C або через меню (Налагодження - Стек викликів).

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

Якщо Вас цікавить оцінка продуктивності при налагодженні -.

Дивіться також оглядове відео з налагодження в 1С:

В сучасних конфігураціях 1С: предріятія дуже широко використовуються фонові завдання.

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

Включити режим налагодження на сервері 1С: Підприємства.

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

Встановлення автоматичного з'єднання фонових завдань в конфігураторі

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

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

Правильно прописати рядок підключення до бази 1С

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

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

Srvr \u003d "Server1C: 1541"; Ref \u003d "Test";

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

Srvr \u003d "Server1C"; Ref \u003d "Test";

Тому довелося змінити рядок підключення в списку баз відповідним чином.
Але тут відразу ж виникає питання. Як дізнатися рядок підключення фонового завдання? Тут нам може прийти на допомогу. Адже в момент виконання фонового завдання ми можемо програмно робити записи в журнал реєстрації. А за допомогою процедури СтрокаСоедіненіяІнформаціоннойБази () ми зможемо отримати рядок підключення.

Таким чином, робимо в потрібному загальному модулі (у мене це буде ФоновиеЗаданіяСервер) Ось таку процедуру

Процедура ЗапісатьВЖурналСтрокуПодключенія () Експорт СтрокаПодключенія \u003d СтрокаСоедіненіяІнформаціоннойБази (); ЗапісьЖурналаРегістраціі (СтрокаПодключенія); КонецПроцедури

А тепер виконаємо цю процедуру запустивши:

& НаСервере Процедура ЗапісатьСтрокуПодключеніяНаСервере () ФоновиеЗаданія. виконати ( "ФоновиеЗаданіяСервер.ЗапісатьВЖурналСтрокуПодключенія"); КонецПроцедури

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

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

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

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

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

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

Відкрийте конфігурацію і додайте регламентне завдання.

Налаштування властивостей

Розглянемо важливі параметри, Які необхідно заповнити в його властивості.

  • У полі " ім'я методу»Вибирається та процедура якогось певного загального модуля, Яка буде безпосередньо виконуватися. У ній будуть вказані всі дії по вивантаженню цін на наш сайт. Зверніть увагу, що виконання відбуватиметься на сервері. Це логічно, адже регламентні операції виконуються без участі користувача.
  • Регламентне завдання можна відключати або включати в разі потреби. Не потрібно кожного разу правити його розклад. Для цього в палітрі властивостей встановіть або зніміть прапор « Використання».
  • Ще однією важливою є настройка, чи буде бути дане регламентне завдання визначеним, чи ні. Зумовлені регламентні завдання запускаються автоматично. Якщо дана ознака не встановлений, то вам буде потрібно запускати їх програмно, або скористатися обробкою «Консоль завдань» з ІТС.
  • Так само ви можете вказати кількість повторів і інтервал між ними при аварійному завершенні. Під аварійним завершенням маються на увазі ті ситуації, коли завдань не відпрацювали з причини виникнення помилки.

Налаштування розкладу

Завершальним кроком ми налаштуємо розклад нашої вивантаження на сайт за відповідною гіперпосиланням в палітрі властивостей.

Перед вами відкриється типова настройка розкладу в 1С 8.3. Тут немає нічого складного. У рамках даного прикладу ми налаштували запуск нашої вивантаження цін на сайт щодня з п'яти до семи ранку. У тому випадку, якщо регламентне завдання не встигне відпрацювати до 7:00, воно буде виконано вже на наступний день.

Блокування регламентних завдань

Запустіть стандартну утиліту «Адміністрування серверів 1С Підприємства» і відкрийте властивості тієї інформаційної бази, Де ви створили регламентне завдання (для клієнт-серверних версій 1С).

У вікні (після введення логіна і пароля для доступу до ІБ) перевірте, щоб не було встановлено прапор на пункті «Блокування регламентних завдань включена». Якщо ви зіткнулися ситуацією, коли Завдання не відпрацьовує, насамперед перевіряйте цю настройку.

Таким же чином можна повністю відключити регламентні завдання в 1С 8.3. Для відключення конкретних фонових завдань можна скористатися вбудованою в останні релізи обробкою «Консоль фонових завдань».

Фонові і регламентні завдання в файловому режимі

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

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

Так само ви можете скористатися наступною конструкцією:

Як ім'я процедури необхідно вказати ім'я клієнтської процедури, яка повинна буде виконатися. Інтервал показує, через скільки секунд буде вироблено виконання. Параметр «Лише один раз» не обов'язковий до заповнення. Він відображає, чи буде виконана дана процедура одноразово, або кілька разів.

Відстеження помилок в фонових завданнях

Подивитися хід виконання фонових завдань, а так само наявність можливих помилок можна в журналі реєстрації. У фільтрі встановіть відбір з додатком «Фонове завдання» і при необхідності виберіть потрібну важливість, наприклад, тільки «Помилки».

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

Поділитися