Taustatööde silumine. Tausttööde silumine Tausttööde silumine 1s 8.3

06.10.2021 Ehitised

Mõnikord osutub vajalikuks tausta (ajastatud) töö silumine. Sellega sageli tekibki probleem.

Mõnikord osutub vajalikuks tausta (ajastatud) töö silumine. Sellega sageli tekibki probleem. Ja see probleem seisneb selles, et silur ei saa serveri poolel käivitatava protsessiga ühendust luua.

Selle probleemi lahendamiseks peame lahendama kaks probleemi:

1. Luba silumine 1C serveris. Vaikimisi on silumine serveris keelatud ja selle lubamiseks peate: Käivitama Windowsi registri, sisestades " Käivita"käsk REGEDIT... Leidke joon

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

(võetud teenuse 1C: Enterprise 8.1 Server Agent teenuse käivitusparameetritest). (see on platvormi versiooni 8.1 jaoks)

Lisage võti lõpuni -silumine (ärge unustage tühiku enne -debug lülitit panna)

Näide
... "ImagePath" = See oli "C: \ Program Files \ 1cv81 \ bin \ ragent.exe "-srvc -agent -regport 1541 -port 1540 -range 1560: 1591 -d" C: \ Program Files \ 1cv81 \ server " panna "C: \ Program Files \ 1cv81 \ bin \ ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560: 1591 -silumine-d "C: \ Program Files \ 1cv81 \ server"

Taaskäivitage serveri agent. Valmis. Nüüd on meil saadaval serveri lõimede silumine.

2. Serverinime ja põhinime tähtede tähestik kliendi ja 1C serveri vahelises ühenduses peab täpselt ühtima.

Õige ühendus:
Tausttöö Klient - Srvr = "SERVERI NIMI"; Ref = "Base_Name";
Vale ühendus:
Tausttöö - Srvr = "SERVER-NAME"; Ref = "Base_Name"; Klient - Srvr = "Serveri nimi"; Ref = "Base_Name";

Kuidas teate, milliseid parameetreid tausttöö andmebaasiga ühenduse loomiseks kasutab? Võib mõelda erinevatele meetoditele, millest üks on nende parameetrite logimine tausttöö teostamise ajal.

Kood on järgmine:

Menetlus WriteConnectionWithBase() Eksport
Logi RecordRegister(,InfoBaseConnectionString());
Menetluse lõpp

Taustatöö teostamise ajal kirjutatakse logisse rida taustatöö kasutatavate andmebaasiühenduse parameetritega.


Nüüd määrame automaatse ühenduse taustatöödega.

Pärast selliste manipulatsioonide tegemist saate tausttöid siluda.


Kas te pole seda veel lugenud? See saab teile huvitav olema ...

Tõenäoliselt ei saa ükski tõsine konfiguratsioon 1C 8.3 või 8.2 -s hakkama ilma plaaniliste ja taustatööde kasutamiseta. Need on väga mugavad, kuna neid täidetakse selgelt määratletud ajakava järgi ilma kasutaja või programmeerija sekkumiseta.

Näiteks peate kord päevas andmeid vahetama teise programmiga. Ajastatud ja taustaülesandeid kasutades saab 1C neid toiminguid iseseisvalt teha, näiteks töövälisel ajal. See meetod ei mõjuta mingil viisil kasutajakogemust ja aitab säästa aega.

Kõigepealt selgitame välja, mida need tähendavad ja mis neil vahet on:

  • Rutiinne ülesanne võimaldab teil teha konkreetseid toiminguid vastavalt eelseadistatud ajakavale.
  • Tausttöö Kas objekt, mis sisaldab tehtavaid toiminguid.

Oletame, et meie ettevõte müüb midagi ja tal on oma veebisait hindadega. Soovime need üks kord päevas maha laadida, et säilitada nende asjakohasus.

Avage konfiguratsioon ja lisage ajastatud töö.

Atribuutide seadistamine

Mõelgem kõige olulisematele parameetritele, mis tuleb selle omadustes täita.

  • Põllul " Meetodi nimi»Valitakse teatud üldmooduli protseduur, mis täidetakse otse. See näitab kõiki toiminguid hindade üleslaadimiseks meie saidile. Pange tähele, et täitmine toimub serveris. See on loogiline, sest rutiinsed toimingud tehakse ilma kasutaja sekkumiseta.
  • Ajastatud töö saab vajadusel keelata või lubada. Te ei pea tema ajakava iga kord muutma. Selleks märkige või tühjendage ruut " Kasutamine».
  • Teine oluline säte on see, kas see ajastatud ülesanne saab olema ettemääratud, või mitte. Ettemääratud ajastatud tööd algavad automaatselt. Kui see märk pole määratud, peate need programmiliselt käivitama või kasutama ITS -i "Task Console" töötlemist.
  • Saate ka täpsustada korduste arv ja nende vaheline intervall ebanormaalse lõpetamise korral. Ebanormaalne lõpetamine viitab olukordadele, kus ülesanded ei töötanud vea tõttu.

Ajakava seadistamine

Viimases etapis seadistame saidile üleslaadimise ajakava, kasutades atribuutide paleti vastavat hüperlingi.

Tüüpilist ajakava seadistust näete jaotises 1C 8.3. Siin pole midagi keerulist. Selle näite raames alustasime saidi hindade mahalaadimist iga päev kella viiest hommikul seitsmeni. Juhul, kui plaanitud ülesande täitmiseks pole aega enne kella 7.00, täidetakse see järgmisel päeval.

Ajastatud tööde blokeerimine

Käivitage standardne utiliit "1C Enterprise'i serverite haldamine" ja avage selle teabebaasi atribuudid, kus te ajastatud ülesande lõite (1C kliendi-serveri versioonide jaoks).

Kontrollige avanevas aknas (pärast IB -le juurdepääsu sisselogimise ja parooli sisestamist), et üksus "Ajastatud ülesannete blokeerimine on lubatud" pole märgitud. Kui seisate silmitsi olukorraga, kus ülesanne ei õnnestu, kontrollige kõigepealt seda seadet.

Samamoodi saate jaotises 1C 8.3 ajastatud ülesanded täielikult keelata. Konkreetsete taustatööde keelamiseks võite kasutada uusimate väljaannete sisseehitatud töötlemist "Taustatöökonsool".

Tausta- ja ajastatud ülesanded failirežiimis

Selles režiimis on nende tööde seadistamist ja käivitamist palju keerulisem korraldada. Kõige sagedamini luuakse täiendav konto, mille seanss on alati avatud.

Sel juhul aktiveeritakse ajastatud tööd, kasutades meetodit "RunJobProcessing ()".

Võite kasutada ka järgmist konstruktsiooni:

Protseduuri nimena peate määrama täidetava kliendiprotseduuri nime. Intervall näitab, mitu sekundit täitmine võtab. Parameeter "Üks kord" on valikuline. See kajastab, kas seda protseduuri tehakse üks või mitu korda.

Vigade jälgimine tausttöödel

Saate vaadata taustaülesannete edenemist ja võimalike vigade olemasolu logis. Seadistage filtris filter rakendusele "Tausttöö" ja vajadusel valige huvipakkuv tähtsus, näiteks ainult "Vead".

Logis kuvatakse kõik teie valikule vastavad kirjed koos vea põhjuse märkusega.

Taustatöid kasutatakse laialdaselt kaasaegsetes 1C: Enterprise konfiguratsioonides.

Eelkõige genereeritakse kõigi tüüpiliste konfiguratsioonide korral palju aruandeid taustal, mis võimaldab teil aruande koostamise ajal jätkata tööd samal 1C seansil, ootamata aruande valmimist. Ja muidugi tekib vajadus silumiskoodi tausttööde ajal... Taustatööde silumise edukaks alustamiseks peavad olema täidetud mitmed tingimused.

Silumisrežiimi lubamine serveris 1C: Enterprise.

Esimene asi, mida teha, on veenduda, et 1C: Enterprise server töötab silumisrežiimis. Kui silumine pole serveris lubatud, peate teenuse peatama ragent ja käivitage see parameetriga uuesti / silumine

Konfigureerige taustatööde automaatne ühendamine

Kuna taustal ei ole kliendiosa, konfigureerib konfiguraator automaatse ühenduse tausttöödega. Selleks valige menüüst üksus Silumine -> Ühenda

Avanevas dialoogiboksis klõpsake nuppu Automaatne ühendus ja märkige ruut järgmises aknas Taustatööd

Registreerige ühenduse string õigesti 1C andmebaasi

Teoreetiliselt peaks ülaltoodud kahest punktist piisama, et käivitada katkestuspunktid tausttöö teostamise ajal. Kuid praktikas seisavad paljud silmitsi asjaoluga, et automaatset ühendust tausttööga ei toimu. See on seotud infobaasi ühendusstringiga.

Asi on selles, et konfiguraatori käivitamiseks kasutatav ühendusstring peab täpselt vastama taustatöö ühendustringile. Pealegi peab vaste olema tähemärgi haaval. Isegi kirjade juhtumit arvestatakse. Tõepoolest, andmebaasi lisamisel infobaaside loendisse saame registreerida serveriklastri sama andmebaasi jaoks mitmel erineval viisil: kasutades IP -aadressi, serveri nime kaudu, pordiga ja ilma. Ja kõik need erinevad ühendusstringid võivad töötada võrdselt hästi. Kuid tausttööde silumisel võivad probleemid alata. Nii sattusin näiteks tõsiasjale, et baaside loendis oli mul pordi abil ühendusstring

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

Ja millegipärast algas taustatöö sadamat täpsustamata

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

Seetõttu pidin vastavalt muutma aluste loendis olevat ühendusstringi.
Aga siis tekib kohe küsimus. Kuidas ma saan teada tausttöö ühendustringi? Siin saab meid aidata. Tõepoolest, taustaülesande täitmise ajal saame logiraamatusse programmiliselt kandeid teha. Ja protseduuri kasutades InfoBaseConnectionString () saame ühenduse stringi.

Seega teeme seda sobivas ühises moodulis (mul on see BackgroundJobsServer) see on protseduur

Protseduur WriteInLogConnectionString () ExportConnectionString = InformationBaseConnectionString (); LogRecord (ConnectionString); Menetluse lõpp

Nüüd viime selle protseduuri läbi, käivitades:

& AtServer Protseduur WriteConnectionStringOnServer () Taustatööd. Käivita ( "BackgroundJobsServer.WriteToLogoConnectionString"); Menetluse lõpp

Avame registreerimislogi, vaatame ühenduse stringi sisestust ja kirjutame andmebaasiga ühenduse loomise seaded analoogselt tausttööga.

Silumine 1C- väga võimas ja funktsionaalne platvormi 1C 8.3 mehhanism, mis võimaldab teil kiiresti leida vead programmi koodist (teistes programmeerimiskeeltes nimetatakse seda "silumiseks", inglise keeles "silumine").

Allpool käsitleme silumismehhanismi kasutamise peamisi meetodeid praktiliste juhiste kujul konkreetse näite abil.

Tähelepanu! Kui kasutate kliendi-serveri töörežiimi (serveris), peate seda tegema.

Lihtsaim viis silumise alustamiseks 1C -s on režiimi 1C avamine ja sellest silumisrežiimi käivitamine soovitud töörežiimis (õhuke / paks, hallatud / tavaline):

1C tausta tööde silumine

Taustatööde silumiseks peate minema menüüsse "Silumine - ühendamine". Avanevas aknas klõpsake nuppu "Automaatne ühendus":

Selles aknas saate määrata vastava lipu.

Lisaks taustaülesannetele saate selles aknas lubada välisühenduste silumise, http ja.

Katkestuspunkti seadmine

Silumise teine ​​samm on katkestuspunkti seadmine (teistes programmeerimiskeeltes katkestuspunkt).

Näitena valisin silumiseks dokumendivormi käskluse "On Change":

Katkestuspunkti määramiseks peate leidma vajaliku programmi koodi ja topeltklõpsama koodi sisestusvälja vasakul väljal (või vajutama nuppu F9):

Kõigi installitud loendite vaatamiseks peate minema silumismenüüsse - Murdepunktide loend (alt + F9):

Hankige tasuta 267 1C videoõpetust:

Murdepunkt 1C tingimustega (sinine)

Lisaks tavapärasele 1C katkestuspunktile on olemas ka teist tüüpi murdepunkt - tingimusega. Graafiliselt kuvatakse selline punkt sinisena. Selline murdepunkt on väga kasulik, kui teil on vaja tsüklis liikudes tabada konkreetseid iteratsioone. Silumine lülitatakse sisse hetkel, kui teatud tingimus on täidetud.

Näiteks peatage silmus 25. real:

Mitteaktiivne murdepunkt (hall)

Hall katkestuspunkt tähendab, et see pole aktiivne, süsteem ei peatu sellel hetkel. Saate selle passiivseks muuta, klõpsates paneelil „Keela murdepunkt” spetsiaalset nuppu (tõstuklahv + ctrl + F9):

Murdepunkt ekslikult

Süsteem võib vea tõttu seiskuda, selleks peate menüüs Silumine - peatage eksikombel määrama sobiva lipu:

Samuti on kogemata peatumisel funktsionaalsus, mis sarnaneb peatumispunktile koos tingimusega - see võimaldab konkreetse veatekstiga erandeid välja filtreerida.

Samm-sammuline liikumine programmi 1C kaudu

Pärast katkestuspunkti seadistamist on vaja algatada nõutud programmikoodi täitmine, et süsteem saaks samm-sammult koodi käivitada. Kui kuvatakse nool, on aktiveeritud koodi astumise režiim:

Järgmisele reale astumiseks peate vajutama nuppu "F11" (astu sisse).

Kui astute samm -sammult läbi programmi koodi read ja sellel real on protseduur või funktsioon, siis "kukute" selle protseduuri (või funktsiooni) sisse.

Selleks, et mitte "läbi kukkuda", piisab F11 (Step in) asemel ridadest läbi hüppamisest nupuga F10 (Step through), see nupp võimaldab teil programmi koodis olevaid protseduure läbi astuda.

Kursori praegusest positsioonist soovitud kohale liikumiseks, minnes vahele vahepealsetest koodiridadest, peate kursori viima soovitud reale ja vajutama tõstuklahvi + F10 (Mine kursori juurde).

Väärtuste analüüs 1C silumisrežiimis

Teatud väärtuste väärtusi saate vaadata erineval viisil.

Kuva väärtus hõljutamisel

Kui hõljutate kursorit muutuja kohal, tõstab süsteem muutuja väärtused esile:

Väljendi hindamise või tulemustabeli kasutamine

  • Vorm Hinnake väljendust saab helistada kontekstimenüü abil või vajutades kiirklahve - (tõstuklahv + F9) või menüüd (silumine - avaldise hindamine).
  • Tulemustabel helistamiseks kiirklahvidega Ctrl + Alt + W või menüüst (silumine - tulemustabel).

Need kaks analüüsimeetodit on väga sarnased, peamised erinevused on liideses. Tulemustabelit on mugavam kasutada näitajate, väljendite - üksikute rühmade jaoks.

Neid meetodeid on väga lihtne kasutada. Piisab, kui sisestada ekraanile vajaliku muutuja nimi. Meelevaldsete arvutuste suur pluss on see, et saate avaldisele oma andmeid lisada.

Näiteks:

On väga kasulik kasutada avaldiste hindamist ja käivitada päring, visata see väärtustabelisse ja seda vaadata.

Kuidas teada saada, kust protseduuri silumisel kutsutakse - Call stack

Väga sageli peate mõistma, kust see või teine ​​protseduur või funktsioon kutsuti ja milliste parameetritega. Selleks pakub 1C erifunktsiooni - "Kõnepinu". Kõnepinu käivitamiseks vajutage kiirklahve - Ctrl + Alt + C või menüü kaudu (silumine - kõnede virn).

Seda kasutades saate üksikasjalikult teada, kust protseduur välja kutsuti ja milliste parameetritega:

Kui olete silumise ajal huvitatud jõudluse hindamisest -.

Vaata ka ülevaadet 1C silumise kohta: