Како да дебагирате задача во заднина 1s 8.3. Дебагирање на работните места во заднина. Прикажи ја вредноста на лебди

Веројатно, ниту една сериозна конфигурација на 1C 8.3 или 8.2 не може да направи без употреба на рутински и заднински задачи. Тие се многу погодни, бидејќи ќе бидат извршени според јасно дефиниран распоред без интервенција на корисникот или програмерот.

На пример, треба да разменувате податоци со друга програма еднаш дневно. Користејќи рутински задачи и задачи во заднина, 1C ќе може да ги извршува овие дејства самостојно, на пример, за време на неработни часови. Овој метод нема да влијае на корисничкото искуство на кој било начин и ќе помогне да заштедите време.

Прво, да откриеме што значат и која е нивната разлика:

  • Закажана задачави овозможува да започнете какви било конкретни дејства според однапред конфигуриран распоред.
  • Работа во заднинае објект кој ги содржи дејствата што треба да се извршат.

Да претпоставиме дека нашата компанија продава нешто и има своја веб-страница на која се наоѓаат цените. Сакаме да ги прикачуваме еднаш дневно за да ја одржиме релевантноста.

Отворете ја конфигурацијата и додајте закажана задача.

Поставување својства

Ајде да ги погледнеме најважните параметри што треба да се пополнат во неговите својства.

  • на поле“ Име на методот» ја избира постапката на конкретен општ модул кој директно ќе се изврши. Ќе ги означи сите чекори за прикачување на цените на нашата веб-страница. Ве молиме имајте предвид дека извршувањето ќе се одвива на серверот. Ова е логично, бидејќи рутинските операции се вршат без учество на корисникот.
  • Закажаната задача може да се оневозможи или овозможи по потреба. Нема потреба секој пат да го уредувате неговиот распоред. За да го направите ова, во палетата на својства, поставете или исчистете го знамето " Употреба».
  • Друга важна работа е да поставите дали оваа рутинска задача ќе биде предодредени, или не. Предефинираните закажани задачи се активираат автоматски. Ако оваа функција не е инсталирана, тогаш ќе треба да ја стартувате програмски или да ја користите обработката „Конзола за задачи“ со ITS.
  • Можете исто така да наведете број на повторувања и интервал помеѓу нивво случај на абнормален прекин. Абнормалното раскинување се однесува на оние ситуации кога работите не биле завршени поради грешка.

Поставување распоред

Последниот чекор е да поставите распоред за нашето поставување на страницата користејќи ја соодветната хиперврска во палетата на својства.

Ќе видите типична поставка за распоред во 1C 8.3. Тука нема ништо комплицирано. Во овој пример, го поставивме започнувањето на нашето поставување на цени на страницата секој ден од пет до седум наутро. Во случај закажаната задача да нема време да се заврши пред 7:00 часот, истата ќе биде завршена веќе следниот ден.

Блокирање на закажани задачи

Извршете ја стандардната алатка „Администрирање на 1C Enterprise Servers“ и отворете ги својствата на инфобазата каде што сте ја создале рутинската задача (за верзии на клиент-сервер на 1C).

Во прозорецот што се отвора (откако ќе ги внесете вашето најавување и лозинка за пристап до безбедноста на информациите), проверете дали полето за избор „Блокирањето на рутински задачи е овозможено“ не е избрано. Ако наидете на ситуација кога задачата не работи, прво проверете ја оваа поставка.

На ист начин, можете целосно да ги оневозможите рутинските задачи во 1C 8.3. За да оневозможите одредени задачи во заднина, можете да ја користите обработката „Конзола за работни задачи во заднина“ вградена во најновите изданија.

Заднина и закажани задачи во режим на датотека

Во овој режим, поставувањето и стартувањето на овие задачи е многу потешко да се организираат. Најчесто, дополнителни Сметка, чија седница секогаш ќе биде отворена.

Во овој случај, рутинските задачи се активираат со помош на методот „RunTaskProcessing()“.

Можете исто така да ја користите следната конструкција:

Како име на процедурата, мора да го наведете името на клиентската процедура што ќе се изврши. Интервалот покажува колку секунди подоцна ќе се изврши извршувањето. Параметарот „Еднократен“ не е потребен. Тоа одразува дали ќе се исполни оваа постапкаеднаш или неколку пати.

Грешки во следењето на заднинските задачи

Погледнете го напредокот на задачите во заднина, како и достапноста можни грешкиможе да се најде во дневникот. Во филтерот, изберете ја апликацијата „Работа во заднина“ и, доколку е потребно, изберете ја важноста на интересот, на пример, само „Грешки“.

Дневникот ќе ги прикаже сите записи што одговараат на вашиот избор, заедно со коментар што ќе ви помогне да ја разберете причината за грешката.

Понекогаш има потреба да се дебагира некоја заднина (рутинска) работа. Токму тука често се појавува проблемот.

Понекогаш има потреба да се дебагира некоја заднина (рутинска) работа. Токму тука често се појавува проблемот. И овој проблем е што дебагерот не може да се поврзе со процесот што се извршува на страната на серверот.

За да го решиме овој проблем, треба да решиме два проблема:

1. Овозможете дебагирање на серверот 1C. Стандардно, дебагирањето на серверот е оневозможено и за да го овозможите, мора: Стартувај регистар на Windows, пишувајќи во " Изврши" команда РЕГЕДИТ. Најдете линија

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

(преземено од параметрите за стартување на услугата 1C:Enterprise 8.1 Server Agent). (ова е за платформата верзија 8.1)

Додадете го клучот до крај -дебагирање (Не заборавајте да ставите празно место пред копчето -debug)

Пример
. „ImagePath“= беше "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv81\server" стави "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -опсег 1560:1591 -дебагирање-d "C:\Program Files\1cv81\server"

Рестартирајте го агентот на серверот. Подготвени. Сега можеме да дебагираме нишки за извршување на серверот.

2. Случајот на буквите од името на серверот и името на базата на податоци во клиентската врска со серверот 1C мора точно да се совпаѓаат.

Правилно поврзување:
Работа во заднина Клиент - Srvr="СЕРВЕР-ИМЕ";Реф="Основно_име";
Неправилно поврзување:
Работа во заднина - Srvr="СЕРВЕР-ИМЕ"; Реф="Основно_име"; Клиент - Srvr="Име на сервер";Реф="Основно_име";

Како можете да дознаете со кои параметри заднинската работа се поврзува со базата на податоци? Може да размислите за различни начини, од кои еден е да ги регистрирате овие параметри додека работи заднинската задача.

Кодот е како што следува:

Постапка WriteConnectionWithBase() Извоз
Регистрација за запишување во дневник(,InformationBaseConnectionString());
Крај на постапката

Додека работи заднината работа, линијата со параметрите за поврзување со базата на податоци што ги користи заднинската задача ќе биде запишана во дневникот.


Сега одредуваме автоматско поврзување со задачите во заднина.

По извршувањето на таквите манипулации, можете да ги дебагирате задачите во заднина.


Сè уште не сте го прочитале? Можеби ќе ве интересира...

Дебагирање 1C- многу моќен и функционален механизам на платформата 1C 8.3, кој ви овозможува брзо да пронајдете грешки во програмскиот код (на други програмски јазици ова се нарекува „дебаг“, од англискиот „дебаг“).

Подолу ќе ги разгледаме главните методи за користење на механизмот за дебагирање во форма на практични упатства со користење на конкретен пример.

Внимание!Ако користите режим клиент-сервер (на серверот), ви треба.

Најлесен начин да започнете со дебагирање во 1C е да го отворите 1C во режим и од таму да започнете со режимот за отстранување грешки во саканиот режим на работа (тенок/дебел, управуван/редовен):

Дебагирање на работните места во заднина 1C

За да можете да дебагирате задачи во заднина, треба да отидете во менито „Отстранување грешки - Врска“. Во прозорецот што се отвора, кликнете на копчето „Автоматско поврзување“:

Во овој прозорец можете да го поставите соодветното знаме.

Покрај задачите во заднина, во овој прозорец можете да овозможите дебагирање на надворешни врски, http и .

Поставување точка на прекин

Вториот чекор во дебагирањето е поставување на точка на прекин (во други програмски јазици - точка на прекин).

На пример, го избрав управувачот „On change“ на формуларот за документи за дебагирање:

За да поставите точка на прекин, треба да го пронајдете саканиот програмски код и да кликнете двапати на полето лево од полето за внесување код (или притиснете го копчето F9):

За да видите список на сите инсталирани, треба да отидете во менито Debug - Список на точки на прекин (alt + F9):

Добијте 267 видео лекции на 1C бесплатно:

Точка на прекин 1C со состојба (сина)

Покрај вообичаената точка на прекин во 1C, постои уште еден тип на точка на прекин - со услов. Графички, таквата точка е прикажана во сина боја. Оваа точка на прекин е многу корисна кога треба да фатите одредена итерација додека поминувате низ јамка. Отстранувањето грешки ќе се вклучи кога ќе се исполни одреден услов.

На пример, да ја запреме јамката на линијата број 25:

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

Сивата точка на прекин значи дека не е активна и системот нема да застане на таа точка на прекин. Можете да го направите неактивен со кликнување на специјалното копче на панелот „Оневозможи точка на прекин“ (shift+ctrl+F9):

Точка на прекин на грешка

Системот може да запре поради грешка; за да го направите ова, треба да го поставите соодветното знаменце во менито Debug - Stop by error:

Исто така, запирање на грешка има функционалност слична на условна точка на прекин - ви овозможува да ги филтрирате исклучоците со специфичен текст за грешка.

Чекор-по-чекор движење низ програмскиот код 1C

Откако ќе поставите точка на прекин, мора да започнете со извршување на саканиот програмски код, така што системот ќе влезе во извршување на кодот чекор-по-чекор. Приказот на стрелката го означува почетокот на режимот на чекор-по-чекор извршување на кодот:

За да направите чекор до следната линија, мора да го притиснете копчето „F11″ (Чекор во).

Ако поминете низ линиите на програмскиот код и има процедура или функција на линијата, тогаш ќе „паднете“ во оваа процедура (или функција).

За да не „не успее“, доволно е наместо F11 (Step into) да скокнете низ линиите со копчето F10 (Step through); ова копче ви овозможува да ги поминете процедурите во програмскиот код.

За да се преместите од моменталната позиција на курсорот до саканата, заобиколувајќи ги средните линии на код, треба да го поставите курсорот на саканата линија и да притиснете shift + F10 (Оди на курсорот).

Анализа на вредности во режим за дебагирање 1C

Можете да ги видите значењата на одредени вредности различни начини:

Прикажи ја вредноста на лебди

Кога лебдите над променлива, системот ги „истакнува“ вредностите на променливата:

Користење на Evaluate Expression или Tableau

  • Форма Оценете го изразувањетоможе да се нарече користење контекстното мениили притискање на копчињата за кратенки - (Shift + F9), или менито (Отстранување грешки - Оценете израз).
  • Табла со резултатиповикани со помош на копчињата за кратенки Ctrl + Alt + W или од менито (Debugging - Tableau).

Овие два методи на анализа се многу слични, главните разлики се во интерфејсот. Попогодно е да се користи табла за резултати за група индикатори и изрази за поединечни индикатори.

Овие методи се многу лесни за употреба. Доволно е да го внесете името на саканата променлива во табелата. Голем плус на произволни пресметки е тоа што можете да додадете свои податоци во изразот.

На пример:

Многу е корисно да се користи евалуација на изразот и да се изврши барање, да се постави на табела со вредности и да се погледне.

Како да дознаете од каде е повикана процедура при дебагирање - Стак на повици

Многу често треба да разберете од каде е повикана одредена процедура или функција и со кои параметри. За таа цел, 1C обезбедува посебна функција- „Стак на повици“. За да го стартувате Купот на повици, мора да ги притиснете копчињата за пристап - Ctrl + Alt + C или преку менито (Отстранување грешки - Стак на повици).

Користејќи го, можете детално да дознаете од каде е повикана постапката и со кои параметри:

Ако сте заинтересирани за оценување на перформансите за време на дебагирање - .

Видете исто така прегледно видео за дебагирање во 1C:

Во современите конфигурации 1C: Enterprise, работните места во заднина се широко користени.

Особено, во сите стандардни конфигурации, многу извештаи се генерираат во позадина, што ви овозможува да продолжите да работите во истата 1C сесија за време на генерирањето на извештајот без да чекате извештајот да заврши со извршување. И секако дека има потреба дебагирање код додека работат заднинските задачи. За успешно да започнете со дебагирање задни задачи, мора да се исполнат неколку услови.

Овозможете го режимот за отстранување грешки на серверот 1C:Enterprise.

Првото нешто што треба да направите е да бидете сигурни дека серверот 1C:Enterprise работи во режим за отстранување грешки. Ако дебагирањето не е овозможено на серверот, мора да ја прекинете услугата рагенти повторно стартувајте го со параметарот /дебаг

Конфигурирајте автоматско поврзување на задачите во заднина во конфигураторот

Бидејќи задачата во заднина нема дел од клиентот, конфигураторот конфигурира автоматско поврзување со задачите во заднина. За да го направите ова, изберете ја ставката во менито Отстранување грешки -> Врска

Во полето за дијалог што се отвора, кликнете на копчето Автоматско поврзувањеа во следниот прозорец проверете го полето Работи во заднина

Правилно внесете ја низата за поврзување со базата на податоци 1C

Теоретски, двете точки наведени погоре треба да бидат доволни за да се активираат точки на прекин кога работи заднина. Но, во пракса, многумина се соочуваат со фактот дека автоматското поврзување со работните места во заднина не се случува. Ова е поврзано со низата за поврзување со инфобазата.

Поентата е дека низата за поврзување за стартување на конфигураторот мора точно да одговара на низата за поврзување на задачата во заднина. Покрај тоа, натпреварот мора да биде карактер по лик. Се зема предвид дури и случајот со буквите. На крајот на краиштата, кога додавате база на списокот информативни базиможеме да регистрираме кластер од сервери за иста база на податоци на неколку различни начини: користејќи IP адреса, преку името на серверот, со или без назначување на порта. И сите овие различни жици за поврзување можат да работат подеднакво добро. Но, при дебагирање на работните места во заднина, може да се појават проблеми. Така, на пример, се соочив со фактот дека во списокот со бази на податоци имав низа за поврзување користејќи ја портата

Srvr="Server1C:1541";Ref="Тест";

И поради некоја причина, задачата во заднина беше лансирана без да се наведе пристаништето

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

Затоа, морав соодветно да ја сменам низата за поврзување во списокот со бази на податоци.
Но, тука веднаш се поставува прашањето. Како можам да ја дознаам низата за поврзување на заднинската работа? Ова е местото каде. На крајот на краиштата, додека работи заднинската работа, можеме програмски да правиме записи во дневникот. И користејќи ја процедурата InformationBaseConnectionString()можеме да ја добиеме низата за поврзување.

Така, тоа го правиме во соодветен општ модул (за мене ќе биде BackgroundTasksServer) еве ја постапката

Постапка LogConnectionString() ExportConnectionString = InformationBaseConnectionString() ; LogRegistration (ConnectionString) ; Крај на постапката

Сега да ја извршиме оваа постапка со извршување:

Процедура на &OnServer WriteConnectionStringOnServer() BackgroundTasks. Трчај ( „BackgroundTasksServer.WriteConnectionStringToLog“) ; Крај на постапката

Го отвораме дневникот за регистрација, го гледаме записот со низата за поврзување и ги регистрираме поставките за поврзување со базата на податоци по аналогија со задачата во заднина.




Врв