Tulla sisään
Kaikki tietokoneen salaisuudet aloittelijoille ja ammattilaisille
  • Java-pelejä Prince Of Persia -sarjasta matkapuhelimiin Lataa peli Prince of Persia 5 puhelimeesi
  • Lataa toiminto Batman: Rise of Android Android-puhelinpeleihin Batman
  • Autovahvistin - taloudellisia vaihtoehtoja äänen luomiseen ohjaamossa Kuinka koota äänenvahvistinpiiri
  • Laadukas vahvistin ilman palautetta: End Millennium -kaksivaiheinen transistorivahvistin
  • Streams World Of Tanks Aces gg l ensimmäinen tankki
  • Parhaat keskikokoiset tankit World of Tanksissa
  • Taustatehtävät: ominaisuudet, ominaisuudet, asetukset. Rutiini- ja taustatehtävät Rutiini- ja taustatehtävät 1s 8.3

    Taustatehtävät: ominaisuudet, ominaisuudet, asetukset.  Rutiini- ja taustatehtävät Rutiini- ja taustatehtävät 1s 8.3

    Todennäköisesti jokaisen 1C 8.3 -ohjelmoijan täytyi ennemmin tai myöhemmin asettaa tiettyjen tehtävien suorittaminen aikataulussa. Alla annan yksityiskohtaisen kuvauksen näistä mekanismeista, toivon, että tämä on hyödyllistä tietoa aloitteleville 1C-ohjelmoijille. Tämä on erittäin kätevää, koska se ei vaadi ihmisen toimia, rutiinitehtävä konfiguroidaan kerran ja toimii aikataulusi mukaan.

    Löydät yksityiskohtaiset ohjeet alla olevan esimerkin avulla.

    Mitä ovat rutiini- ja taustatehtävät 1C:ssä

    • Ajoitetut tehtävät on erityinen 1C Enterprise 8.3 -mekanismi, joka on suunniteltu suorittamaan tietty toiminto tietyn aikataulun mukaisesti.
    • Taustatyötä- rutiinitehtävän luomat objektit, jotka suorittavat suoraan aiotun toiminnon ilman käyttäjän tai 1C 8.2 -ohjelmoijan osallistumista.

    Rutiini- ja taustatöiden mekanismi toimii asiakaspalvelintilassa (SQL) DBMS:n toiminnallisuuden ansiosta. Jos sinulla on tiedostotietokanta, tehtävä voidaan myös konfiguroida, mutta hieman eri periaatteella.

    Taustatöiden määrittäminen 1C-asiakaspalvelintilassa

    Luodaan ensin uusi metatieto-objekti - rutiinitehtävä. Kutsun tehtävääni "Valuuttakurssien lataaminen". Katsotaanpa tämän konfigurointiobjektin ominaisuuspalettia:

    Hanki 267 videotuntia 1C:llä ilmaiseksi:

    • Menetelmän nimi— polku prosessiin, joka suoritetaan taustatyössä tietyn aikataulun mukaisesti. Menettelyn on oltava yhteisessä moduulissa. Ei ole suositeltavaa käyttää tavallisia, vaan luoda omia. Älä unohda, että taustatyöt suoritetaan palvelimella!
    • Käyttö— merkki rutiinitehtävän käytöstä.
    • Ennalta määrätty— osoittaa, onko rutiinitehtävä ennalta määritetty. Jos haluat rutiinitehtävän toimivan heti tietokantaan sijoittamisen jälkeen, määritä tämä lippu. Muussa tapauksessa sinun on käytettävä Job Console -käsittelyä tai suoritettava työ ohjelmallisesti.
    • Uudelleenyritysten määrä, kun tehtävä päättyy epänormaalisti— kuinka monta kertaa taustatyö käynnistettiin uudelleen, jos se suoritettiin virheellisesti.
    • Uudelleenyritysten aikaväli, kun työ päättyy epänormaalisti— kuinka usein taustatyö käynnistetään uudelleen, jos se valmistui virheellisesti.

    Ja mielenkiintoisin asetus on Ajoittaa:

    Tässä määrität "Methodin nimi" -kentässä määritetyn toimenpiteen käynnistysvälin. Oletetaan, että määritin

    Huomio!Älä unohda poistaa rutiini- ja taustatöiden estoa DBMS-tasolla!

    Tämä voidaan tehdä asiakas-palvelinversion hallintaohjelmassa tai luotaessa uutta tietokantaa:

    Rutiinitehtävien määrittäminen 1C-tiedostotilassa

    Tiedostotilassa tällaisten töiden määrittäminen on hieman vaikeampaa. Tällaista tehtävää varten on käynnistettävä erillinen 1C-ohjelman istunto. Tämä ratkaistaan ​​usein luomalla "tekninen" käyttäjä, jonka istunto on aina käynnissä.

    Tiedostotilassa rutiinityö alustetaan, kun "RunTaskProcessing()" -menetelmä käynnistetään.

    Tietylle käyttäjälle voit määrittää tämän menetelmän toimimaan toisella menetelmällä −

    ConnectWaitHandler( <ИмяПроцедуры>, <Интервал>, <Однократно>).

    • Menettelyn nimi— odotuskäsittelijäksi yhdistetyn toimenpiteen nimi. Hallitun sovellusmoduulin (tavallinen sovellusmoduuli) tai globaalin jaetun moduulin viedyn prosessin nimi. Menettelyn tulee sijaita asiakkaalla.
    • Intervalli— toimintojen suoritusten välinen aika sekunneissa.
    • Kerran- kuinka suorittaa tehtävä, kerran tai ei.

    ConnectWaitHandler, 3600 );

    Kahden minuutin video, joka näyttää, kuinka rutiinitehtävä määritetään 1C-konfiguraattorissa:

    1 Työmekanismi
    2 taustatyötä
    3 Aikataulutettuja tehtäviä
    4 Taustatöiden suorittamisen ominaisuudet tiedosto- ja asiakaspalvelinversioissa
    5 Metatietojen luominen rutiinitehtävää varten
    6 Työkonsoli
    7 Työskentely rutiinitehtävien kanssa
    7.1 Työkohteet
    7.2 Tehtäväluettelon saaminen
    7.3 Luominen
    7.4 Asennuksen poistaminen
    7.5 Työkohteen saaminen

    Työmekanismi

    Työkone on suunniteltu suorittamaan mitä tahansa sovelluksia tai toimintoja aikataulussa tai asynkronisesti.

    Tehtävämekanismi ratkaisee seuraavat tehtävät:

    • Kyky määritellä sääntelymenettelyjä järjestelmän konfigurointivaiheessa;
    • Määrättyjen toimien suorittaminen aikataulun mukaisesti;
    • Kutsun soittaminen tiettyyn proseduuriin tai toimintoon asynkronisesti, ts. odottamatta sen valmistumista;
    • Tietyn tehtävän edistymisen seuraaminen ja sen valmistumistilan saaminen (arvo, joka osoittaa, onnistuiko se vai ei);
    • Nykyisten tehtävien luettelon saaminen;
    • Kyky odottaa yhden tai useamman tehtävän valmistumista;
    • Työnhallinta (peruutusmahdollisuus, suorituksen estäminen jne.).

    Työmekanismi koostuu seuraavista osista:

    • Rutiinitehtävien metatiedot;
    • Säännölliset tehtävät;
    • Taustatyöt;
    • Tehtävien ajoitus.

    Taustatyöt on suunniteltu suorittamaan sovellustehtävät asynkronisesti. Taustatehtävät toteutetaan sisäänrakennetulla kielellä.

    Ajoitetut tehtävät - suunniteltu suorittamaan sovellettavia tehtäviä aikataulussa. Rutiinitehtävät tallennetaan tietokantaan ja luodaan konfiguraatiossa määritettyjen metatietojen perusteella. Sääntelytehtävän metatiedot sisältävät tietoja, kuten nimi, menetelmä, käyttö jne.

    Rutiinitehtävällä on aikataulu, joka määrittää, milloin rutiinitehtävään liittyvä menetelmä on suoritettava. Aikataulu on pääsääntöisesti määritetty tietokannassa, mutta se voidaan määrittää myös konfigurointivaiheessa (esimerkiksi ennalta määritetyille rutiinitehtäville).

    Tehtävien ajoitinta käytetään rutiinitehtävien suorittamisen ajoittamiseen. Jokaisen ajoitetun työn osalta ajoittaja tarkistaa säännöllisesti, vastaavatko nykyinen päivämäärä ja aika ajoitetun työn aikataulua. Jos se täsmää, ajoittaja määrittää tämän tehtävän suoritukseen. Tätä varten ajastin luo tälle ajoitetulle tehtävälle taustatehtävän, joka suorittaa varsinaisen käsittelyn.

    Taustatyöt

    Taustatöitä on kätevä käyttää monimutkaisten laskelmien suorittamiseen, kun laskennan tuloksen saaminen voi kestää kauan. Työkoneella on keinot suorittaa tällaiset laskelmat asynkronisesti.

    Taustatyöhön liittyy menetelmä, jota kutsutaan, kun taustatyö suoritetaan. Taustatyömenetelmä voi olla mikä tahansa ei-globaalin yhteisen moduulin toiminto tai toiminto, joka voidaan kutsua palvelimelta. Taustatyöparametrit voivat olla mitä tahansa arvoja, jotka sallitaan välittää palvelimelle. Taustatyön parametrien on vastattava tarkasti sen kutsuman proseduurin tai funktion parametreja. Jos taustatyön menetelmä on funktio, sen palautusarvo jätetään huomiotta.

    Taustatyöllä voi olla avain – mikä tahansa sovellusarvo. Avain asettaa rajoituksen taustatöiden käynnistämiselle - vain yksi taustatyö voidaan suorittaa aikayksikköä kohden tietyllä avainarvolla ja annetulla taustatyön menetelmän nimellä (metodin nimi koostuu moduulin nimestä ja proseduurin nimestä tai toiminto). Avaimen avulla voit ryhmitellä taustatyöt, joilla on samat menetelmät, tietyn sovellusominaisuuden mukaan siten, että yhdessä ryhmässä ei suoriteta enempää kuin yksi taustatyö.

    Taustatöitä luodaan ja hallitaan ohjelmallisesti mistä tahansa yhteydestä. Jokainen käyttäjä voi luoda taustatyön. Lisäksi se suoritetaan sen luoneen käyttäjän puolesta. Käyttäjä, jolla on järjestelmänvalvojan oikeudet, tai käyttäjä, joka on luonut nämä taustatyöt, voi vastaanottaa tehtäviä ja odottaa niiden valmistumista mistä tahansa yhteydestä.

    Taustatyö on puhtaasti istuntoobjekti, eikä se kuulu mihinkään käyttäjän istuntoon. Jokaista tehtävää varten luodaan erityinen järjestelmäistunto, joka suoritetaan puhelun tehneen käyttäjän puolesta. Taustatöillä ei ole pysyvää tilaa.

    Taustatyö voi synnyttää muita taustatöitä. Asiakas-palvelin-versiossa tämän avulla voit rinnastaa monimutkaisia ​​laskelmia klusterityöntekijöiden prosesseissa, mikä voi merkittävästi nopeuttaa laskentaprosessia kokonaisuutena. Rinnakkaisu toteutetaan synnyttämällä useita lapsitaustatöitä ja odottamalla kunkin valmistumista päätaustatyössä.

    Taustatyöt, jotka valmistuvat onnistuneesti tai epäonnistuvat, säilytetään 24 tunnin ajan ja poistetaan sitten. Jos valmiiden taustatöiden määrä ylittää 1000, myös vanhimmat taustatyöt poistetaan.

    Ajoitetut tehtävät

    Aikataulutettuja tehtäviä käytetään, kun on tarpeen suorittaa tiettyjä säännöllisiä tai kertaluonteisia toimintoja aikataulun mukaisesti.

    Ajoitetut tehtävät tallennetaan tietokantaan ja luodaan konfiguraatiossa määritellyn rutiinitehtävän metatietojen perusteella. Metadata määrittelee sellaiset rutiinitehtävän parametrit kuten: kutsuttu menetelmä, nimi, avain, käyttömahdollisuus, ennaltamääräyksen merkki jne. Rutiinitehtävää luotaessa voit lisäksi määrittää aikataulun (voidaan määrittää metatiedoissa), arvot ​menetelmäparametreista, sen käyttäjän nimi, jonka puolesta rutiinitehtävät suoritetaan jne.

    Ajoitettujen tehtävien luominen ja hallinta suoritetaan ohjelmallisesti mistä tahansa yhteydestä, ja se on sallittu vain käyttäjille, joilla on järjestelmänvalvojan oikeudet.

    Huomautus. Tiedostoversiossa työskennellessä on mahdollista luoda ja muokata rutiinitehtäviä käynnistämättä tehtävän ajastinta.

    Rutiinitehtävään liittyy menetelmä, jota kutsutaan, kun rutiinitehtävä suoritetaan. Rutiinitehtävämenetelmä voi olla mikä tahansa ei-globaalin yhteisen moduulin toiminto tai toiminto, joka voidaan kutsua palvelimelta. Rutiinitehtävän parametrit voivat olla mitä tahansa arvoja, jotka sallitaan lähettää palvelimelle. Rutiinitehtävän parametrien on vastattava tarkasti sen kutsuman proseduurin tai funktion parametreja. Jos rutiinitehtävämenetelmä on funktio, sen palautusarvo jätetään huomiotta.

    Rutiinitehtävällä voi olla avain - mikä tahansa sovellusarvo. Avain asettaa rajoituksen ajoitettujen tehtävien käynnistämiselle, koska aikayksikköä kohti samaan metatietoobjektiin liittyvistä rutiinitehtävistä voidaan suorittaa vain yksi rutiinitehtävä tietyllä avainarvolla. Avaimen avulla voit ryhmitellä samaan metatieto-objektiin liittyvät rutiinitehtävät tietyn sovellusominaisuuden mukaan siten, että yhdessä ryhmässä ei suoriteta enempää kuin yksi rutiinitehtävä.

    Määrityksen aikana voit määrittää ennalta määritettyjä rutiinitehtäviä. Ennalta määritetyt rutiinitehtävät eivät eroa tavallisista rutiinitehtävistä, paitsi että niitä ei voi nimenomaisesti luoda tai poistaa. Jos ajoitetun tehtävän metatiedoissa se on asetettu merkki ennalta määrätystä rutiinitehtävästä, silloin kun päivität konfiguraatiota tietokannassa, ennalta määritetty rutiinitehtävä luodaan automaattisesti. Jos ennalta määritetty lippu tyhjennetään, ennalta määritetty rutiinitehtävä poistetaan automaattisesti päivitettäessä konfiguraatiota tietokannassa. Ennalta määritetyn ajoitetun tehtävän (esimerkiksi aikataulun) ominaisuuksien alkuarvot asetetaan metatiedoissa. Jatkossa, kun sovellus on käynnissä, niitä voidaan muuttaa. Ennalta määritetyillä rutiinitehtävillä ei ole parametreja.

    Rutiinitehtäväaikataulu määrittää, milloin rutiinitehtävä tulee suorittaa. Aikataulun avulla voit asettaa: tehtävän alkamis- ja päättymispäivämäärän ja -ajan, suoritusajan, viikonpäivät ja kuukaudet, joihin mennessä ajoitettu tehtävä on suoritettava jne. (katso rakennetun- kielellä).

    Esimerkkejä rutiinitehtäväaikatauluista:

    Joka tunti, vain yksi päivä

    RepeatDays Period = 0, RepeatDays Period = 3600

    Joka päivä kerran päivässä

    RepeatDays Period = 1, RepeatDays Period = 0

    Yksi päivä, yksi kerta

    PeriodRepeatDays = 0

    Joka toinen päivä kerran päivässä

    PeriodRepeatDays = 2

    Joka tunti 01.00-07.00 joka päivä

    PeriodRepeatDays = 1
    Toistojakso päivän aikana = 3600
    Aloitusaika = 01.00
    Päättymisaika = 07.00

    Joka lauantai ja sunnuntai klo 09.00

    PeriodRepeatDays = 1
    Viikonpäivät = 6, 7
    Aloitusaika = 09.00

    Joka päivä viikon ajan, ohita viikko

    PeriodRepeatDays = 1
    Jakso Viikot = 2

    Klo 01.00 kerran

    Aloitusaika = 01.00

    Joka kuukauden viimeinen päivä klo 9.00.

    PeriodRepeatDays = 1
    DayInMonth = -1
    Aloitusaika = 09.00

    Joka kuukauden viides päivä klo 9.00

    PeriodRepeatDays = 1
    Päivä kuukaudessa = 5
    Aloitusaika = 09.00

    Joka kuukauden toinen keskiviikko klo 9.00

    PeriodRepeatDays = 1
    DayWeekInMonth = 2
    Viikonpäivät = 3
    Aloitusaika = 09.00

    Voit tarkistaa, onko tehtävä käynnissä tiettynä päivänä (ScheduleTasks-objektin RequiredExecution-menetelmä). Ajoitetut tehtävät suoritetaan aina tietyn käyttäjän nimellä. Jos ajoitetun tehtävän käyttäjää ei ole määritetty, suoritus tapahtuu oletuskäyttäjän puolesta, jolla on järjestelmänvalvojan oikeudet.

    Rutiinitehtävät suoritetaan taustatehtävillä. Kun ajoittaja määrittää, että ajoitettu tehtävä pitäisi käynnistää, taustatyö luodaan automaattisesti tämän ajoitetun tehtävän perusteella, joka suorittaa kaiken jatkokäsittelyn. Jos tämä rutiinitehtävä on jo käynnissä, sitä ei suoriteta uudelleen sen aikataulusta riippumatta.

    Ajoitetut tehtävät voidaan käynnistää uudelleen. Tämä pätee erityisesti silloin, kun rutiinitehtävämenetelmän suorittaminen on taattava. Rutiinitehtävä käynnistetään uudelleen, kun se päättyy epänormaalisti tai kun työntekijäprosessi (asiakas-palvelinversiossa) tai asiakasprosessi (tiedostoversiossa), jossa rutiinitehtävä suoritettiin, lopetetaan epänormaalisti. Ajastetussa tehtävässä voit määrittää, kuinka monta kertaa se on käynnistettävä uudelleen, sekä uudelleenkäynnistysten välisen aikavälin. Uudelleenkäynnistettävä rutiinitehtävämenetelmää toteutettaessa on otettava huomioon, että uudelleenkäynnistyksen yhteydessä sen suoritus alkaa alusta, eikä jatku epänormaalin lopettamisen hetkestä.

    On tärkeää muistaa se Loppu aika ei välttämättä suorita taustatyötä määritettynä aikana. Muutama lausunto:
    * Taustatyö voi jättää huomioimatta sen automaattisen peruutuksen, jos se ei ole jumissa vaan jatkaa jostain syystä
    että kaikkia alustan toimintoja ei voida peruuttaa. Jos sisäänrakennetun kielen syklinen koodi suoritetaan, peruuta työ
    ehkä muuten ei. Kaikki riippuu siitä, mitä työ tekee.
    * Päättymisaika – raja, jonka sisällä tehtävä voi alkaa mieluummin kuin päättyy?
    * Tehtävän pakotettu lopettaminen peruuttaa tapahtuman alkuun tehdyt muutokset?

    Taustatöiden suorittamisen ominaisuudet tiedosto- ja asiakaspalvelinversioissa

    Taustatöiden suorittamisen mekanismit tiedosto- ja asiakaspalvelinversioissa ovat erilaisia.

    • Tiedostoversiossa sinun on luotava oma asiakasprosessi, joka suorittaa taustatyöt. Tätä varten asiakasprosessin on ajoittain kutsuttava globaalia kontekstifunktiota ExecuteJobProcessing. Vain yksi asiakasprosessi tietokantaa kohden saa käsitellä taustatöitä (ja vastaavasti kutsua tätä toimintoa). Jos asiakasprosessia ei ole luotu taustatöiden käsittelemiseksi, kun työkonetta käytetään ohjelmallisesti, näyttöön tulee virheilmoitus "Työnhallinta ei ole aktiivinen". Ei ole suositeltavaa käyttää asiakasprosessia, joka käsittelee muiden toimintojen taustatöitä.

    Kun asiakasprosessin taustatöitä käsittelevä prosessi on käynnistetty, muut asiakasprosessit pääsevät ohjelmallisesti käsiksi taustatyökoneeseen, ts. voi suorittaa ja hallita taustatöitä.

    Asiakas-palvelin-versiossa taustatöiden suorittamiseen käytetään tehtävän ajastinta, joka sijaitsee fyysisesti klusterinhallinnassa. Kaikille jonossa oleville taustatöille ajoittaja saa vähiten ladatun työntekijäprosessin ja käyttää sitä vastaavan taustatyön suorittamiseen. Työntekijäprosessi suorittaa työn ja ilmoittaa aikatauluttajalle suorituksen tuloksista.

    Asiakas-palvelin-versiossa on mahdollista estää rutiinitehtävien suorittaminen. Rutiinitehtävien suorittaminen estetään seuraavissa tapauksissa:

    • Tietokantaan on asennettu selkeä rutiinitehtävien esto. Lukitus voidaan asettaa klusterikonsolin kautta;
    • Tietokannassa on yhteyslohko. Lukitus voidaan asettaa klusterikonsolin kautta;
    • SetExclusiveMode()-metodi, jossa on True-parametri, kutsuttiin sisäänrakennetusta kielestä;
    • Joissakin muissa tapauksissa (esimerkiksi tietokannan kokoonpanoa päivitettäessä).

    Luodaan metatietoja rutiinitehtävää varten

    Ennen kuin luot ohjelmallisesti rutiinitehtävän tietokannassa, sinun on luotava sille metatietoobjekti.

    Luodaksesi metatietoobjektin rutiinitehtävälle konfigurointipuussa ”Yleiset”-haaraan ”Rutiinitehtävät”-haaralle, suorita ”Lisää”-komento ja täytä seuraavat rutiinitehtävän ominaisuudet ominaisuuspaletissa:

    Menetelmän nimi - ilmoita rutiinitehtävämenetelmän nimi.

    Avain - määritä mielivaltainen merkkijonoarvo, jota käytetään ajoitetun tehtävän avaimena.

    Aikataulu - osoittaa rutiinitehtävän aikataulun. Aikataulun luomiseksi napsauta "Avaa"-linkkiä ja aseta haluamasi arvot avautuvassa aikataululomakkeessa.

    "Yleiset"-välilehdellä näkyvät tehtävän alkamis- ja päättymispäivät sekä toistotila.

    "Päivittäin"-välilehdellä näkyy tehtävän päivittäinen aikataulu.

    Ilmoita aikataulusi:

    • tehtävän alkamis- ja päättymisaika;
    • tehtävän valmistumisaika, jonka jälkeen se on pakko lopettaa;
    • tehtävän toistoaika;
    • tauon kesto toistojen välillä;
    • toteutuksen kesto.

    On sallittua määrittää mielivaltainen ehtoyhdistelmä.

    Viikoittain-välilehdellä näkyy tehtävän viikoittainen aikataulu.

    Valitse niiden viikonpäivien valintaruudut, joina tehtävä suoritetaan. Jos haluat toistaa tehtävän, määritä toistoväli viikkoina. Esimerkiksi tehtävä suoritetaan 2 viikossa, toistoarvo on 2.

    "Kuukausi"-välilehdellä näkyy tehtävän kuukausiaikataulu.

    Valitse niiden kuukausien valintaruudut, jolloin tehtävä suoritetaan. Tarvittaessa voit määrittää tietyn toteutuspäivän (kuukausi tai viikko) kuukauden/viikon alusta tai lopusta.

    Käyttö - jos asetettu, tehtävä suoritetaan aikataulun mukaisesti.

    Ennalta määritetty - jos se on asetettu, tehtävä on ennalta määritetty tehtävä.

    Uudelleenyritysten määrä epänormaalin lopettamisen tapauksessa - ilmaisee uudelleenyritysten määrän epänormaalin lopettamisen tapauksessa.

    Uudelleenyritysväli epänormaalin lopettamisen yhteydessä – määrittää uudelleenyritysvälin epänormaalin lopettamisen yhteydessä. Esimerkkejä

    Taustatyön "Täystekstihakuhakemistopäivitys" luominen:

    BackgroundTasks.Run("UpdatingFullTextSearchIndex");

    Rutiinitehtävän "Sekvenssien palautus" luominen:

    Aikataulu = Uusi aikataulutehtävä;
    Schedule.PeriodRepeatDays = 1;
    Schedule.RepeatPeriodDuringDay = 0;

    Task = RoutineTasks.CreateRoutineTask("Sekvenssien palauttaminen");
    Job.Schedule = Aikataulu;
    Tehtävä.Kirjoita();

    Työkonsoli

    Käsittely ITS:llä, hoitaa rutiinitehtävät: ConsoleTasks.epf

    Työskentely rutiinitehtävien kanssa

    Työkohteet

    Työobjekteihin ei viitata, vaan ne tallennetaan tietokantaan johonkin erityiseen tallennustilaan.

    Jos "Predefined" -lippu on käytössä metatiedoissa, tällainen objekti luodaan automaattisesti, kun 1C:Enterprise käynnistetään, ja se on aina olemassa täsmälleen yhdessä esiintymässä. Tällaista objektia ei voi poistaa.

    Jos "Ennalta määritetty" -lippua ei ole asetettu, tällaisen tehtävän objektit luodaan ja poistetaan ohjelmallisesti määrittämällä aikataulu ja parametrit.

    Tehtäväluettelon saaminen

    Tehtäväluettelon saa menetelmällä Hanki RoutineTasks globaali työnjohtaja RutiiniTasks

    ScheduledJobsManager

    Hanki ScheduledJobs (GetScheduledJobs)

    Syntaksi:

    Hanki RoutineTasks(<Отбор>)

    Vaihtoehdot:

    <Отбор>(valinnainen)

    Tyyppi: Rakenne. Valinnan määrittelevä rakenne. Rakennearvot voivat olla: UniqueIdentifier, Avain, Metatiedot, Ennalta määritetty, Käyttö, Nimi. Jos valintaa ei ole määritetty, kaikki rutiinitehtävät saadaan.

    Jos suodatat metatietojen mukaan, voit määrittää metatieto-arvoksi joko rutiinitehtävän metatietoobjektin tai sen nimen.

    Palautusarvo:

    Tyyppi: Array.

    Kuvaus:

    Vastaanottaa joukon rutiinitehtäviä tietylle valinnalle. Ajoitettujen tehtävien vastaanottaminen on mahdollista vain järjestelmänvalvojalle.

    Saatavuus:

    Jokaiselle sääntelysyklin säännölliselle henkilölle
    NewLine = Aikataulutettujen tehtävien luettelo.Add();
    NewRow.Metadata = Regular.Metadata.View();
    NewLine.Name = Säännöllinen.Nimi;
    NewString.Key = Regular.Key;
    NewLine.Schedule = Schedule.Schedule;
    NewLine.User = Tavallinen.Käyttäjänimi;
    NewString.Predefined = Säännöllinen.Ennalta määritetty;
    NewString.Use = Regular.Use;
    NewString.Identifier = Regular.UniqueIdentifier;

    LastTask = Regular.LastTask;
    Jos LastTask on määrittelemätön, silloin
    NewLine.Running = LastTask.Start;
    NewRow.State = LastTask.State;
    loppu Jos;
    EndCycle;

    Luominen

    Luotu Create RoutineTask -menetelmällä rutiinitehtävien johtajalle:

    RoutineTask = RoutineTasks.CreateRoutineTask(MetadataSelection);

    RegularTask.Name = Nimi;
    RegularTask.Key = Avain;
    RegularTask.Use = Käyttö;
    RoutineTask.UserName = UsersSelection;
    RoutineTask.Number ofRepetitionsAtEmergencyCompletion =Toistojen määräEmergencyCompletion;
    ScheduledTask.RepeatIntervalAtEmergencyCompletion = RetryIntervalAtEmergencyCompletion;
    ScheduleTask.Schedule = Aikataulu;
    RegularTask.Record();

    TaskObject = RoutineTasks.CreateRoutineTask("ExchangeExchange");

    TaskObject.Name = Nimi;
    JobObject.Use = tosi;

    Tehtäväobjektissa on "Parameters" -kenttä, jossa menetelmäparametrit on määritetty:

    Aikataulutettu työ

    Parametrit

    Käyttö:

    Lue ja kirjoita.

    Kuvaus:

    Tyyppi: Array. Joukko parametreja ajoitetulle tehtävälle. Parametrien lukumäärän ja koostumuksen tulee vastata rutiinitehtävämenetelmän parametreja.

    Saatavuus:

    Palvelin, paksu asiakas, ulkoinen yhteys.

    Huomautus:

    Luku- ja kirjoitusominaisuudet ovat vain järjestelmänvalvojan käytettävissä.

    Poistaminen

    Poistettu tehtäväobjektin Delete()-menetelmällä:

    ScheduledTask.Delete();

    Työkohteen saaminen

    • lista GetRoutineTasks-menetelmällä:
      Rutiini = RutiiniTasks.GetRoutineTasks(Valinta);
    • tehtävänhallintamenetelmän FindByUniqueIdentifierin kautta:
      Tehtävä = ScheduledTasks.FindByUniqueIdentifier(UID);

    [sinun täytyy rekisteröityä nähdäksesi linkin]

    Mahdollistaa laskelmien suorittamisen järjestelmässä käyttäjän huomaamatta, eli taustalla. Lisäksi tämän mekanismin avulla voimme rinnastaa laskentaprosessin. Voimme jopa rinnastaa suoritettavan menettelyn. Tätä varten taustatyömme on suoritettava useita taustatöitä. Tässä tapauksessa prosessit rinnastetaan ja jos meillä on moniprosessori, moniytiminen järjestelmä, algoritmimme toimii tehokkaasti. Useiden prosessien käynnistämisen jälkeen voimme kertoa järjestelmälle, että sen on odotettava näiden prosessien valmistumista voidakseen jotenkin yhdistää tuloksen.

    Esimerkiksi tyypillisissä kokoonpanoissa, kun käyttäjä työskentelee, suoritetaan erilaisia ​​taustapalvelutöitä. Tämä voidaan todistaa lokimerkinnöillä, jotka tallentavat tällaisten toimien suorittamisen. Lisäksi tämä ei vaikuta käyttäjän työhön millään tavalla, hän ei yksinkertaisesti huomaa niitä.

    Ihannetapauksessa taustatyö toteutetaan asiakas-palvelin-versiossa, jolloin koko kuorma menee palvelimelle. Mitä tulee tiedostoversioon, taustatyö on mahdollinen, mutta sillä on joitain erityispiirteitä.

    Tämän järjestelmä tuottaa, jos et ota näitä ominaisuuksia huomioon ja suorita taustatyötä tietokannan tiedostoversiossa.


    1C-taustatyöllä on joitain rajoituksia. Koska se toimii palvelinpuolella, ei ole mahdollisuutta vuorovaikutteiseen työskentelyyn käyttäjän kanssa. Et voi esimerkiksi näyttää viestiä tai mitään tietoja ollenkaan. Kaikki nämä tiedot on tallennettava tietokantaan ja käsiteltävä edelleen jollakin tavalla.
    Ottamalla yhteyttä syntaksiavustajaan saat tarkempaa tietoa 1C:n taustatöistä. Tässä on huomattava, että tämä objekti on puhtaasti ohjelmisto eikä sitä ole tallennettu tietokantaan millään tavalla. Eli luomme luokasta ilmentymän, alustamme ominaisuudet ja käynnistämme sen suorittamista varten.

    Mitä työkaluja meillä on taustatöiden hallintaan? Tämä ominaisuus on metatietoobjekti "Taustatehtävien hallinta". Tällä objektilla on menetelmä "Juosta", tätä menetelmää käyttämällä taustatyö käynnistetään.

    Siinä on seuraavat parametrit:
    "Methodin nimi"- suoritettavan proseduurin tai funktion nimi, ja sen on oltava palvelinkontekstin proseduuri tai toiminto;

    "Vaihtoehdot"- joukko parametreja, joiden elementtien lukumäärän tulee vastata parametrissa määritettyä prosessimme/funktiomme parametrien määrää "Methodin nimi";

    "Avain"- tietty yksilöllisyysavain, joka on rivi, jonka avulla järjestelmä ymmärtää, onko taustatehtävä käynnistettävä vai onko sellainen jo käynnissä;

    "Nimi"- Tässä voit määrittää menetelmämme mielivaltaisen kuvauksen.

    Palautusarvo on objekti "Taustatehtävä", joka sisältää nykyisen menetelmän nimen, nykyisen avaimen ja useita muita ominaisuuksia ja menetelmiä. Yksi tällainen menetelmä on menetelmä "Odota valmis". Sen tarkoitus on, että voimme käskeä järjestelmää olemaan tekemättä mitään ennen kuin taustatyö on valmis.

    Taustatyö 1C 8.2, 8.3 - Käyttöesimerkki

    Otetaan esimerkki työskentelystä 1C-taustatöiden kanssa. Ensin luomme yksinkertaisen algoritmin, joka lataa lyhyesti 1C-järjestelmän siten, että emme voi tehdä mitään tällä hetkellä.

    Tätä varten:

    1. Luodaan yhteinen moduuli "Taustatehtävien käsittelijät", joka käännetään palvelinpuolelle;


    2. Kuvaamme siinä vientimenettelyn "ProduceBackgroundCalculation(Parameter)", joka ottaa yhden merkkijonotyypin parametrin;

    Toimenpide PerformBackgroundCalculation(Parametri) Vienninaloitusaika = CurrentDate() ; Vaikka CurrentDate() - Aloitusaika< = 6 Цикл КонецЦикла ; КонецПроцедуры Процедура КнНажатие() ОбработчикиФоновыхЗаданий. ПроизветиФоновоеВычисление("Jokin parametri") ; EndProcedure
    Valmis. Nyt, kun aloitat käsittelyn ja painat painiketta, järjestelmä jäätyy useiksi sekunneiksi, jolloin mitään ei voida tehdä. Tämä on juuri sitä, mitä meidän piti tehdä.

    Nyt huolehdimme siitä, että nämä laskelmat suoritetaan taustalla, eli niin, että taustatehtävä 1C 8.2, 8.3 suoritetaan, mutta ei häiritse meitä.

    Tätä varten:

    1. Kirjoita käsittelyn aikana painikkeen napsautustapahtumaan seuraava koodi.

    Toimenpide KnPress() Parametrit = Uusi taulukko; Vaihtoehdot. Lisätä( "Jokin parametri") ; Taustatehtävä. Juosta ( "Taustatehtävien käsittelijät. Suorita taustalaskenta", Parametrit, Uusi yksilöllinen tunniste, "Testata") ; EndProcedure

    Tässä välitetään yleisen moduuliproseduurin nimi ensimmäiseksi parametriksi ja joukko parametreja toiseksi. Kolmannelle parametrille on annettava yksilöllinen avain ja neljännelle parametrille jokin kuvaus menettelystämme.

    Ongelma ei ole uusi, ja siitä keskustellaan ajoittain eri 1C-foorumeilla. Yksinkertaisin ja suosituin ratkaisu on käynnistää 1C-palvelin uudelleen. Valitettavasti tämä vaihtoehto ei ole aina hyväksyttävä tai erittäin ei-toivottu. Tällaisessa tapauksessa on olemassa herkempiä ratkaisuja.

    Tässä yksi näistä menetelmistä lyhyiden vaiheittaisten ohjeiden muodossa:

    1. 1C-palvelimen hallintakonsolin avulla etsimme ongelmallista fuusi työ yhteysluettelossa (esimerkiksi sen toiminnan alkamisajan mukaan verrattuna säännellyn työn alkamisaikaan työkonsolissa). Me määrittelemmetyöntekijäprosessi, jossa ripustettu yhteys sijaitsee.

    2. Avaa tämän prosessin ominaisuudet ja merkitse se käyttämättömäksi (jos käytössä on vain yksi prosessi, sinun on ensin luotava uusi työprosessi, jotta kaikki aktiiviset yhteydet muodostavat yhteyden siihen uudelleen). Muistamme tämän prosessin PID-numeron.


    3. Odotamme, kunnes kaikki nykyiset yhteydet siirtyvät pois käytöstä poistetusta prosessista johonkin käytetyistä. Loppujen lopuksi prosessiimme pitäisi jäädä vain ongelmalliset yhteydet, jotka haluamme poistaa.

    4. Etsi 1C-palvelimella varustetussa tietokoneessa tehtävänhallinnan avulla vastaava rphost.exe-prosessi vammaisen työntekijän prosessin PID:n perusteella ja poista se.

    5 . Varmuuden vuoksi voit poistaa 1C-työnkulun, jonka poistimme järjestelmänvalvojan avulla. konsoli ja luo tarvittaessa uusi.

    6. Valmis. Voit kirjautua sisään työkonsoliin ja tarkistaa ajoitetun työn toimivuuden.

    Todennäköisesti yksikään vakava kokoonpano 1C 8.3:ssa tai 8.2:ssa ei pärjää ilman rutiini- ja taustatehtäviä. Ne ovat erittäin käteviä, koska ne suoritetaan selkeästi määritellyn aikataulun mukaan ilman käyttäjän tai ohjelmoijan väliintuloa.

    Sinun on esimerkiksi vaihdettava tietoja toisen ohjelman kanssa kerran päivässä. Rutiini- ja taustatehtäviä käyttämällä 1C pystyy suorittamaan nämä toiminnot itsenäisesti esimerkiksi työajan ulkopuolella. Tämä menetelmä ei vaikuta käyttökokemukseen millään tavalla ja auttaa säästämään aikaa.

    Selvitetään ensin, mitä ne tarkoittavat ja mikä on niiden ero:

    • Aikataulutettu tehtävä voit käynnistää mitä tahansa tiettyjä toimintoja ennalta määritetyn aikataulun mukaisesti.
    • Taustatyötä on objekti, joka sisältää suoritettavat toiminnot.

    Oletetaan, että yrityksemme myy jotain ja sillä on omat nettisivut, joissa hinnat ovat. Haluamme ladata ne kerran päivässä asianmukaisuuden säilyttämiseksi.

    Avaa kokoonpano ja lisää ajoitettu tehtävä.

    Ominaisuuksien asettaminen

    Katsotaanpa tärkeimpiä parametreja, jotka on täytettävä sen ominaisuuksissa.

    • Kentällä" Menetelmän nimi» valitsee tietyn yleisen moduulin menettelyn, joka suoritetaan suoraan. Se näyttää kaikki vaiheet hintojen lataamiseksi verkkosivustollemme. Huomaa, että suoritus tapahtuu palvelimella. Tämä on loogista, koska rutiinitoiminnot suoritetaan ilman käyttäjän osallistumista.
    • Ajastettu tehtävä voidaan poistaa käytöstä tai ottaa käyttöön tarpeen mukaan. Hänen aikatauluaan ei tarvitse muokata joka kerta. Aseta tai tyhjennä lippu "ominaisuuspaletissa". Käyttö».
    • Toinen tärkeä asia on määrittää, tuleeko tämä rutiinitehtävä ennalta määrätty, tai ei. Ennalta määritetyt ajoitetut tehtävät käynnistetään automaattisesti. Jos tätä ominaisuutta ei ole asennettu, sinun on käynnistettävä ne ohjelmallisesti tai käytettävä "Task Console" -käsittelyä ITS:n kanssa.
    • Voit myös määrittää toistojen määrä ja väli niiden välillä epänormaalin lopettamisen tapauksessa. Epänormaalilla lopettamisella tarkoitetaan niitä tilanteita, joissa töitä ei saatu valmiiksi virheen vuoksi.

    Aikataulun laatiminen

    Viimeinen vaihe on määrittää aikataulu sivustolle latauksellemme käyttämällä vastaavaa hyperlinkkiä ominaisuuspaletissa.

    Näet tyypillisen aikatauluasetuksen kohdassa 1C 8.3. Tässä ei ole mitään monimutkaista. Tässä esimerkissä aloitimme hintojen lataamisen sivustolle joka päivä kello viidestä seitsemään aamulla. Mikäli suunniteltu tehtävä ei ehdi suorittaa ennen klo 7.00, se suoritetaan heti seuraavana päivänä.

    Estä ajoitetut tehtävät

    Suorita vakioapuohjelma "Administering 1C Enterprise Servers" ja avaa sen tietokannan ominaisuudet, jossa loit rutiinitehtävän (1C:n asiakas-palvelinversioille).

    Tarkista avautuvassa ikkunassa (kun olet antanut käyttäjätunnuksesi ja salasanasi päästäksesi tietoturvaan), että valintaruutua "Rutiinitehtävien estäminen on käytössä" ei ole valittuna. Jos kohtaat tilanteen, jossa tehtävä ei toimi, tarkista ensin tämä asetus.

    Samalla tavalla voit poistaa rutiinitehtävät kokonaan käytöstä kohdassa 1C 8.3. Voit poistaa tietyt taustatyöt käytöstä käyttämällä uusimpien julkaisujen taustatyökonsolia.

    Tausta ja ajoitetut tehtävät tiedostotilassa

    Tässä tilassa näiden tehtävien määrittäminen ja käynnistäminen on paljon vaikeampaa järjestää. Useimmiten luodaan lisätili, jonka istunto on aina auki.

    Tässä tapauksessa rutiinitehtävät aktivoidaan "RunTaskProcessing()"-menetelmällä.

    Voit myös käyttää seuraavaa rakennetta:

    Proseduurin nimeksi sinun on määritettävä suoritettavan asiakasproseduurin nimi. Aikaväli näyttää kuinka monta sekuntia myöhemmin suoritus tapahtuu. "Kerran"-parametria ei vaadita. Se kertoo, suoritetaanko tämä toimenpide kerran vai useita kertoja.

    Seurantavirheet taustatöissä

    Voit tarkastella taustatöiden edistymistä sekä mahdollisten virheiden esiintymistä lokista. Valitse suodattimesta "Taustatyö"-sovellus ja valitse tarvittaessa kiinnostuksen tärkeys, esimerkiksi vain "Virheet".

    Loki näyttää kaikki valintaasi vastaavat merkinnät sekä kommentin, joka auttaa sinua ymmärtämään virheen syyn.