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:Vale ühendus:
Tausttöö 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:
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öö.
Mõelgem kõige olulisematele parameetritele, mis tuleb selle omadustes täita.
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.
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".
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.
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.
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
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
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õppNüüd viime selle protseduuri läbi, käivitades:
& AtServer Protseduur WriteConnectionStringOnServer () Taustatööd. Käivita ( "BackgroundJobsServer.WriteToLogoConnectionString"); Menetluse lõppAvame 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):
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.
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:
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:
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):
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.
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).
Teatud väärtuste väärtusi saate vaadata erineval viisil.
Kui hõljutate kursorit muutuja kohal, tõstab süsteem muutuja väärtused esile:
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.
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: