1c rutineoppgaver. Bakgrunnsoppgaver: funksjoner, muligheter, innstillinger. – Oppdatering av regnskapsføreroppgaver


Hvordan øke hastigheten på arbeidet i 1C: Accounting 8.3 (versjon 3.0) eller deaktivere rutine- og bakgrunnsoppgaver

2019-01-15T13:28:19+00:00

De av dere som allerede har klart å bytte til den nye utgaven av 1C: Accounting 8.3 (versjon 3.0) har lagt merke til at den har blitt tregere enn toeren. Noen merkelige nedbremsninger, endeløse bakgrunnsoppgaver flere ganger om dagen, som ingen ba henne utføre uten at vi visste det.

Rett etter overgangen fortalte regnskapsførerne meg at den nye utgaven av 1C: Accounting 3.0 ærlig talt bremser ned i forhold til de forrige! Og det er umulig å jobbe.

Jeg begynte å forstå og fant veldig snart ut at hovedårsaken til fryser og påfølgende brukermisnøye er rutine- og bakgrunnsoppgaver, hvorav mange er aktivert som standard, selv om de ikke er nødvendige for de aller fleste regnskapsførere.

Vel, for eksempel, hvorfor trenger vi å kjøre "Tekstekstraksjon"-oppgaven hundre ganger om dagen hvis vi ikke utfører et fulltekstsøk (regnskapsførere, ikke vær redd) på tvers av alle objektene i databasen vår.

Eller hvorfor hele tiden laste ned valutakurser hvis vi ikke har valutatransaksjoner eller vi gjør dem av og til (og før det kan vi selv klikke på knappen for nedlastingskurs).

Det samme gjelder det konstante forsøket fra 1C på å koble seg til nettstedet og sjekke og oppdatere bankklassifikatorene. Til hva? Selv vil jeg trykke på knappen for å oppdatere klassifisere hvis jeg ikke finner den riktige banken etter BIC.

Om hvordan du gjør det på punktene nedenfor.

1. Gå til "Administrasjon"-delen og velg "Vedlikehold"-elementet i handlingspanelet ():

2. Finn og velg elementet "Vanlige oppgaver og bakgrunnsoppgaver" i vinduet som åpnes:

3. Åpne hver jobb som har På-kolonnen. verdt en jackdaw.

4. Fjern merket for "Aktivert" og klikk på "Lagre og lukk"-knappen.

5. Gjør dette med hver av de inkluderte oppgavene og nyt den nye utgaven. Generelt, etter min mening, er det mye bedre enn toeren.

Samtidig vil plattformen fortsatt slå på noen av de planlagte oppgavene du har deaktivert.

Når du arbeider i 1C, er det mange rutineoperasjoner som må startes eller dannes etter en tidsplan ved å utføre en eller annen handling, for eksempel: legge ut dokumenter eller laste inn data til 1C fra et nettsted.

Jeg la nylig ut en artikkel: det er på tide å automatisere dette:

Planlagte jobber og bakgrunnsjobber

Jobbmekanismen er designet for å utføre enhver applikasjon eller funksjonalitet på en tidsplan eller asynkront.

Jobbmekanismen utfører følgende oppgaver:

  • Evne til å bestemme rutineprosedyrer på stadiet av systemkonfigurasjon;
  • Utførelse av spesifiserte handlinger i henhold til tidsplanen;
  • Utførelsen av et anrop til en gitt prosedyre eller funksjon er asynkron, dvs. uten å vente på ferdigstillelsen;
  • Spore fremdriften til en spesifikk jobb og få dens fullføringsstatus (en verdi som indikerer suksess eller fiasko ved utførelse);
  • Få en liste over gjeldende oppgaver;
  • Evne til å vente på fullføring av en eller flere oppgaver;
  • Jobbledelse (mulighet for kansellering, sperring av utførelse etc.).

Jobbmotoren består av følgende komponenter:

  • Metadata for planlagte oppgaver;
  • Planlagte oppdrag;
  • Bakgrunnsjobber;
  • Oppgaveplanlegger.

Bakgrunnsjobber og er designet for å kjøre applikasjonsoppgaver asynkront. Bakgrunnsjobber implementeres ved hjelp av det innebygde språket.

Planlagte oppgaver og er designet for å utføre planlagte oppgaver. Planlagte oppgaver lagres i infobasen og lages basert på metadataene som er definert i konfigurasjonen. Planlagt jobbmetadata inneholder informasjon som navn, metode, bruk og så videre.

En planlagt jobb har en tidsplan som bestemmer på hvilke tidspunkter metoden knyttet til den planlagte jobben skal utføres. Tidsplanen settes som regel i infobasen, men kan også settes på konfigurasjonsstadiet (for eksempel for forhåndsdefinerte planlagte oppgaver).

Oppgaveplanleggeren brukes til å planlegge utførelsen av planlagte oppgaver. For hver planlagt jobb sjekker planleggeren med jevne mellomrom om gjeldende dato og klokkeslett samsvarer med tidsplanen for den planlagte jobben. Hvis det stemmer, planlegger planleggeren at jobben skal kjøres. For å gjøre dette, i henhold til denne planlagte oppgaven, oppretter planleggeren en bakgrunnsoppgave som utfører selve behandlingen.

Med beskrivelsen tror jeg det er nok - la oss gå videre til implementeringen:

Opprette en planlagt jobb

Metodenavn– banen til prosedyren som vil bli utført i bakgrunnsoppgaven i henhold til den angitte tidsplanen. Prosedyren må være i en delt modul. Det anbefales å ikke bruke typiske vanlige moduler, men å lage dine egne. Ikke glem at bakgrunnsjobber kjører på serveren!

Bruk- et tegn på bruk av en planlagt oppgave.

forhåndsbestemt– indikerer om den planlagte jobben er forhåndsdefinert.

Hvis du vil at den planlagte oppgaven skal fungere umiddelbart etter at den er plassert i databasen, spesifiser tegnet forhåndsbestemt. Ellers må du bruke "Job Console"-behandlingen eller kalle jobben for å kjøre programmatisk.

Antall forsøk på nytt når en jobb krasjer– hvor mange ganger bakgrunnsjobben ble startet på nytt hvis den ble utført med en feil.

Jobabort gjenforsøksintervall– hvor ofte bakgrunnsoppgaven vil bli startet på nytt hvis den ble utført med en feil.

Tidsplaninnstilling

Rute oppgaveutførelse:

Hver time, bare én dagPrøv på nytt PeriodDays = 0, Prøv PeriodeDuringDay = 3600
Hver dag en gang om dagenPrøv på nytt PeriodDays = 1, Prøv PeriodeDuringDay = 0
En dag, en gangForsøksperiode dager = 0
Annenhver dag en gang om dagenForsøksperiode dager = 2
Hver time fra 01.00 til 07.00 hver dagRetryPeriodDays = 1RepeatPeriodDay = 3600StartTime = 01.00

Sluttid = 07.00

Hver lørdag og søndag kl 09.00Gjenta periode av dager = 1 ukedager = 6, 7 Starttid = 09.00
Hver dag en uke, ukeskortGjenta periode med dager = 1 ukeperiode = 2
Klokken 01.00 en gangStarttid = 01.00
Siste dag i hver måned kl 9:00.Gjenta periode av dager = 1DayInMonth = -1StartTime = 09.00
Femte i hver måned klokken 9:00Gjenta periode med dager = 1DayInMonth = 5StartTime = 09.00
Andre onsdag i hver måned kl. 9.00Gjenta periodeDager = 1DayWeekInMonth = 2DaysWeek = 3

Starttid = 09.00

Egenskaper ved å utføre bakgrunnsoppgaver i fil- og klient-serverversjoner

Mekanismene for å utføre bakgrunnsjobber i fil- og klient-serverversjonene er forskjellige.

I filformat du må lage en dedikert klientprosess som vil utføre bakgrunnsoppgaver. For å gjøre dette må den globale kontekstfunksjonen ExecuteJobProcessing kalles opp med jevne mellomrom i klientprosessen. Bare én klientprosess per infobase skal behandle bakgrunnsjobber (og derfor kalle denne funksjonen). Hvis det ikke er opprettet noen klientprosess for å behandle bakgrunnsjobber, vil feilen "Job manager er ikke aktiv" bli generert når du programmerer tilgang til jobbmotoren. Det anbefales ikke å bruke klientprosessen som behandler bakgrunnsjobber for andre funksjoner.

Etter at klientprosessbehandlingen av bakgrunnsjobber er startet, får andre klientprosesser muligheten til å programmere tilgang til bakgrunnsjobbmekanismen, dvs. kan kjøre og administrere bakgrunnsjobber.

I klient-serverversjon For å utføre bakgrunnsjobber brukes oppgaveplanleggeren, som er fysisk plassert i klyngebehandlingen. Planleggeren for alle bakgrunnsjobber i kø får den minst belastede arbeidsprosessen og bruker den til å kjøre den tilsvarende bakgrunnsjobben. Arbeidsprosessen utfører jobben og varsler planleggeren om utførelsesresultatene.

I klient-serverversjonen er det mulig å blokkere utførelse av planlagte oppgaver. Blokkering av utførelse av planlagte oppgaver skjer i følgende tilfeller:

  • En eksplisitt blokkering av planlagte oppgaver er satt på infobasen. Låsen kan stilles inn via klyngekonsollen;
  • En tilkoblingsblokk er satt på infobasen. Låsen kan stilles inn via klyngekonsollen;
  • SetExclusiveMode()-metoden ble kalt fra det innebygde språket med True-parameteren;
  • I noen andre tilfeller (for eksempel ved oppdatering av databasekonfigurasjonen).

Behandler lansering og visning av planlagte jobber du kan laste ned her.

". I den vil vi vurdere nye funksjoner som ikke er relatert til systemgrensesnittet, men betydelig utvide funksjonaliteten til 1C:Enterprise 8-plattformen.

Anvendbarhet

Artikkelen omhandler 1C:Enterprise-plattformen versjon 8.3.4.437. All funksjonalitet beskrevet i artikkelen er oppdatert til versjon 8.3.11.

Andre innovasjoner i 1C:Enterprise 8.3

La oss fortsette å bli kjent med innovasjonene til 1C:Enterprise 8.3-plattformen.

Bakgrunn og planlagte oppgaver i filinfobasen

I mange typiske plattformkonfigurasjoner 8.2 det var en konstant som indikerte brukeren som oppgavene ble utført under i filversjonen.

Da systemet begynte å fungere under denne brukeren, ble det koblet til en ventebehandling, som med en viss frekvens kalte metoden for det innebygde språket ExecuteProcessingJobs().

Denne tilnærmingen skapte ytterligere vanskeligheter og ulemper for bruk av planlagte oppgaver i filbasen.

Dette kan være spesielt kritisk når du arbeider med konfigurasjoner som f.eks "Omfattende automatisering" eller "Produksjonsbedriftsledelse" der rutinemessige oppgaver spiller en ganske viktig rolle.

Hvis dette er FileIB Then
=
Constants.UserForPerformingRegularTasksInFileVariant.Get();
Hvis en glValueVariable("gCurrentUser") =
UserToPerformRegularJobs Deretter
// med et intervall på sekunder kaller vi prosedyren for å jobbe med planlagte oppgaver
SupportRegularTaskForFileVersion();
Intervall For polling=
Constants.IntervalFor PollingRegular TasksInFileVariant.Get();
Hvis en Intervall For polling= Udefinert
ELLER Intervall For polling= 0 Da
Intervall For polling= 60 ;
Slutt om ;
ConnectHandlerWaiting("SupportRegularAssignmentForFileVersion",
Intervall For polling);
Slutt om ;
Slutt om ;

I plattformen 8.3 Implementerte arbeidet med bakgrunn og planlagte oppgaver i filinfobasen uten å bruke kallet til den globale kontekstmetoden ExecuteProcessingJobs().

Bakgrunn og planlagte oppgaver utføres direkte i en av klientapplikasjonene (tynn, tykk klient) eller av en webserverutvidelse.

En bakgrunnsjobb startet av en økt utføres av samme klientapplikasjon som startet den.

Bakgrunnsjobber utføres sekvensielt, dvs. på én klientapplikasjon om gangen, kan bare én bakgrunnsoppgave (inkludert planlagte) utføres.

Planlagte oppgaver utføres av bare ett klientprogram. Kommandolinjetasten brukes til å kontrollere lanseringen av planlagte oppgaver. /AllowExecuteScheduledJobs.

Planlagte oppgaver utføres av den første klientapplikasjonen i startrekkefølgen, som ikke er forbudt fra å utføre planlagte oppgaver (for å deaktivere økten, må økten startes med kommandolinjeparameteren /AllowExecuteScheduledJobs -Av).

Når denne økten avsluttes, hopper kjøringen til en av de gjenværende løpende øktene.

Hvis startlinjen til klientapplikasjonen eksplisitt spesifiserer behovet for å starte planlagte oppgaver (kommandolinjen spesifiserer /AllowExecuteScheduledJobs -Force), så begynner planlagte oppgaver å kjøre på den, uavhengig av tilstedeværelsen av andre økter.

Planlagte oppgaver behandles en gang hvert 60. sekund.

Merk at de planlagte oppgavene til den brukte løsningen (i filversjonen) begynte å bli utført tidligst 1 minutt etter at klientapplikasjonen ble lansert. Fra og med versjon 8.3.8 har denne tiden blitt doblet, og derfor begynner planlagte oppgaver å kjøre maksimalt 2 minutter etter at klienten starter (i filversjonen).

Denne avgjørelsen skyldes en nedgang i forsinkelsen ved søknadsstart. I tillegg, i versjon 8.3.7, ble muligheten til raskt å finne ut om gjeldende økt er en bakgrunnsjobbøkt lagt til. Dette er implementert gjennom en ny global kontekstmetode GetCurrentInfobaseSession(), samt en ny metode for en infobaseøkt GetBackgroundTask().

Nedenfor er koden som illustrerer ovenstående:

Klikk på bildet for å forstørre.

Sjekksumberegning

Plattformen har nå mekanismer for å beregne datasjekksummer.

Husk at en sjekksum (hash) er en verdi som beregnes fra et datasett ved å bruke en viss algoritme og brukes til å sjekke integriteten til data under overføring eller lagring.

Hashes kan brukes til å sjekke identiteten til data (du må for eksempel sørge for at filen ikke ble skadet under overføringen; sjekk om det ble gjort endringer i filen, og i så fall last den opp til databasen på nytt).

For å gjøre dette implementerte plattformen et objekt HashingData, tilgjengelig på serveren, tykk klient, ekstern tilkobling og mobilappserver.

Dette objektet har to metoder: Legge til() og For å legge til en fil(), som oppdaterer hash-summen basert på dataene som sendes i parameterne.

Plattform 8.3.4.437 støtter beregningen av følgende hash-funksjoner: CRC32, MD5, SHA1, SHA256. Men funksjonene SHA1 og SHA256 støttes ikke på mobilplattformen.

La oss vurdere et enkelt eksempel. Det antas at det er en fil på serveren i programkatalogen " agent.exe". Trenger å beregne MD5-sum for denne filen.

For å gjøre dette vil vi opprette en ekstern prosessering, på formen som vi vil plassere kommandoen Regne ut. Behandleren inneholder følgende kode:

&AtClient
Prosedyre Calculate (Kommando)
Resultat = CalculateOnServer();
Rapport(String(Resultat));
Sluttprosedyre
&På server
Funksjon CalculateOnServer()
Hash = Ny HashingData(HashFunction .MD5 );
Hash.AddFile(Katalogprogrammer() + "ragent.exe" );
Returner Hash.HashSum ;
EndFunctions

I plattformrevisjon 8.3.10+ i metoden Legge til() gjenstand HashingData det ble mulig å bruke en strøm av binære data, noe som i stor grad forenklet bruken av dem for å løse ulike anvendte problemer med å oppdatere hasj-summer.

Arbeide med sikre versjoner av protokoller SMTP/POP3

I plattformen 8.3 det ble mulig å bruke sikre versjoner av protokoller SMTP/POP3(det er vilkår SMTPS/POP3S eller SSLSMTP/SSLPOP3).

For objekt InternetPostalProfil nye eiendommer implementert:

  • Bruk SSLSMTP;
  • Bruk SSLPOP3;
  • OnlySecuredAuthenticationSMTP;
  • OnlySecuredAuthenticationPOP3.

Eiendommer SMTP-autentisering og POP3-autentisering gjenstand InternetPostalProfile, samt oppregninger SMT-autentiseringsmetode og POP3-autentiseringsmetode bruk er utdatert - de støttes for kompatibilitet.

Bruker en sikker protokoll SMTPS lar deg sende e-post fra 1C ved hjelp av postkasse Google.

Tenk på et eksempel. På skjemaet vil vi plassere felt for å skrive inn emnet for brevet og adressen til mottakeren, og for å skrive inn teksten til brevet - et formatert dokumentfelt.

Klikk på bildet for å forstørre.

Ved å trykke på knappen Sende følgende kode vil bli utført:

&AtClient
Prosedyre Send (Kommando) Mail = Ny InternetMail ; Profil = Ny InternetPostalProfile;
Profile.SMTPServerAddress= "smtp.googlemail.com" ;
Profil.SMTP-bruker= “[e-postbeskyttet]” ;
Profile.SMTP-passord= "PASSORD" ;
Profile.UseSSLSMTP= sant ;
Profil.SMTP-port = 465; Forsøk
Mail.Connect(Profil );
Unntak
Rapport(Feilbeskrivelse());
Komme tilbake ;
EndTry ; MailMessageText= “” ;
Vedlegg = Ny struktur;
Text.GetHTML(MailMessageText, Vedlegg ); E-postmelding= Ny InternetMailMessage;
MailMessage.Recipients.Add(Til hvem );
MailMessage.Subject= Emne ;
MailMessage.Texts.Add(MailMessageText,
MailMessageTextType.HTML); Mail.Send ( E-postmelding); Mail.Koble fra();
Sluttprosedyre

Merk at i vårt eksempel, hvis SMTP-serveren ikke var i stand til å sende en e-postmelding til mottakeren(e), så Mail.Send(MailMessage) kastet et unntak. Dette medførte noen ulemper for utviklerne, fordi. årsaken til å kaste unntaket var ikke åpenbar.

I versjon 8.3.9 har denne virkemåten endret seg, og nå returnerer Send()-metoden et samsvar, hvor nøkkelen er adressaten, og verdien er diagnostikk fra e-postserveren. Dette lar deg nøyaktig bestemme årsakene til mislykket sending av en e-postmelding til hver av mottakerne. I versjon 8.3.8 kompatibilitetsmodus har ikke virkemåten endret seg.

Tosidig utskrift

I plattformen 8.2 Plattformen i seg selv kontrollerte ikke tosidig utskrift; det var kun mulig å kontrollere denne funksjonen ved hjelp av skriverdriveren.

I plattformen 8.3 det ble mulig å kontrollere tosidig utskrift for et regnearkdokument, et grafisk oppsett (fra det innebygde språket og interaktivt) og et tekstdokument (kun interaktivt).

Systemoppregninger dukket opp på det innebygde språket:

  • TypeDouble SidedPrinting(Ingen, FlipUp, FlipLeft);
  • (Auto, MirrorUp, MirrorLeft, Ikke bruk).

Og gjenstandene RegnearkDokument og GraphicScheme egenskaper dukket opp Tosidig utskrift og InterleavingPage-arrangementer, som du kan endre layout på utskrevne sider med.

I plattformrevisjon 8.3.9 har systemoppregningen DuplexType en ny verdi Bruk skriverinnstillinger. Ved å velge denne verdien kunne skriverinnstillingene brukes ved utskrift av systemdokumenter. I versjon 8.3.8-kompatibilitetsmodus har ikke virkemåten endret seg, og de tilsvarende skriverinnstillingene ignoreres.

Infobase publiseringsdialogen på webserveren er gjort mer funksjonell. Når du nå publiserer fra konfiguratoren, kan du angi alle filparametere default.vrd.

For dialogen for publisering av webklienten og webtjenester gjennom konfiguratoren er følgende implementert:

  • muligheten til å kontrollere tilgjengeligheten til webtjenester som standard (attributt pointEnableCommon element ws);
  • muligheten til å kontrollere utførelsen av bakgrunnsjobber i filversjonen (attributt tillat å utføre planlagte jobber element ws).

Hvis avkrysningsboksen "Publiser nettjenester som standard" på bokmerket "Grunnleggende" er angitt, vil de valgte webtjenestene bli publisert automatisk når publikasjonen er oppdatert.

Ellers vil nettjenester bli merket som upubliserte. Dette flagget tilsvarer attributtet pointEnableCommon element ws i fil default.vrd for å konfigurere webklienten og webtjenester.

Egenskap pointEnableCommon ws element er ansvarlig for muligheten for å bruke webtjenester i denne infobasen som er publisert uten eksplisitt spesifikasjon av tillatelse til bruk (attributt muliggjøre element punkt).

Hvis attributtet har en verdi ekte, så alle nettjenester der attributtverdien ikke er eksplisitt spesifisert muliggjøre element punkt, vil være tillatt å bruke.

Ellers vil bruken av slike nettjenester være forbudt.

Omgivelser "Bakgrunnsjobber i filmodus" samsvarer med attributtet tillat å utføre planlagte jobber ws element i filen default.vrd.

Egenskap tillat å utføre planlagte jobber kontrollerer muligheten til å utføre planlagte oppgaver av nettserverutvidelsen for infobase-filversjonen.

Attributtet kan ha følgende verdier:

  • av– i dette tilfellet vil ikke webserverutvidelsen utføre planlagte oppgaver. Planlagte oppgaver vil bli utført av en klientapplikasjon (hvis en finnes) som kobles til infobasen direkte, uten å bruke en webserver.
  • makt– i dette tilfellet vil webserverutvidelsen utføre planlagte oppgaver.
    Hvis verdien til dette attributtet ikke er angitt, vil planlagte oppgaver utføres av applikasjonen som skal brukes for den første tilkoblingen til infobasen.

Publiseringsvinduet på en netttjeneste i den nåværende utgivelsen av plattformen har blitt enda mer praktisk og ergonomisk. Nå er parametrene som beskriver OpenID-autentisering plassert på en egen fane.

Nummerering av infobaseobjekter

I plattformen 8.3 mekanismen for automatisk nummerering av infobase-objekter har blitt redesignet. Unikiteten til nummeret eller koden (inkludert den som oppnås som et resultat av automatisk generering av nummeret eller koden) kontrolleres alltid under registreringen av objektet.

En indikasjon på hvilket nummer eller kode som ikke er unikt er lagt til teksten i meldingen om brudd på unikheten til et nummer eller kode.

Bruken av et fraflyttet nummer eller kode er endret. Nytt nummer eller kode tildeles uten bruk av fraflyttede nummer eller koder, dersom det allerede finnes utstedte nummer eller koder med stort (i rekkefølge) nummer eller kodeprefiks.

Aggregerte funksjoner til datakomposisjonssystemets uttrykksspråk

Nye aggregerte funksjoner er implementert i uttrykksspråket til datasammensetningssystemet:

  • Hver();
  • Noen();
  • Standardavvik for populasjon();
  • Eksempel på standardavvik();
  • VarianceSampling();
  • Befolkningsvarians();
  • Befolkningskovarians();
  • SampleCovariance();
  • Sammenheng();
  • RegresjonSlope();
  • RegressionSegment();
  • RegressionCount();
  • RegresjonR2();
  • RegresjonMeanX();
  • RegresjonMeanY();
  • RegresjonMeanSXX();
  • RegresjonMeanSYY();
  • RegressionMeanSXY().

Som du kan se av navnene er dette statistiske funksjoner, som betyr at utviklere har mulighet til å lage komplekse rapporter uten å ty til utviklingen av prosedyrer for beregning av statistiske data.

Klikk på bildet for å forstørre.

Som du kan se av figuren, er det ingen nye funksjoner i nedtrekkslisten, men hvis du legger dem inn manuelt, vil det ikke komme noen feilmelding, og rapporten vil bli generert:

Av interesse er også den nye funksjonen KlassifikasjonABC(). Resultatet av funksjonen vil være klassenummeret, fra 1 (1 tilsvarer klasse A, 2 til klasse B, 3 til klasse C osv.).

La oss demonstrere hvordan denne funksjonen fungerer. Opprett en ny ekstern rapport "Klassifisering av varer" basert på forespørsel:

VELGE
ConsumptionGoodsGoods.Goods,
Forbruk av varer Varer Mengde
FRA
Document.Expense of Goods.Goods HVORDAN Consumption Goods Goods

Definer et nytt beregnet felt Klasse:

Klikk på bildet for å forstørre.

La oss konfigurere ressursene som følger:

Klikk på bildet for å forstørre.

I brukermodus ser rapporten slik ut:

Avslutningsvis merker vi oss at fra utgave til utgave i 1C 8.3-plattformen, blir ACS-mekanismen stadig forbedret og raffinert, og det er ikke mulig å bringe disse endringene i sin helhet innenfor rammen av vår "nybegynner"-artikkel. Ja, dette virker overflødig, fordi når du jobber med den nåværende versjonen av plattformen, kan du alltid bruke forskjellige hjelpesystemer for å hjelpe til med analysen av et eller annet aspekt ved driften av denne mekanismen.

I tillegg, ikke glem vårt separate kurs Profesjonell utvikling av rapporter i 1C 8.3 om Data Composition System, som analyserer til atomet alle finesser og fallgruver når du arbeider med denne mekanismen. Se demoen selv.

Så, la oss oppsummere mellomresultatene. Fram til dette tidspunktet ble vi kjent med de nye funksjonene i Taxi-grensesnittet og administrerte skjemaer, samt med noen tidligere ikke-leverte funksjoner på selve plattformen. Nå er det på tide å se hvilke praktiske funksjoner som har blitt tilgjengelig for utvikleren i konfiguratoren.

Plattformer: 1C:Enterprise 8.3, 1C:Enterprise 8.2, 1C:Enterprise 8.1
Konfigurasjoner: Alle konfigurasjoner

2012-11-13
53989

I arbeidsflyten er det oppgaver som krever periodisk utførelse - for eksempel på den tjuende, eller daglig. Som regel er det i virksomheter spesielt for dette opprettet visse regler som angir når og hvordan den nødvendige oppgaven skal utføres, og hvem som skal kontrollere prosessen. Slike oppgaver utføres etter forskriften og kalles regulert.

Ganske ofte følger IT reglene for overvåking. Denne metoden er godt kjent for administratorer, siden det er spesielle programmer som brukes for å periodisk sjekke helsen til nettverksinfrastrukturen og serverne. De varsler administratoren om oppdagede problemer via SMS eller e-post.

Et lignende system er gyldig for webansvarlige, mens tilgjengeligheten til nettstedet sjekkes innen 24 timer. Ved hjelp av mekanismen "Regular Tasks" i 1C utføres overvåkingsoppgaver, samt periodiske oppgaver som er planlagt i automatisk modus i 1C. La oss vurdere dette emnet mer detaljert.

Planlagte oppgaver 1C

Objekt 1C, som kalles "Vanlige oppgaver" - gjør det mulig å behandle informasjon ikke etter at et problem oppstår, men i henhold til en tidsplan. I konfiguratoren er en planlagt jobb en måte å sette opp innstillinger og sette en tidsplan. I tillegg er det mulig å endre tidsplanen i 1C Enterprise-modus i etterkant.

Når du bruker en fildatabase, blir ikke jobber automatisk utført. For å starte prosessen, må du starte en 1C-sesjon i 1C Enterprise-modus og starte utføringen av en planlagt oppgave i den.

Alle typiske konfigurasjoner har en brukerinnstilling som lar deg klargjøre at når 1C kjører, vil rutineoppgaver utføres automatisk.

Bruk av klient-server-versjonen av 1C gjør det mulig å automatisk utføre oppgaver på serveren. Til det planlagte tidspunktet - en bakgrunnsoppgave startes, som utfører de nødvendige handlingene. For parallell databehandling på serveren kan en bakgrunnsoppgave opprettes fra programteksten ved å bruke 1C-språket, uten å bruke en planlagt 1C-oppgave. Handlingen til en planlagt oppgave kan deaktiveres midlertidig ved å bruke 1C-serveradministrasjonskonsollen for dette.

Legge til en planlagt jobb

Planlagte oppgaver er plassert i — Konfigurator — Generelt — Planlagte oppgaver. Legg til en ny "oppgave" og oppgi et navn. Deretter må du gå til egenskapene til "Oppgaver". Og velg Metodenavn. Her må du spesifisere behandlerfunksjonen, akkurat som det skjer i arrangementsabonnementet. Denne funksjonen vil ligge i den generelle modulen og merkes med en "bird" Server i egenskapene. Dette betyr at den nødvendige modulen må legges til på forhånd.

Navnet på oppgaven i egenskapene til den planlagte oppgaven lar deg definere navnet, som senere vises i oppgavebehandlingsverktøyene. Funksjonen Planlagte jobbegenskaper er en nøkkel som lar deg gruppere flere forskjellige planlagte jobber. I dette tilfellet kan bare én oppgave med samme nøkkelverdi startes samtidig. Her kan verdien være vilkårlig, men det er obligatorisk å fylle den inn, siden den tomme verdien ikke tas i betraktning av systemet.

I Accounting 2.0-utgaven, som er en typisk konfigurasjon, er planlagte oppgaver som: "Recalculation of totals" og "Configuration update" forhåndsdefinert, og som for eksempel "Forsinkede bevegelser" og "Data exchange" er ikke forhåndsdefinert.

Crash Retry - Starter en løpende jobb på nytt. Forutsatt en lansering som ikke ble fullført første gang. Her er det angitt hvor mange ganger du kan starte på nytt og hvor lenge etter krasjen.

Overvåkings- og administrasjonsverktøy for den planlagte oppgaven 1C

Standardbehandlingen "Jobbkonsoll", som finnes på ITS-diskene, er ansvarlig for å administrere den planlagte oppgaven. Denne behandlingen er en universell ekstern standardbehandling 1C. Som regel er den ikke inkludert i konfigurasjonen, men kjøpes separat.

Med dens hjelp kan du utføre følgende handlinger:

Slå på og av den planlagte oppgaven;

Tildel og endre tidsplanen;

Angi navnet på brukeren som den planlagte oppgaven skal utføres med;

Se utførte oppgaver (når og med hvilket resultat), samt oppgavefeil;

Planlagte oppgave- og databasekopier

Når du bruker server 1C, kan følgende øyeblikk oppstå:

For programmering må du lage en kopi av arbeidsdatabasen;

Behovet for å jobbe i kopier av databasen (testing);

Av en eller annen grunn er ikke den planlagte oppgaven aktivert i testdatabasen.

Hvis en av disse situasjonene oppsto under utførelsen av oppgaver av en planlagt oppgave som kun er knyttet til sin egen database, medfører ikke dette negative konsekvenser. Men ofte kan en planlagt oppgave lagre filer eller andre data, sende e-poster og utveksle. I dette tilfellet kan det være forvirring mellom resultatene av "jobben" og kopier. For å forhindre at dette skjer, må du deaktivere "oppgaver" i serveradministrasjonskonsollen.

Fullførte og ikke fullførte rutineoppgaver

Når du oppretter planlagte oppgaver, er det viktig å sjekke om oppgaven kan utføres som en planlagt oppgave. Det er viktig å vite at servermodulen ikke gir mange av tingene som er mulig på klienten. Deretter en oppgave som omhandler noe som er utenfor databasen - en viktig rolle i dette spilles av rettighetene til Windows-brukeren som oppgaven utføres under.

Den siste faktoren er spesielt viktig, siden hvis modulen ikke kjøres på serveren, kan oppgaven i prinsippet ikke utføres. For å sjekke, må du kjøre én oppgave og evaluere resultatet.

Når du fører journaler, blir det ofte nødvendig å utføre visse handlinger med jevne mellomrom uten brukerintervensjon. Planlagte oppgaver og bakgrunnsoppgaver i 1C er mekanismene som er gitt for dette formålet i den åttende versjonen av programmet og tillater:

  • Sett opp rettidig levering av dokumenter;
  • Beregn saldoer og totaler;
  • Sørg for regelmessig oppslag;
  • Sjekk og slett irrelevante data.

Bakgrunn og planlagt oppgave - hva er det og hvor er det konfigurert

En planlagt oppgave er en mekanisme innebygd i 1C som lar deg konfigurere og, i samsvar med den etablerte tidsplanen og frekvensen, utføre en viss sekvens av handlinger.

En bakgrunnsoppgave er en handling generert av en planlagt operasjon og krever ikke direkte deltakelse fra brukeren.

En planlagt oppgave opprettes i konfiguratormodus:

  • I konfigurasjonstrevinduet finner vi den tilsvarende grenen (fig. 1);
  • Klikk på legg til-knappen;
  • I vinduet som åpnes må du angi et navn som lar deg identifisere objektet i konfigurasjonen;

Fig.2

  • På motsatt side av inskripsjonen "Schedule" (fig. 2) er det en inskripsjon "Åpne", ved å klikke på som åpner et vindu for å stille inn tid og frekvens for behandlerutførelsen (fig. 3);

Fig.3

  • Det er også nødvendig å fylle inn "Metodenavn" (navnet på prosedyren som kalles opp fra den generelle modulen og beskriver programatferdsalgoritmen vil bli lagt inn her);
  • Feltene "Navn" og "Nøkkel" lar deg gruppere objekter;
  • Den avmerkede boksen "Bruk" indikerer aktiviteten til den planlagte operasjonen;
  • "Forhåndsdefinert" bør settes hvis behandleren skal startes umiddelbart etter at den er lagt til databasen, ellers kan den startes fra den tilsvarende behandlingen (mer om det nedenfor);
  • Parameterne Retry Count og Retry Interval beskriver oppførselen til programmet i tilfelle et unntak oppstår mens en bakgrunnsjobb utføres.

Så ved å bruke mekanismen for planlagte operasjoner, kan du angi tidsplanen og hovedhandlingene for bakgrunnsjobber. La oss nå se på funksjonene deres.

Funksjoner av bakgrunnsjobber

Hovedtrekket til denne mekanismen er at bakgrunnsprosessen kjører asynkront.

Hva betyr dette. Faktum er at med en synkron arbeidsmodell, i tilfelle utførelse av en hvilken som helst algoritme, er brukergrensesnittet blokkert. I vårt tilfelle kan brukeren fortsette å legge inn og redigere data, selv om prosedyren kjører. Den asynkrone programmeringsmodellen innebærer separasjon av beregningstråder.

Dermed kan bakgrunnsjobber i 1C generere sine egne prosesser, og distribuere beregninger på tvers av forskjellige servere som er en del av samme klynge.

Funksjoner ved å jobbe i klient-server-modus

  • Kjøringsplanlegging og kontroll utføres av planleggeren fra serverklyngen;
  • Hvis en forespørsel om utførelse vises, ser planleggeren etter klyngearbeiderprosesser med en minimumsbelastning og distribuerer oppgaver til dem for utførelse;
  • Hver prosess kan utføre flere parallelle beregninger;
  • Etter at oppgaven kommer, kobles prosessen til databasen og utfører algoritmen i den;
  • Prosessen rapporterer resultatene til planleggeren.

Bakgrunnsjobber i filmodus

Før plattformversjon 8.3.3.641 ga det noen vanskeligheter å jobbe med bakgrunnsjobber i filversjonen:

  1. Det var nødvendig å starte en egen økt som skulle fungere døgnet rundt, og erstatte planleggeren;
  2. Denne økten bør med jevne mellomrom ha utført ExecuteJobProcessing()-metoden.

Etter oppdateringen starter hver start av de tykke og tynne klientene, hvis AllowExecuteScheduledJobs-nøkkelen er spesifisert i lanseringsinnstillingene (fig. 4) i "Additional"-feltet, en ekstra tilkoblingstråd til databasen, som ikke påvirker brukerens fungerer på noen måte, men utfører bare bakgrunnsoppgaver.operasjoner.

Fig.4

Det bør tas i betraktning at selv i filversjonen av arbeid, tillater ikke bakgrunnsprosesser interaktivt arbeid med brukeren (tjenestemeldinger, advarsler, spørsmål vil ikke bli vist). Det vil si at de må kodes som om de skal kjøres på serversiden.

Slik deaktiverer du planlagte oppgaver

Ubrukte oppgaver kan deaktiveres ved ganske enkelt å fjerne merket for "Bruk" i objektets egenskaper.

Hvis administratoren trenger å forby bruken av rutine- og bakgrunnsoperasjoner for hele databasen som helhet (for eksempel lagres flere databaser på serveren, hvorav kun én er den viktigste, og resten brukes kun til utvikling) , er det nødvendig å bruke databaseadministrasjonsverktøyet. Du kan også krysse av for "Angi blokkering av planlagte oppgaver" i databasen som er opprettet på serveren.

I tillegg har ITS-disker en spesiell "Job Console"-behandling, som lar deg redigere tidsplanen for bakgrunnsprosesser og endre aktiviteten deres.

Redaktørens valg
Boliglån utstedes veldig ofte. Betingelsene er avhengig av banken, og reglene for utstedelse er nesten like overalt. Lån gis i...

Billånsprogrammer I dag er en bil ikke lenger en luksus, men mer en nødvendighet. I en stor by, som i en liten...

Den klassiske måten er å kontakte nærmeste bankfilial. Der bør du gi den bankansatte informasjon basert på ...

Fullmakter og rettigheter til namsmenn er strengt begrenset av loven (N 118-FZ om namsmenn), og jeg vil fortelle deg hvilke handlinger ...
I Russland opererer for tiden et innskuddsforsikringssystem for enkeltpersoner: hva er erstatningsbeløpet, og hvordan finner du ut hvem som er forsikret ...
Sjelden, men det er behov for å overføre til en brukskonto fra et Sberbank-kort. For eksempel aksepterer store nettbutikker ...
La oss analysere betingelsene og fordelene ved denne typen utlån til innbyggerne. I dag kan alle komme i en vanskelig posisjon når det haster...
Den gratis og offentlig tilgjengelige forbrukslånskalkulatoren til OTP Bank brukes aktivt av kunder til denne finansinstitusjonen med ...
Å få en stor sum penger på kreditt kan være ganske vanskelig. Registrering vil ta mye tid, forutsatt...