1c kaip derinti įprastą užduotį. Foninių darbų derinimas

Kartais reikia derinti foninį (įprastą) darbą. Būtent čia dažnai iškyla problema.

Kartais reikia derinti foninį (įprastą) darbą. Būtent čia dažnai iškyla problema. Ir ši problema yra ta, kad derinimo priemonė negali prisijungti prie proceso, veikiančio serverio pusėje.

Norėdami išspręsti šią problemą, turime išspręsti dvi problemas:

1. Įgalinkite derinimą 1C serveryje. Pagal numatytuosius nustatymus derinimas serveryje yra išjungtas ir norėdami jį įjungti, turite: Vykdyti Windows registras, rašyti " Vykdyti“ komandą REGEDIT. Rasti liniją

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

(paimta iš 1C:Enterprise 8.1 serverio agento paslaugos paleisties parametrų). (tai skirta 8.1 platformos versijai)

Pridėkite raktą prie galo - derinti (Nepamirškite prieš klavišą -debug įdėti tarpo)

Pavyzdys
. "ImagePath" = buvo "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -prievadas 1540 -diapazonas 1560:1591 -d "C:\Program Files\1cv81\serveris" įdėti "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -prievadas 1540 -diapazonas 1560:1591 - derinti-d "C:\Program Files\1cv81\serveris"

Iš naujo paleiskite serverio agentą. Paruošta. Dabar galime derinti serverio vykdymo gijas.

2. Kliento jungtyje su 1C serveriu turi tiksliai sutapti serverio pavadinimo ir duomenų bazės pavadinimo raidžių didžiosios ir mažosios raidės.

Teisingas ryšys:
Fono darbas Klientas - Srvr="SERVERIO PAVADINIMAS";Ref="Pagrindinis_pavadinimas";
Neteisingas ryšys:
Fono darbas - Srvr="SERVER-PAVADINIMAS";Ref="Pagrindinis_pavadinimas"; Klientas - Srvr="Serverio pavadinimas";Ref="Pagrindinis_pavadinimas";

Kaip sužinoti, kokiais parametrais foninė užduotis jungiasi prie duomenų bazės? Galite galvoti apie įvairius būdus, vienas iš kurių yra šių parametrų registravimas, kai vykdoma foninė užduotis.

Kodas yra toks:

Procedūra WriteConnectionWithBase() Eksportas
Žurnalo įrašų registracija(,InformationBaseConnectionString());
Procedūros pabaiga

Vykstant foninei užduočiai, į žurnalą bus įrašyta eilutė su duomenų bazės ryšio parametrais, kuriuos naudoja foninė užduotis.


Dabar mes nurodome automatinis ryšysį foninius darbus.

Atlikę tokias manipuliacijas, galite derinti fonines užduotis.


Ar dar neskaitėte? Galbūt jus domina...

Derinimas 1C- labai galingas ir funkcionalus 1C 8.3 platformos mechanizmas, leidžiantis greitai rasti klaidas programos kode (kitomis programavimo kalbomis tai vadinama „debug“, iš anglų kalbos „debug“).

Žemiau mes apsvarstysime pagrindinius derinimo mechanizmo naudojimo būdus praktinių instrukcijų forma, naudojant konkretų pavyzdį.

Dėmesio! Jei naudojate kliento-serverio režimą (serveryje), jums reikia.

Lengviausias būdas pradėti derinti 1C yra atidaryti 1C režimu ir nuo jo pradėti derinimo režimą norimą režimą darbas (plonas/storas, kontroliuojamas/įprastas):

Foninių užduočių derinimas 1C

Kad galėtumėte derinti fonines užduotis, turite eiti į meniu „Debugging – Connection“. Atsidariusiame lange spustelėkite mygtuką „Automatinis ryšys“:

Šiame lange galite nustatyti atitinkamą vėliavėlę.

Be foninių užduočių, šiame lange galite įjungti išorinių jungčių, http ir , derinimą.

Pertraukos taško nustatymas

Antrasis derinimo žingsnis yra lūžio taško nustatymas (kitomis programavimo kalbomis - lūžio taškas).

Pavyzdžiui, derinimui pasirinkau dokumento formoje esantį tvarkyklę „Pakeitime“:

Norint nustatyti pertraukos tašką, reikia rasti norimą programos kodą ir dukart spustelėti laukelį, esantį kairėje nuo kodo įvedimo lauko (arba paspausti mygtuką F9):

Norėdami pamatyti visų įdiegtų programų sąrašą, turite eiti į Debug meniu - Pertraukos taškų sąrašas (alt + F9):

Gaukite 267 vaizdo įrašų pamokas 1C nemokamai:

Lūžio taškas 1C su sąlyga (mėlyna)

Be įprastos 1C lūžio taško, yra dar vienas lūžio taško tipas – su sąlyga. Grafiškai toks taškas rodomas mėlynai. Šis lūžio taškas yra labai naudingas, kai reikia sugauti konkrečią iteraciją kertant kilpą. Derinimas bus įjungtas, kai bus įvykdyta tam tikra sąlyga.

Pavyzdžiui, sustabdykime kilpą ties 25 eilutės numeriu:

Neaktyvus pertraukos taškas (pilka)

Pilka pertraukos taškas reiškia, kad jis neaktyvus ir sistema prie to nesustos. Galite padaryti jį neaktyvų spustelėdami specialus mygtukas skydelyje „Išjungti lūžio tašką“ (Shift+ctrl+F9):

Klaidos lūžio taškas

Sistema gali sustoti dėl klaidos; norėdami tai padaryti, meniu Debug - Stop by error reikia nustatyti atitinkamą vėliavėlę:

Be to, klaidos sustabdymas turi funkciją, panašią į sąlyginio lūžio tašką – leidžia filtruoti išimtis su konkrečiu klaidos tekstu.

Žingsnis po žingsnio judėjimas per 1C programos kodą

Nustačius pertraukos tašką, reikia pradėti vykdyti norimą programos kodas kad sistema pradėtų žingsnis po žingsnio vykdyti kodą. Rodyklės ekrane rodomas žingsnis po žingsnio kodo vykdymo režimo pradžia:

Norint žengti žingsnį link kitą eilutę, turite paspausti mygtuką „F11“ (įeiti).

Jei pereisite per programos kodo eilutes ir eilutėje yra procedūra arba funkcija, tada „pateks“ į šią procedūrą (arba funkciją).

Kad „nepavyktų“, užtenka vietoj F11 (Step into) peršokti eilutes mygtuku F10 (Step through), šiuo mygtuku galite pereiti per programos kode esančias procedūras.

Norėdami pereiti iš esamos žymeklio padėties į norimą vietą, apeinant tarpines kodo eilutes, reikia uždėti žymeklį ant norimos eilutės ir paspausti Shift + F10 (Eiti į žymeklį).

Vertybių analizė 1C derinimo režimu

Galite peržiūrėti tam tikrų vertybių reikšmes Skirtingi keliai:

Rodyti vertę užvedus pelės žymeklį

Užvedus pelės žymeklį virš kintamojo, sistema „paryškina“ kintamojo reikšmes:

Naudojant Evaluate Expression arba Tableau

  • Forma Įvertinkite išraišką galima vadinti naudojant kontekstinis meniu arba spaudžiant sparčiuosius klavišus- (Shift + F9) arba meniu (Debug - Įvertinkite išraišką).
  • Rezultatų lentelė skambinama naudojant sparčiuosius klavišus Ctrl + Alt + W arba iš meniu (Debugging - Tableau).

Šie du analizės metodai yra labai panašūs, pagrindiniai skirtumai yra sąsajoje. Rodiklių grupei patogiau naudoti rezultatų suvestinę, o atskiriems rodikliams – išraiškas.

Šiuos metodus labai paprasta naudoti. Lentelėje pakanka įvesti norimo kintamojo pavadinimą. Didelis savavališkų skaičiavimų pliusas yra tai, kad į išraišką galite įtraukti savo duomenis.

Pavyzdžiui:

Labai naudinga naudoti išraiškų vertinimą ir paleisti užklausą, įkelti ją į reikšmių lentelę ir pažiūrėti.

Kaip sužinoti, iš kur derinant iškviečiama procedūra – skambučių krūva

Labai dažnai reikia suprasti, iš kur ir kokiais parametrais buvo iškviesta konkreti procedūra ar funkcija. Šiuo tikslu 1C numato speciali funkcija- „Skambučių krūva“. Norėdami paleisti skambučių krūvą, turite paspausti sparčiuosius klavišus - Ctrl + Alt + C arba per meniu (Debugging - Call Stack).

Naudodamiesi juo galite išsamiai sužinoti, iš kur ir kokiais parametrais buvo iškviesta procedūra:

Jei norite įvertinti našumą derinimo metu - .

Taip pat žiūrėkite apžvalginį vaizdo įrašą apie derinimą 1C:

Šiuolaikinėse 1C:Enterprise konfigūracijose foninės užduotys yra plačiai naudojamos.

Visų pirma, visose standartinėse konfigūracijose daug ataskaitų generuojama fone, kuri leidžia tęsti darbą toje pačioje 1C sesijoje generuojant ataskaitas, nelaukiant, kol ataskaita bus baigta vykdyti. Ir, žinoma, yra poreikis derinimo kodas, kai veikia foninės užduotys. Norint sėkmingai pradėti derinti fonines užduotis, turi būti įvykdytos kelios sąlygos.

Įgalinkite derinimo režimą 1C:Enterprise serveryje.

Pirmas dalykas, kurį turite padaryti, yra įsitikinti, kad 1C: Enterprise serveris veikia derinimo režimu. Jei derinimas neįjungtas serveryje, turite sustabdyti paslaugą siautulingas ir paleiskite jį iš naujo naudodami parametrą /debug

Konfigūruokite automatinį foninių užduočių prijungimą konfigūravimo priemonėje

Kadangi foninė užduotis neturi kliento dalies, konfigūravimo priemonė sukonfigūruoja automatinį ryšį su foninėmis užduotimis. Norėdami tai padaryti, meniu pasirinkite elementą Debug -> Connection

Atsidariusiame dialogo lange spustelėkite mygtuką Automatinis ryšys ir kitame lange pažymėkite langelį Fono darbai

Teisingai įveskite ryšio eilutę į 1C duomenų bazę

Teoriškai dviejų aukščiau išvardytų taškų turėtų pakakti, kad būtų suaktyvinti lūžio taškai, kai vykdoma foninė užduotis. Tačiau praktiškai daugelis susiduria su tuo, kad automatinis prisijungimas prie foninių darbų neįvyksta. Tai susiję su ryšio su informacijos baze eilute.

Esmė ta, kad ryšio eilutė, skirta konfigūravimo programai paleisti, turi tiksliai atitikti foninės užduoties ryšio eilutę. Be to, rungtynės turi vykti po simbolio. Atsižvelgiama net į raidžių atvejį. Juk įtraukdami duomenų bazę į infobazių sąrašą galime registruoti serverių klasterį tai pačiai duomenų bazei keliais skirtingais būdais: naudojant IP adresą, per serverio pavadinimą, nurodant prievadą arba jo nenurodant. Ir visos šios skirtingos ryšio eilutės gali veikti vienodai gerai. Tačiau derinant fonines užduotis gali kilti problemų. Taigi, pavyzdžiui, aš susidūriau su tuo, kad duomenų bazių sąraše turėjau ryšio eilutę naudojant prievadą

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

Ir kažkodėl foninė užduotis buvo paleista nenurodant prievado

Srvr="Serveris1C";Ref="Test";

Todėl duomenų bazių sąraše turėjau atitinkamai pakeisti ryšio eilutę.
Bet čia iš karto kyla klausimas. Kaip sužinoti foninio darbo ryšio eilutę? Štai kur. Galų gale, kol vykdoma foninė užduotis, mes galime programiškai daryti įrašus žurnale. Ir naudojant procedūrą InformationBaseConnectionString() galime gauti ryšio eilutę.

Taigi, mes tai darome tinkamame bendrame modulyje (man tai bus BackgroundTasksServer) štai procedūra

Procedūra LogConnectionString() ExportConnectionString = InformationBaseConnectionString() ; LogRegistration(ConnectionString) ; Procedūros pabaiga

Dabar atlikime šią procedūrą paleisdami:

&OnServer procedūra WriteConnectionStringOnServer() BackgroundTasks. Paleisti ( „BackgroundTasksServer.WriteConnectionStringToLog“) ; Procedūros pabaiga

Atidarome registracijos žurnalą, žiūrime į įrašą su ryšio eilute ir registruojame prisijungimo prie duomenų bazės nustatymus pagal analogiją su fono užduotimi.

Tikriausiai nė viena rimta 1C 8.3 ar 8.2 konfigūracija neapsieina be įprastų ir foninių užduočių. Jie yra labai patogūs, nes bus vykdomi pagal aiškiai apibrėžtą grafiką be vartotojo ar programuotojo įsikišimo.

Pavyzdžiui, kartą per dieną reikia keistis duomenimis su kita programa. Naudodamas įprastas ir fonines užduotis, 1C šiuos veiksmus galės atlikti savarankiškai, pavyzdžiui, ne darbo valandomis. Šis metodas niekaip nepaveiks vartotojo patirties ir padės sutaupyti laiko.

Pirmiausia išsiaiškinkime, ką jie reiškia ir kuo skiriasi:

  • Suplanuota užduotis leidžia pradėti bet kokius konkrečius veiksmus pagal iš anksto sukonfigūruotą tvarkaraštį.
  • Fono darbas yra objektas, kuriame yra atliktini veiksmai.

Tarkime, kad mūsų įmonė kažką parduoda ir turi savo svetainę, kurioje pateikiamos kainos. Norime juos įkelti kartą per dieną, kad išlaikytume aktualumą.

Atidarykite konfigūraciją ir pridėkite rutininė užduotis.

Savybių nustatymas

Apsvarstykime labiausiai svarbius parametrus, kuris turi būti užpildytas jo savybėmis.

  • Lauke" Metodo pavadinimas» pasirenkama tam tikra procedūra bendras modulis, kuris bus vykdomas tiesiogiai. Jame bus nurodyti visi kainų įkėlimo į mūsų svetainę žingsniai. Atkreipkite dėmesį, kad vykdymas vyks serveryje. Tai logiška, nes įprastinės operacijos atliekamos be vartotojo dalyvavimo.
  • Suplanuotą užduotį galima išjungti arba įjungti, jei reikia. Nereikia kiekvieną kartą redaguoti jo tvarkaraščio. Norėdami tai padaryti, savybių paletėje nustatykite arba išvalykite vėliavėlę " Naudojimas».
  • Kitas svarbus dalykas – nustatyti, ar ši įprasta užduotis bus iš anksto nustatytas, arba ne. Iš anksto nustatytos suplanuotos užduotys paleidžiamos automatiškai. Jei ši funkcija neįdiegta, turėsite jas paleisti programiškai arba naudoti „Task Console“ apdorojimą su ITS.
  • Taip pat galite nurodyti pakartojimų skaičius ir intervalas tarp jų nenormalaus nutraukimo atveju. Neįprastas nutraukimas reiškia situacijas, kai darbai nebuvo užbaigti dėl klaidos.

Tvarkaraščio sudarymas

Paskutinis veiksmas yra mūsų įkėlimo į svetainę grafiko nustatymas naudojant atitinkamą hipersaitą ypatybių paletėje.

Jis atsidarys prieš jus tipinis nustatymas tvarkaraščiai 1C 8.3. Čia nėra nieko sudėtingo. Viduje šis pavyzdys Mes nustatėme, kad kainų įkėlimas į svetainę bus paleistas kasdien nuo penkių iki septynių ryto. Tuo atveju, jei suplanuotos užduoties nespėjama atlikti iki 7:00, ji bus atlikta jau kitą dieną.

Suplanuotų užduočių blokavimas

Bėk standartinis naudingumas„1C Enterprise serverių administravimas“ ir atidarykite to ypatybes informacinė bazė, kur sukūrėte įprastą užduotį (1C kliento-serverio versijoms).

Atsidariusiame lange (įvedę savo prisijungimo vardą ir slaptažodį, kad galėtumėte pasiekti informacijos saugą) patikrinkite, ar nepažymėtas langelis „Įprastų užduočių blokavimas įjungtas“. Jei susiduriate su situacija, kai užduotis neveikia, pirmiausia patikrinkite šį nustatymą.

Taip pat galite visiškai išjungti įprastas užduotis 1C 8.3. Norėdami išjungti konkrečias fonines užduotis, galite naudoti „Background Job Console“ apdorojimą, integruotą į naujausius leidimus.

Fonas ir suplanuotos užduotys failo režimu

Šiuo režimu šias užduotis nustatyti ir paleisti yra daug sunkiau organizuoti. Dažniausiai papildomas sąskaita, kurio sesija visada bus atvira.

Šiuo atveju įprastinės užduotys aktyvuojamos naudojant „RunTaskProcessing()“ metodą.

Taip pat galite naudoti šią konstrukciją:

Kaip procedūros pavadinimą turite nurodyti kliento procedūros, kuri bus vykdoma, pavadinimą. Intervalas rodo, kiek sekundžių vėliau bus vykdoma. Parametras „Vienkartinis“ nebūtinas. Tai atspindi, ar ši procedūra bus atliekama vieną ar kelis kartus.

Stebėjimo klaidos atliekant fonines užduotis

Peržiūrėkite foninių užduočių eigą ir pasiekiamumą galimos klaidos galima rasti žurnale. Filtre pasirinkite programą „Foninis darbas“ ir, jei reikia, pasirinkite dominančio svarbą, pavyzdžiui, tik „Klaidos“.

Žurnale bus rodomi visi jūsų pasirinkimą atitinkantys įrašai kartu su komentaru, kuris padės suprasti klaidos priežastį.

Dalintis