Іноді виникає потреба налагодити фонове (регламентне) завдання. Саме з цим часто і виникає проблема.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Srvr="Server1C:1541";Ref="Test";

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

Srvr="Server1C";Ref="Test";

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

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

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

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

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

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

Налагодження 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С: