1c, kas ir rutīnas uzdevumi. Rutīnas un fona uzdevumi

Jautājums, ko ievietojām raksta nosaukumā, ir būtisks daudziem sistēmas administratoriem, kas strādā ar šo produktu. Cik vien iespējams, mēs cenšamies runāt par parametriem, kas ietekmē 1C veiktspēju, un atmaskot populāros mītus. Šodien, izmantojot viena nesena gadījuma piemēru, mēs vēlamies jums pastāstīt par vēl vienu aspektu, kas var nopietni ietekmēt produktivitāti - rutīnas darbus.

Sāksim ar reāls gadījums. Pirms neilga laika viens no mūsu klientiem vērsās pie mums ar sūdzību par viena viņa darbinieka 1C “bremzēm”. Simptomi bija tādi, ka pēc noteikta laika Trade Management 10 konfigurācija sāka stipri palēnināties vai, vienkāršāk sakot, kādu laiku sastinga.

Ar vairāk detalizēta analīze situāciju, izrādījās, ka tā notiek tikai vienam darbiniekam un jebkurā darba vietā, tas notiek jau ilgāku laiku, taču, ja agrāk “bremzes” ilga aptuveni sekundi, tad tagad pēc atjaunināšanas tās var ilgt līdz pat plkst. 15-20 sekundes, kas padara darbu ārkārtīgi neērtu.

Principā sākotnējie dati jau ir pietiekami, lai izdarītu pirmos secinājumus. Uzskaitīsim tos vēlreiz:

  • “Bremzes” notiek pastāvīgi, ar noteiktu frekvenci
  • Palēninās tikai vienam lietotājam
  • "Palēninās" jebkurā darba vietā

Lai apstiprinātu savus minējumus, apskatīsim Grāmatvedības iestatījumi:

Patiešām, “problēmu” lietotājs ir norādīts kā lietotājs, kas veic ikdienas uzdevumus. Kā izrādījās, reiz šī lietotāja vārdā darbojās RIB automātiskās apmaiņas uzdevums. Atliek noskaidrot, kas tieši bija epizodiskās “bremzēšanas” cēlonis. To ir arī viegli izdarīt:

Un šeit ir “notikuma varonis” - uzdevums atjaunināt pilna teksta meklēšanas indeksu, kas tika palaists reizi 2,5 minūtēs. Šajā gadījumā problēma tika pilnībā atrisināta, atspējojot rutīnas uzdevumu izpildi šim lietotājam, taču tas ne vienmēr ir iespējams vai ieteicams, tāpēc tālāk apskatīsim, kā varat pārvaldīt rutīnas uzdevumus un kā pārliecināties, ka tie veic neietekmē negatīva ietekme priekšnesumam.

Regulāra pielietošana

Konfigurācijās, kuru pamatā ir parasta lietojumprogramma, nav viena rīka ikdienas uzdevumu pārvaldībai. Tas lielā mērā ir saistīts ar faktu, ka to sākotnējās izstrādes laikā pati rutīnas uzdevumu koncepcija bija diezgan vāji izstrādāta.

Daudzi rutīnas uzdevumi tiek pārvaldīti, iestatot ar tiem saistītās apakšsistēmas. Piemēram, ar datu apmaiņu saistīto normatīvo uzdevumu uzstādījumi jāmeklē apmaiņas iestatījumos, kas saistīti ar Vienoto valsts automatizēto informācijas sistēmu alkohola tirdzniecības iestatījumos u.c.

No pirmā acu uzmetiena viss ir diezgan loģiski, taču viena rīka trūkums apgrūtina konfigurēto rutīnas uzdevumu un to iestatījumu optimāluma kontroli. Ir labi, ja ir viens vai divi uzdevumi, bet, ja to ir vairāk vai, kā mūsu gadījumā, ir aizdomas par kādu no ieplānotajiem uzdevumiem, bet jums nav ne jausmas, kurš ko konfigurējis šajā datu bāzē.

Šajā gadījumā jums vajadzētu izmantot ārēju apstrādi Konsoles uzdevumi (JobsConsole), kas ir iekļauts standarta apstrādes komplektā ITS diskā. Apstrāde nodrošina vienotu saskarni visiem darbiem un ļauj tos centralizēti konfigurēt, kā arī kontrolēt pašlaik darbojošos darbus.

Šis saraksts ir rūpīgi jāizpēta, visi nevajadzīgie uzdevumi ir jāizslēdz, un tiem, kas ir nepieciešami, grafiks ir jāpielāgo, lai tie atbilstu tūlītējām vajadzībām un veselajam saprātam. Piemēram, mūsu gadījumā nav nepieciešams apstrādāt EGAIS atbildes reizi 30 sekundēs (šis iestatījums tika veikts pārbaudei), un darba režīmā to pietiks, teiksim, reizi pusstundā.

Pārvaldīta lietojumprogramma

Konfigurācijās, kuru pamatā ir pārvaldīta lietojumprogramma, ar to palīdzību tiek piešķirta nozīmīgāka loma rutīnas uzdevumiem, var veikt dažādus uzdevumus, lai uzturētu informācijas bāzi un to atjauninātu, bet tajā pašā laikā lielākā daļa ir rutīnas uzdevumi; bieži kļūst par "bremžu" cēloni.

Rutīnas uzdevumu pārvaldībai izvēlnē ir atsevišķs vienums Administrēšana – atbalsts un uzturēšana.

Uzreiz var atzīmēt, ka uzdevumu skaits ir ievērojami pieaudzis (piemēram, mēs paņēmām to pašu konfigurāciju - Retail) un to pareiza konfigurēšana var būtiski uzlabot informācijas bāzes veiktspēju. Noklusējuma iestatījumus 1C veic, pamatojoties uz vidusmēra sfēriska uzņēmuma vajadzībām vakuumā, un tie nav pat tuvu optimālajiem.

Pirmkārt, mēs atspējojam to, kas ir acīmredzami nevajadzīgs, ar ko jūs nestrādājat. Pēc tam optimizējam reti izmantoto funkciju grafiku, piemēram, bankas klasifikatora atjaunināšanu Mazumtirdzniecībā, kā arī darījumu partneru pārbaudi var veikt reizi nedēļā ārpus darba laika vai darba dienas beigās (sākumā).

Īpaša uzmanība jāpievērš visam, kas saistīts ar meklēšanas indeksu. Pilna teksta meklēšana noteikti ir ērta lieta, taču darbs ar tās indeksu ir ļoti, ļoti resursietilpīgs uzdevums. Tāpēc nevajadzētu iet galējībā un no tā atteikties, bet gan nopietni jāpārdomā un jāpielāgo tā parametri.

Sāksim ar teksta izvilkšana, šī darbība ļauj meklēt pievienoto failu saturā, tādēļ, ja jūs tos neizmantojat, nemeklējat, vai jums ir tikai attēli, tad šo darbību jebkurā gadījumā var atspējot, veicot to reizi 85 sekundes ir nepārprotami pārspīlēts.

Atjaunināt PPD indekss - viena no resursietilpīgākajām operācijām, kas pēc noklusējuma tiek veikta reizi minūtē.

Tagad padomāsim par to, cik bieži informācija, kuru jūs visbiežāk meklējat, tiek pievienota vai atjaunināta datu bāzē? Acīmredzot ne katru minūti, tāpēc pietiks ar indeksa atjaunināšanu daudz retāk: reizi stundā, dienā vai pat reizi nedēļā.

Tas pats attiecas uz PPD indeksa apvienošana Ja indeksu atjaunina vienu reizi dienā, sapludināšana jākonfigurē tā, lai tā darbotos reizi nedēļā, izvēloties vismazāk traucējošo laiku darba sākšanai.

Šīs vienkāršās darbības ļaus jums palielināt komfortu, strādājot ar to, nekaitējot konfigurācijas funkcionalitātei. jauns līmenis novēršot biežu diezgan resursietilpīgu darbību izpildi. Vienkārši nekrītiet galējībās gudri, cik jums ir vajadzīgas noteiktas spējas un cik bieži jums jāveic ar tām saistīti uzdevumi.

  • Tagi:

Lūdzu, iespējojiet JavaScript, lai skatītu

" Tajā aplūkosim jaunas funkcijas, kas neattiecas uz sistēmas interfeisu, bet būtiski paplašina 1C:Enterprise 8 platformas sniegto funkcionalitāti.

Piemērojamība

Rakstā ir apskatīta 1C: Enterprise platformas versija 8.3.4.437. Visas rakstā aprakstītās funkcijas ir atjauninātas uz versiju 8.3.11.

Citi jauninājumi programmā 1C:Enterprise 8.3

Turpināsim iepazīties ar 1C:Enterprise 8.3 platformas jauninājumiem.

Fona un rutīnas uzdevumi failu informācijas bāzē

Daudzās tipiskās platformas konfigurācijās 8.2 bija konstante, kas norādīja lietotāju, kuram uzdevumi tika izpildīti faila versijā.

Kad sistēma sāka darboties zem šī lietotāja, tika pievienots gaidīšanas apstrādātājs, kas ar noteiktu periodiskumu izsauca iebūvēto valodas metodi ExecuteTaskProcessing().

Šī pieeja radīja papildu grūtības un neērtības, izmantojot rutīnas uzdevumus failu datu bāzē.

Tas varētu būt īpaši svarīgi, strādājot ar tādām konfigurācijām kā “Visaptveroša automatizācija” vai "Kontrole ražošanas uzņēmums, kurā diezgan liela nozīme ir regulējošiem uzdevumiem.

Ja tas ir fails IB, tad
=
Constants.UserForExecutingRoutineTasksInFileVariant.Get();
Ja chValueVariable(“glPašreizējais lietotājs”) =
UserTo ExecuteTaskRegl Tad
// ar sekunžu intervālu mēs saucam procedūru darbam ar rutīnas uzdevumiem
SupportRegularTaskForFileVersion();
IntervalForPoll=
Constants.IntervalForPollingRoutineTasksInFileVariant.Get();
Ja IntervalForPoll= Nedefinēts
VAI IntervalForPoll= 0 Tad
IntervalForPoll= 60 ;
EndIf ;
ConnectWaitHandler(“RoutineTaskForFileVersion atbalsts”,
IntervalForPoll);
EndIf ;
EndIf ;

Uz platformas 8.3 ieviesa fona un rutīnas darbu darbu failu informācijas bāzē, neizmantojot globālā konteksta metodes izsaukumu ExecuteTaskProcessing().

Fona un rutīnas uzdevumi tiek veikti tieši vienā no klienta lietojumprogrammām (plānā, biezā klienta) vai tīmekļa servera paplašinājumā.

Sesijas sākto fona darbu izpilda tā pati klienta lietojumprogramma, kas to uzsāka.

Fona darbi tiek izpildīti secīgi, t.i. Vienā klienta lietojumprogrammā vienlaikus var izpildīt tikai vienu fona uzdevumu (ieskaitot rutīnas uzdevumus).

Ikdienas uzdevumus veic tikai viena klienta lietojumprogramma. Lai kontrolētu plānoto uzdevumu palaišanu, tiek izmantota komandrindas atslēga /AllowExecuteScheduledJobs.

Kārtējos uzdevumus palaišanas secībā izpilda pirmā klienta lietojumprogramma, kurai nav aizliegts izpildīt rutīnas uzdevumus (lai aizliegtu sesiju, sesija ir jāpalaiž ar komandrindas parametru /AllowExecuteScheduledJobs -Izslēgts).

Kad šī sesija beidzas, izpilde tiek pārvietota uz jebkuru no atlikušajām darbības sesijām.

Ja klienta lietojumprogrammas palaišanas līnija skaidri norāda uz nepieciešamību izpildīt rutīnas uzdevumus (in komandrinda norādīts /AllowExecuteScheduledJobs — Force), tad tajā sāk izpildīt rutīnas uzdevumus neatkarīgi no citu sesiju klātbūtnes.

Ikdienas uzdevumi tiek apstrādāti reizi 60 sekundēs.

Ņemiet vērā, ka lietojumprogrammas risinājuma (faila versijā) ikdienas uzdevumus sāka izpildīt ne agrāk kā 1 minūti pēc klienta lietojumprogrammas palaišanas. Sākot ar versiju 8.3.8, šis laiks ir dubultots, un tāpēc rutīnas uzdevumi tiek izpildīti ne ilgāk kā 2 minūtes pēc klienta palaišanas (faila versijā).

Šāds lēmums pieņemts, jo tika samazināts pieteikuma uzsākšanas kavējums. Turklāt 8.3.7 versijā šī iespēja tika pievienota ātra definīcija ka pašreizējā sesija ir fona darba sesija. Tas tiek ieviests, izmantojot jauno globālā konteksta metodi GetCurrentInfoBaseSession(), kā arī jaunu metodi informācijas bāzes sesijai GetBackgroundTask().

Zemāk ir kods, kas ilustrē iepriekš minēto:

Lai palielinātu, noklikšķiniet uz attēla.

Kontrolsummu aprēķināšana

Tagad platformā ir iekļauti mehānismi datu kontrolsummu aprēķināšanai.

Atgādināsim jums to kontrolsumma(hash) ir vērtība, kas aprēķināta no datu kopas, piemērojot noteiktu algoritmu, un tiek izmantota, lai pārbaudītu datu integritāti pārraides vai uzglabāšanas laikā.

Jaucējvērtības var izmantot, lai pārbaudītu datu identitāti (piemēram, jāpārliecinās, vai fails nav bojāts, pārsūtot to; pārbaudiet, vai failā nav veiktas izmaiņas, un ja jā, tad augšupielādējiet to vēlreiz datu bāzē) .

Šim nolūkam platformā tika realizēts objekts HashingData, pieejams serverī, biezajā klientā, ārējā savienojumā un arī mobilo aplikāciju serverī.

Šim objektam ir divas metodes: Pievienot () Un AddFile(), kas atjaunina hash summu, ņemot vērā parametros nodotos datus.

Platforma 8.3.4.437 atbalsta šādu jaucējfunkciju aprēķināšanu: CRC32, MD5, SHA1, SHA256. Bet funkcijas SHA1 Un SHA256 mobilajā platformā netiek atbalstīti.

Apskatīsim vienkāršu piemēru. Tiek pieņemts, ka serverī programmas direktorijā ir fails “ ragent.exe" Vajag aprēķināt MD5- šī faila summa.

Lai to izdarītu, mēs izveidosim ārēju apstrādi, uz kuras veidlapas ievietosim komandu Aprēķināt. Apdarinātājs satur šādu kodu:

&OnClient
Aprēķināšanas procedūra (komanda)
Rezultāts = CalculateOnServer();
Report(String(Result));
Procedūras beigas
&OnServer
Funkcija CalculateOnServer()
Hash = jauns HashingData(HashFunction.MD5);
Hash.AddFile(Kataloga programmas() + “ragent.exe” );
Atgriezties Hash.HashSum ;
EndFunction

Izdevumā platforma 8.3.10+ metodē Pievienot () objektu HashingData Kļuva iespēja izmantot bināro datu straumi, kas ievērojami vienkāršoja to izmantošanu dažādu jaucējsummu atjaunināšanas lietišķo problēmu risināšanā.

Darbs ar aizsargātām protokolu versijām SMTP/POP3

Uz platformas 8.3 kļuva iespējams izmantot aizsargātas protokolu versijas SMTP/POP3(ir termini SMTPS/POP3S vai SSLSMTP/SSLPOP3).

Objektam InternetMailProfile ieviesti jauni īpašumi:

  • Izmantojiet SSLSMTP;
  • Izmantojiet SSLPOP3;
  • Tikai SecureAuthenticationSMTP;
  • Tikai POP3 drošā autentifikācija.

Īpašības SMTP autentifikācija Un POP3 autentifikācija objektu InternetMailProfile, kā arī pārskaitījumi SMTPAautentifikācijas metode Un POP3 autentifikācijas metode Nav ieteicams tos izmantot - tie tiek atbalstīti saderībai.

Izmantojot drošu protokolu SMTPSļauj nosūtīt pastu no 1C, izmantojot pa pastkastīti Google.

Apskatīsim piemēru. Veidlapā izvietosim laukus vēstules priekšmeta un adresāta adreses ievadīšanai un vēstules teksta ievadīšanai - formatētu dokumenta lauku.

Lai palielinātu, noklikšķiniet uz attēla.

Kad nospiežat pogu Sūtīt Tiks izpildīts šāds kods:

&OnClient
Procedūra Send (Command) Mail = jauns interneta pasts; Profils = jauns InternetMailProfile;
Profils.SMTPServerAddress= “smtp.googlemail.com” ;
Profils.UserSMTP= “[aizsargāts ar e-pastu]” ;
Profils.PasswordSMTP= “PAROLE” ;
Profils.UseSSLSMTP= Patiess ;
Profils.SMTPPort = 465 ; Mēģinājums
Mail.Connect(Profils);
Izņēmums
Report(ErrorDescription());
Atgriezties ;
EndAttempt ; MailMessageText= “” ;
Pielikumi = Jauna struktūra ;
Text.GetHTML(MailMessageText, Pielikumi); MailMessage= Jauns InternetMailMessage;
MailMessage.Recipients.Add(Kam );
MailMessage.Subject= Tēma;
MailMessage.Texts.Add(MailMessageText,
MailMessageTextType.HTML); Mail.Send ( MailMessage); Pasts.Atvienot();
Procedūras beigas

Ņemiet vērā, ka mūsu piemērā, ja SMTP serveris nevarēja nosūtīt e-pastu adresātam(-iem), tad metode Pasts. Sūtīt (pasta ziņojums) iemeta izņēmumu. Tas sagādāja zināmas neērtības izstrādātājiem, jo... Izņēmuma izdarīšanas iemesls nebija acīmredzams.

Versijā 8.3.9 šī darbība ir mainījusies, un tagad metode Send() atgriež atbilstību, kuras atslēga ir adresāts un kuras vērtība ir diagnostika no pasta servera. Tas ļauj precīzi noteikt iemeslus, kāpēc katram adresātam nav izdevies nosūtīt e-pasta ziņojumu. Saderības režīmā ar versiju 8.3.8 darbība nav mainījusies.

Dupleksā druka

Uz platformas 8.2 Pati platforma nepārvaldīja abpusējo drukāšanu; šo funkciju varēja vadīt, tikai izmantojot printera draiveri.

Uz platformas 8.3 kļuva iespējams kontrolēt abpusējo drukāšanu izklājlapu dokumentam, grafiskajai diagrammai (no iebūvētās valodas un interaktīvi) un teksta dokumentam (tikai interaktīvai).

Sistēmas uzskaitījumi parādījās iebūvētajā valodā:

  • Divpusējās drukas veids(Nav, FlipUp, FlipLeft);
  • (Automātiski, MirrorTop, MirrorLeft, Nelietot).

Un priekš objektiem Tabulārais dokuments Un Grafiskā shēma parādījās īpašības Dupleksā druka Un Lapu izkārtojumu maiņa, ar kuru var mainīt drukāto lapu izkārtojumu.

Platformas versijā 8.3.9 DuplexPrintType sistēmas uzskaitījumam ir jauna pievienotā vērtība Izmantojiet Printera iestatījumus. Šīs vērtības atlasīšana ļāva izmantot printera iestatījumus, drukājot sistēmas dokumentus. 8.3.8 saderības režīmā darbība nemainās, un attiecīgie printera iestatījumi tiek ignorēti.

Dialogs informācijas bāzes publicēšanai tīmekļa serverī ir padarīts funkcionālāks. Tagad publicēšana no konfiguratora ļauj iestatīt visus faila parametrus default.vrd.

Dialoglodziņā tīmekļa klienta un tīmekļa pakalpojumu publicēšanai, izmantojot konfiguratoru, ir ieviests šāds:

  • spēja kontrolēt Web pakalpojumu pieejamību pēc noklusējuma (atribūts pointEnableCommon elements ws);
  • iespēja kontrolēt fona darbu izpildi faila versijā (atribūts atļaut veikt ieplānotus darbus elements ws).

Ja izvēles rūtiņa “Publicēt tīmekļa pakalpojumus pēc noklusējuma” uz grāmatzīmes "Pamata" ir instalēta, tad, atjauninot publikāciju, atlasītie Web pakalpojumi tiks publicēti automātiski.

Pretējā gadījumā tīmekļa pakalpojumi tiks atzīmēti kā nepublicējami. Šis karogs atbilst atribūtam pointEnableCommon elements ws failā default.vrd, kas paredzēts tīmekļa klienta un tīmekļa pakalpojumu iestatīšanai.

Atribūts pointEnableCommon ws elements ir atbildīgs par iespēju šajā informācijas bāzē izmantot tīmekļa pakalpojumus, kas publicēti, skaidri nenorādot lietošanas atļauju (atribūts iespējot elements punktu).

Ja atribūtam ir vērtība taisnība, tad visi tīmekļa pakalpojumi, kuriem nav skaidri norādīta atribūta vērtība iespējot elements punktu, tiks atļauts izmantot.

Pretējā gadījumā šādu tīmekļa pakalpojumu izmantošana būs aizliegta.

Iestatījumi “Fona darbi faila režīmā” atbilst atribūtam atļaut veikt ieplānotus darbus ws elements failā default.vrd.

Atribūts atļaut veikt ieplānotus darbus kontrolē spēju izpildīt ikdienas uzdevumus, izmantojot tīmekļa servera paplašinājumu informācijas bāzes faila versijai.

Atribūtam var būt šādas vērtības:

  • izslēgts– šajā gadījumā tīmekļa servera paplašinājums nepildīs parastos uzdevumus. Ikdienas uzdevumus veiks klienta lietojumprogramma (ja tāda ir), kas savienojas ar informācijas bāzi tieši, neizmantojot tīmekļa serveri.
  • spēku– šajā gadījumā tīmekļa servera paplašinājums veiks parastos uzdevumus.
    Ja šī atribūta vērtība nav norādīta, rutīnas uzdevumus veiks lietojumprogramma, ar kuru tiks izveidots pirmais savienojums ar informācijas bāzi.

Publicēšanas logs tīmekļa pakalpojumā ir kļuvis vēl ērtāks un ergonomiskāks pašreizējā platformas izlaidumā. Tagad parametri, kas apraksta OpenID autentifikāciju, ir ievietoti atsevišķā cilnē.

Informācijas bāzes objektu numerācija

Uz platformas 8.3 Pārstrādāts informācijas bāzes objektu automātiskās numerācijas mehānisms. Ciparu vai koda unikalitāte (arī to, kas iegūta skaitļa vai koda automātiskās ģenerēšanas rezultātā) vienmēr tiek pārbaudīta, ierakstot objektu.

Ziņas tekstam par numura vai koda unikalitātes pārkāpumu ir pievienota norāde par to, kurš numurs vai kods nav unikāls.

Ir mainījusies brīvā numura vai koda izmantošana. Jauns numurs vai kods tiek piešķirts, neizmantojot atbrīvotos numurus vai kodus, ja jau ir izsniegti numuri vai kodi ar lielu (secībā) numura vai koda prefiksu.

Datu kompozīcijas sistēmas izteiksmes valodas apkopotās funkcijas

Datu kompozīcijas sistēmas izteiksmes valodā tiek ieviestas jaunas apkopošanas funkcijas:

  • Katrs();
  • Jebkurš();
  • Iedzīvotāju standartnovirze();
  • Standarta parauga novirze();
  • VarianceSamples();
  • VarianceofPopulation();
  • KovariancePopulācija();
  • ParaugsKovariance();
  • Korelācija();
  • RegressionSlope();
  • Regresijas segments();
  • Regresijas skaits();
  • RegresijaR2();
  • RegresijaAverageX();
  • RegresijaAverageY();
  • RegresijaAverageSXX();
  • RegresijaAverageSYY();
  • RegressionAverageSXY().

Kā norāda nosaukumi, tās ir statistikas funkcijas, kas nozīmē, ka izstrādātājiem ir iespēja izveidot sarežģītas atskaites, neizstrādājot statistikas datu aprēķināšanas procedūras.

Lai palielinātu, noklikšķiniet uz attēla.

Kā redzams attēlā, nolaižamajā sarakstā nav jaunu funkciju, taču, ievadot tās manuāli, netiks parādīts kļūdas ziņojums un tiks ģenerēts pārskats:

Arī interesē jauna funkcijaKlasifikācijaABC(). Funkcijas rezultāts būs klases numurs, sākot no 1 (1 atbilst A klasei, 2 - B klasei, 3 - C klasei utt.).

Parādīsim, kā šī funkcija darbojas. Izveidosim jaunu ārējo pārskatu "Preču klasifikācija" pamatojoties uz pieprasījumu:

IZVĒLIES
Produktu patēriņšProdukti.Produkts,
Produktu patēriņšProdukti. Daudzums
NO
Dokuments. Preču patēriņš. PrecesProduktu patēriņšProdukti

Definēsim jaunu aprēķināto lauku Klase:

Lai palielinātu, noklikšķiniet uz attēla.

Konfigurēsim resursus šādi:

Lai palielinātu, noklikšķiniet uz attēla.

Lietotāja režīmā pārskats izskatās šādi:

Noslēgumā mēs atzīmējam, ka no izdevuma uz izdevumu platformā 1C 8.3 ACS mehānisms tiek nepārtraukti uzlabots un pilnveidots, un mūsu “iesācēju” raksta ietvaros šīs izmaiņas nav iespējams prezentēt pilnībā. Jā, tas šķiet nevajadzīgi, jo, strādājot pie pašreizējās platformas versijas, jūs vienmēr varat izmantot dažādas palīdzības sistēmas, lai palīdzētu analizēt šo vai citu šī mehānisma darbības aspektu.

Turklāt neaizmirstiet par mūsu atsevišķo kursu Atskaišu profesionālā pilnveide 1C 8.3 par datu kompozīcijas sistēmu, kas, strādājot ar šo mehānismu, līdz atomiem sadala visus smalkumus un nepilnības. Apskatiet demonstrāciju paši.

Tātad, apkoposim starpposma rezultātus. Līdz šim esam iepazinušies ar Taxi interfeisa un pārvaldīto formu jaunajām iespējām, kā arī ar dažām iepriekš nenodrošinātām pašas platformas iespējām. Tagad ir pienācis laiks redzēt, kādas ērtas funkcijas ir kļuvušas pieejamas izstrādātājam konfiguratorā.

Ļauj veikt jebkādus aprēķinus sistēmā lietotājam nepamanot, tas ir, fonā. Turklāt šis mehānisms ļauj mums paralēli veikt aprēķinu procesu. Mēs pat varam paralēli veikt procedūru. Lai to izdarītu, mūsu fona darbam ir jāpalaiž vēl vairāki fona darbi. Šajā gadījumā procesi tiek paralēli un, ja mums ir daudzprocesoru, daudzkodolu sistēma, mūsu algoritms darbosies efektīvi. Pēc vairāku procesu palaišanas mēs varam pateikt sistēmai, ka tai ir jāgaida šo procesu pabeigšana, lai kaut kā apvienotu rezultātu.

Piemēram, tipiskās konfigurācijās, kamēr lietotājs strādā, dažāda veida pakalpojumu fona darbi. Par to var liecināt žurnāla ieraksti, kas fiksē faktu, ka šādas darbības veiktas. Turklāt tas nekādā veidā neietekmē lietotāja darbu, viņš tos vienkārši nepamana.

Ideālā gadījumā fona darbs tiek ieviests klienta-servera versijā, un tādā gadījumā visa slodze nonāk serverī. Kas attiecas uz faila versiju, fona darbs ir iespējams, taču tam ir dažas īpatnības.

Tas ir tas, ko sistēma radīs, ja neņemsit vērā šīs funkcijas un palaižat fona darbu informācijas bāzes faila versijā.


1C fona darbam ir daži ierobežojumi. Tā kā tas tiek izpildīts servera pusē, nav iespējams veikt interaktīvu darbu ar lietotāju. Piemēram, jūs nevarat parādīt ziņojumu vai vispār nekādu informāciju. Visi šie dati ir jāuzglabā informācijas bāzē un kaut kādā veidā tālāk jāapstrādā.
Sazinoties ar sintakses palīgu, varat iegūt detalizētāku informāciju par 1C fona darbiem. Šeit jāatzīmē, ka šis objekts ir tikai programmatūra un nekādā veidā netiek saglabāts datu bāzē. Tas ir, mēs izveidojam klases gadījumu, inicializējam rekvizītus un palaižam to izpildei.

Kādi rīki mums ir, lai pārvaldītu fona darbus? Šī iespēja ir metadatu objekts "Fona uzdevumu pārvaldnieks". Šim objektam ir metode "Skriet", izmantojot šo metodi, tiek palaists fona darbs.

Tam ir šādi parametri:
"Metodes nosaukums"- izpildāmās procedūras vai funkcijas nosaukums, un tai ir jābūt servera konteksta procedūrai vai funkcijai;

"Opcijas"- parametru masīvs, kura elementu skaitam jāatbilst parametrā norādītajam mūsu procedūras/funkcijas parametru skaitam "Metodes nosaukums";

"Atslēga"- noteikta unikalitātes atslēga, kas ir rinda, pēc kuras sistēma saprot, vai ir jāpalaiž fona uzdevums, vai arī šāds uzdevums jau darbojas;

"Vārds"- šeit varat norādīt patvaļīgu mūsu metodes aprakstu.

Atgriešanas vērtība ir objekts "Fona uzdevums", kas satur pašreizējās metodes nosaukumu, pašreizējo atslēgu un vairākus citus rekvizītus un metodes. Viena no šādām metodēm ir metode "Pagaidiet pabeigt". Tās mērķis ir nodrošināt, lai sistēma neko nedarītu, kamēr fona darbs nav pabeigts.

Fona darbs 1C 8.2, 8.3 — izmantošanas piemērs

Sniegsim piemēru darbam ar 1C fona darbiem. Pirmkārt, mēs izveidosim vienkāršu algoritmu, kas īsi ielādēs 1C sistēmu tā, lai mēs šobrīd neko nevarētu darīt.

Lai to izdarītu:

1. Izveidosim kopīgu moduli "Fona uzdevumu apstrādātāji", kas tiks apkopota servera pusē;


2. Tajā aprakstīsim eksporta procedūru "ProduceBackgroundCalculation(Parameter)", kas aizņem vienu virknes tipa parametru;

Procedūra PerformBackgroundCalculation(Parameter) ExportStartTime = CurrentDate() ;< = 6 Цикл КонецЦикла ; КонецПроцедуры Процедура КнНажатие() ОбработчикиФоновыхЗаданий. ПроизветиФоновоеВычисление(Kamēr CurrentDate() — sākuma laiks"Kāds parametrs"
Gatavs. Tagad, kad sākat apstrādi un nospiežat pogu, sistēma sastingst uz vairākām sekundēm, kuru laikā neko nevar izdarīt. Tas ir tieši tas, kas mums bija jādara.

Tagad mēs nodrošināsim, ka šie aprēķini tiek veikti fonā, tas ir, lai fona uzdevums 1C 8.2, 8.3 tiktu izpildīts, bet tas mūs netraucē.

Lai to izdarītu:

1. Apstrādes laikā pogas nospiešanas notikumā ierakstiet šādu kodu.

Procedūra KnPress() Parametri = jauns masīvs; Kamēr CurrentDate() — sākuma laiks Iespējas. Pievienot( ) ; Fona uzdevums. Palaist ( "Fona uzdevumu apstrādātāji. Veiciet fona aprēķinus""Kāds parametrs"

, Parametri, jauns unikālais identifikators,

"Pārbaudes uzdevums"

  • Šeit mēs nododam kopējās moduļa procedūras nosaukumu kā pirmo parametru un parametru masīvu kā otro. Trešajam parametram ir jānodod unikāla atslēga, bet ceturtajam parametram - kāds mūsu procedūras apraksts.
  • Bieži vien, veicot ierakstus, periodiski ir jāveic noteiktas darbības bez lietotāja iejaukšanās. Ikdienas un fona uzdevumi 1C ir tie mehānismi, kas šim nolūkam ir paredzēti programmas astotajā versijā un ļauj:
  • Noteikt savlaicīgu dokumentu piegādi; Aprēķināt atlikumus un kopsummas;;
  • Nodrošiniet biežumu

adresātu saraksts

Pārbaudiet un dzēsiet neatbilstošos datus. Fona un ieplānotais uzdevums - kas tas ir un kur tas ir konfigurēts?

Plānotais uzdevums

- 1C iebūvēts mehānisms, kas ļauj konfigurēt un saskaņā ar noteikto grafiku un biežumu veikt noteiktu darbību secību.

  • Fona darbs ir darbība, ko ģenerē rutīnas darbība, un tai nav nepieciešama tieša lietotāja līdzdalība.
  • Konfiguratora režīmā tiek izveidots rutīnas uzdevums:
  • Konfigurācijas koka logā atrodam atbilstošo zaru (1. att.);

Noklikšķiniet uz pievienošanas pogas;

  • Atvērtajā logā jānorāda nosaukums, kas ļauj identificēt objektu konfigurācijā;

2. att

  • Pretī uzrakstam “Grafiks” (2. att.) ir uzraksts “Atvērt”, uz kura noklikšķinot atveras hendlera izpildes laika un biežuma iestatīšanas logs (3. att.);
  • 3. att
  • Jāaizpilda arī “Metodes nosaukums” (šeit tiks ievadīts no vispārējā moduļa izsauktās procedūras nosaukums, kas apraksta programmas uzvedības algoritmu);
  • “Iepriekš definēts” ir jāiestata, ja apdarinātājs ir jāpalaiž uzreiz pēc tā pievienošanas datu bāzei, pretējā gadījumā palaišanu var veikt no atbilstošās apstrādes (par to sīkāk zemāk);
  • Parametri “Atkārtošanas mēģinājumu skaits” un “Atkārtošanas intervāls” apraksta programmas darbību, ja fona darba izpildes laikā rodas izņēmums.

Tātad, izmantojot parasto darbību mehānismu, varat iestatīt fona darbu grafiku un galvenās darbības. Tagad apskatīsim to īpašības.

Fona darbu iezīmes

Šī mehānisma galvenā iezīme ir tāda, ka fona process darbojas asinhroni.

Ko tas nozīmē? Fakts ir tāds, ka ar sinhrono darba modeli, ja tiek izpildīts kāds algoritms, lietotāja saskarne tiek bloķēta. Mūsu gadījumā lietotājs var turpināt ievadīt un rediģēt datus pat tad, ja procedūra tiek veikta. Asinhronās programmēšanas modelis ietver skaitļošanas pavedienu atdalīšanu.

Tādējādi fona darbi 1C var radīt savus procesus, sadalot aprēķinus dažādos serveros, kas iekļauti tajā pašā klasterī.

Darba iespējas klienta-servera režīmā

  • Izpildes plānošanu un kontroli veic plānotājs no serveru klastera;
  • Ja tiek parādīts izpildes pieprasījums, plānotājs meklē klastera darbinieka procesus ar minimālu slodzi un sadala tiem uzdevumus izpildei;
  • Katrs process var veikt vairākus paralēlus aprēķinus;
  • Pēc uzdevuma saņemšanas process izveido savienojumu ar datu bāzi un izpilda tajā esošo algoritmu;
  • Process ziņo par rezultātiem plānotājam.

Fona darbi faila režīmā

Pirms platformas versijas 8.3.3.641, strādājot ar fona darbiem faila versijā, radās dažas grūtības:

  1. Bija nepieciešams uzsākt atsevišķu sesiju, kas darbotos visu diennakti, aizstājot plānotāju;
  2. Šai sesijai periodiski vajadzēja izpildīt RunJobProcessing() metodi.

Pēc atjaunināšanas katrs biezā un plānā klienta starts, ja palaišanas iestatījumos (4. att.) laukā “Papildu” ir norādīta atslēga AllowExecuteScheduledJobs, tiek uzsākts papildu pavediens savienojuma izveidei ar datu bāzi, kas neietekmē lietotāja darbu jebkādā veidā, bet veic tikai fona darbības.

4. att

Jāņem vērā, ka pat darba faila versijā fona procesi neļauj interaktīvi strādāt ar lietotāju (netiek rādīti pakalpojuma ziņojumi, brīdinājumi, jautājumi). Tas ir, tie ir jākodē tā, it kā tie tiktu izpildīti servera pusē.

Kā atspējot ieplānotos uzdevumus

Neizmantotos uzdevumus var atspējot, vienkārši noņemot atzīmi no izvēles rūtiņas “Izmantot” objekta rekvizītos.

Gadījumā, ja administratoram ir jāaizliedz rutīnas un fona operāciju izmantošana visai datu bāzei kopumā (piemēram, serverī tiek glabātas vairākas datu bāzes, no kurām tikai viena ir galvenā, bet pārējās tiek izmantotas tikai izstrādei), nepieciešams izmantot datu bāzes administrēšanas utilītu. Varat arī atzīmēt izvēles rūtiņu “Iestatīt parasto uzdevumu bloķēšanu” serverī izveidotajā datu bāzē.

Turklāt ITS diskiem ir īpaša apstrāde “Uzdevumu konsole”, kas ļauj rediģēt grafiku fona procesi un mainīt savu darbību.

1C datu bāzu ikdienas uzdevumu pārvaldīšana no atjauninātāja

2018-11-20T15:18:30+00:00

Šajā piezīmē mēs apskatīsim atjauninātāja iespējas, lai pārvaldītu ikdienas uzdevumus datu bāzēs.

Pirmkārt, sadaļā “Vairāk” -> “Pārvaldīt ikdienas uzdevumus...”:

IN konteksta izvēlneīpaša datu bāze (vai datu bāzu grupa):

Visbeidzot, pakešu skriptu veidnēs (tas ļauj veikt darbības ar parastajiem uzdevumiem no skripta saskaņā ar grafiku):

Šādi izskatās dialoglodziņš rutīnas uzdevumu pārvaldīšanai datu bāzēs:

Kādas problēmas tas ļauj atrisināt pareizā grupa bāzes (vai viena bāze)?

Ikdienas uzdevumu izvēle

Lūdzu, ņemiet vērā, ka daudzās tālāk norādītajās darbībās varat atlasīt rutīnas uzdevumu sarakstu.

Taču atlases dialoglodziņā var nebūt rutīnas uzdevumu, kas īpaši paredzēti jūsu datu bāzei:

Šajā gadījumā sadaļā “Jūsu uzdevumi...” varat norādīt nepieciešamo ieplānoto uzdevumu nosaukumus, piemēram, šādi:

Šādu kārtējo uzdevumu nosaukumus var iegūt tieši no atskaites par visiem ikdienas uzdevumiem (tas tiek apspriests).

Parāda pašreizējo uzdevumu statusu

Lai to izdarītu, dodieties uz cilni "Izņemt" un noklikšķiniet uz pogas "Izņemt...":

Rezultātos varam redzēt:

  1. Jaunu plānoto uzdevumu palaišana 1C serverī ir iespējota vai atspējota.
  2. Regulāro uzdevumu saraksts datu bāzē.
  3. Viņu grafiks.
  4. Darbi ir iespējoti vai atspējoti.
  5. Ja pēdējā uzdevuma izpildē radās kļūda, šī kļūda tiek parādīta sarkanā krāsā blakus uzdevumam.

Ja nepieciešams, funkciju iestatījumos mēs varam sašaurināt plānoto uzdevumu sarakstu, kā arī parādīt tikai iespējotos uzdevumus:

Izslēdziet visus vai dažus uzdevumus

Lai to izdarītu, dodieties uz cilni “Izslēgt”:

Visiem vai atlasītajiem plānotajiem uzdevumiem izvēles rūtiņa "Izmantot" tiks notīrīta.

Šeit ir vienas bāzes rezultāts (noklikšķiniet, lai izvērstu)

Iekļaujiet visus vai dažus uzdevumus

Lai to izdarītu, dodieties uz cilni “Iespējot”:

Visiem vai atlasītajiem plānotajiem uzdevumiem tiks atzīmēta izvēles rūtiņa "Lietojums".

Lūdzu, ņemiet vērā, ka šajā cilnē ir pieejams karodziņš "Izgatavot". rezerves kopija bāze" apakšējā kreisajā stūrī.

Šeit ir vienas bāzes rezultāts (noklikšķiniet, lai izvērstu)

Mēs pārvaldām plānoto uzdevumu palaišanu 1C serverī

Lai to izdarītu, dodieties uz cilni “1C serveris”:

Atlasiet “bloķēt” vai “atbloķēt” un noklikšķiniet uz pogas “Palaist”.

Uzdevumu grafika iestatīšana

Bet ko darīt, ja mums ir jāizveido grafiks uzdevuma (vai uzdevumu grupas) palaišanai daudzās datu bāzēs vienlaikus?

Lai to izdarītu, atveriet cilni “Iestatīt grafiku”:

Mēs izveidojam grafiku (dialogs un tā iespējas pilnībā sakrīt ar standarta 1C) un noklikšķiniet uz “Pielāgot...”.

Mēs uzsākam uzdevumu izpildi

Lai to izdarītu, dodieties uz cilni "Palaist":

Izvēlieties nepieciešamos uzdevumus un noklikšķiniet uz pogas "Palaist":

Uzdevuma iestatījumu saglabāšana ārējā failā

Pieņemsim, ka vienā no datu bāzēm esam ideāli konfigurējuši rutīnas uzdevumus un vēlamies šos iestatījumus pārsūtīt uz visām pārējām datu bāzēm.

Lai to izdarītu, mēs vispirms augšupielādējam visus uzdevumu iestatījumus ideālajā datu bāzē ārējā failā:

Uzdevuma iestatījumu atjaunošana no ārēja faila

Un tad mēs ielādējam šo failu ar uzdevumu iestatījumiem visās citās datu bāzēs:

Vienkārši ņemiet vērā, ka šim uzdevumam (darba iestatījumu pārsūtīšanai no vienas datu bāzes uz citu) es izvēlējos saskaņošanas metodi pēc darba nosaukuma, nevis pēc iekšējā identifikatora.

Šķiršanās vārdi

Kopumā tas ir viss, ko es gribēju jums pateikt. Es pats redzu daudzus scenārijus jaunu funkciju izmantošanai, taču šeit es tikai īsi pārlasu galvenos punktus.