Taustatyön virheenkorjaus 1s 8.3. Taustatöiden virheenkorjaus. Näytä arvo osoitin

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 rutiinitehtävät käynnistetään automaattisesti. Jos tätä lippua 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 avautuvasta ikkunasta (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ä 1C 8.3:ssa. 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 ylimääräistä Tili, jonka istunto on aina avoin.

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 heijastaa toteutuuko se tätä menettelyä kerran tai useita kertoja.

Seurantavirheet taustatöissä

Tarkastele taustatehtävien edistymistä sekä saatavuutta mahdollisia virheitä löytyy lokikirjasta. 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.

Joskus taustatyön (rutiinityön) virheenkorjaus on tarpeen. Juuri tästä ongelma ilmenee usein.

Joskus taustatyön (rutiinityön) virheenkorjaus on tarpeen. Juuri tästä ongelma ilmenee usein. Ja tämä ongelma on, että debuggeri ei voi muodostaa yhteyttä palvelinpuolella käynnissä olevaan prosessiin.

Tämän ongelman ratkaisemiseksi meidän on ratkaistava kaksi ongelmaa:

1. Ota virheenkorjaus käyttöön 1C-palvelimella. Oletusarvoisesti virheenkorjaus palvelimella on poistettu käytöstä ja ottaa se käyttöön seuraavasti: Suorita Windowsin rekisteri, kirjoittaminen " Suorittaa"komento REGEDIT. Etsi linja

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

(otettu 1C:Enterprise 8.1 Server Agent -palvelun käynnistysparametreista). (tämä koskee alustan versiota 8.1)

Lisää avain loppuun -debug (älä unohda laittaa välilyöntiä ennen -debug-näppäintä)

Esimerkki
. "ImagePath"= oli "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -portti 1540 -alue 1560:1591 -d "C:\Program Files\1cv81\palvelin" laittaa "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -portti 1540 -alue 1560:1591 -debug-d "C:\Ohjelmatiedostot\1cv81\palvelin"

Käynnistä palvelinagentti uudelleen. Valmis. Nyt voimme korjata palvelimen suoritussäikeitä.

2. Asiakasyhteydessä 1C-palvelimeen palvelimen nimen ja tietokannan nimen kirjainten on vastattava täsmälleen.

Oikea kytkentä:
Taustatyötä Asiakas - Srvr="PALVELINNIMI";Ref="Perusnimi";
Väärä yhteys:
Taustatyötä - Srvr="PALVELINNIMI";Ref="Perusnimi"; Asiakas - Srvr="Palvelimen-nimi";Ref="Perusnimi";

Miten saat selville, millä parametreilla taustatyö muodostaa yhteyden tietokantaan? Voit ajatella erilaisia ​​tapoja, joista yksi on kirjata nämä parametrit lokiin taustatyön ollessa käynnissä.

Koodi on seuraava:

Menettely WriteConnectionWithBase() Vienti
Päiväkirjamerkintärekisteröinti(,InformationBaseConnectionString());
Menettelyn loppu

Kun taustatyö on käynnissä, lokiin kirjoitetaan rivi taustatyön käyttämät tietokantayhteysparametrit.


Nyt määritämme automaattisen yhteyden taustatöihin.

Tällaisten manipulaatioiden suorittamisen jälkeen voit korjata taustatyöt.


Etkö ole vielä lukenut sitä? Saatat olla kiinnostunut...

Virheenkorjaus 1C- erittäin tehokas ja toimiva 1C 8.3 -alustan mekanismi, jonka avulla voit nopeasti löytää virheet ohjelmakoodissa (muissa ohjelmointikielissä tätä kutsutaan "debugiksi", englannin kielestä "debug").

Alla tarkastellaan virheenkorjausmekanismin käytön päämenetelmiä käytännön ohjeiden muodossa tietyn esimerkin avulla.

Huomio! Jos käytät asiakaspalvelintilaa (palvelimella), tarvitset.

Helpoin tapa aloittaa virheenkorjaus 1C:ssä on avata 1C tilassa ja aloittaa sieltä virheenkorjaustila halutussa toimintatilassa (ohut/paksu, hallittu/säännöllinen):

Taustatöiden virheenkorjaus 1C

Jotta voit korjata taustatöitä, sinun on siirryttävä "Virheenkorjaus - Yhteys" -valikkoon. Napsauta avautuvassa ikkunassa "Automaattinen yhteys" -painiketta:

Tässä ikkunassa voit asettaa vastaavan lipun.

Taustatöiden lisäksi tässä ikkunassa voit ottaa käyttöön ulkoisten yhteyksien virheenkorjauksen, http ja .

Keskeytyskohdan asettaminen

Toinen vaihe virheenkorjauksessa on keskeytyskohdan asettaminen (muissa ohjelmointikielissä - keskeytyspiste).

Valitsin esimerkiksi asiakirjalomakkeessa "muutos" -käsittelijän virheenkorjausta varten:

Voit asettaa keskeytyskohdan etsimällä haluamasi ohjelmakoodin ja kaksoisnapsauttamalla koodinsyöttökentän vasemmalla puolella olevaa kenttää (tai painamalla F9-painiketta):

Nähdäksesi luettelon kaikista asennetuista, sinun on siirryttävä Debug-valikkoon - Katkaisupisteiden luettelo (alt + F9):

Hanki 267 videotuntia 1C:llä ilmaiseksi:

Rajoituspiste 1C kunnossa (sininen)

Tavallisen keskeytyspisteen lisäksi 1C:ssä on toisentyyppinen keskeytyspiste - ehdolla. Graafisesti tällainen piste näytetään sinisenä. Tämä keskeytyskohta on erittäin hyödyllinen, kun sinun on saatava tietty iteraatio silmukan läpi. Virheenkorjaus käynnistyy, kun tietty ehto täyttyy.

Lopetetaan esimerkiksi silmukka riville 25:

Ei-aktiivinen keskeytyspiste (harmaa)

Harmaa keskeytyspiste tarkoittaa, että se ei ole aktiivinen eikä järjestelmä pysähdy kyseiseen keskeytyskohtaan. Voit tehdä sen passiiviseksi napsauttamalla erikoispainiketta "Poista keskeytyspiste" -paneelissa (vaihto+ctrl+F9):

Virheen keskeytyskohta

Järjestelmä voi pysähtyä virheen vuoksi tehdäksesi tämän, sinun on asetettava asianmukainen lippu Debug - Stop by error -valikossa:

Lisäksi virhepysäytystoiminto on samanlainen kuin ehdollinen keskeytyskohta - sen avulla voit suodattaa poikkeuksia tietyllä virhetekstillä.

Askel askeleelta 1C-ohjelmakoodin läpi

Kun olet asettanut keskeytyskohdan, sinun on käynnistettävä halutun ohjelmakoodin suorittaminen, jotta järjestelmä siirtyy vaiheittaiseen koodin suorittamiseen. Nuolenäyttö osoittaa vaiheittaisen koodin suoritustilan alkamisen:

Jotta voit siirtyä seuraavalle riville, sinun on painettava "F11" (Astu sisään) -painiketta.

Jos siirryt ohjelmakoodirivien läpi ja rivillä on toiminto tai toiminto, "pudotat" tämän menettelyn (tai funktion) sisään.

Epäonnistumisen välttämiseksi riittää, että F11 (Step into) hyppää rivien läpi F10 (Step through) -painikkeella tällä painikkeella voit käydä läpi ohjelmakoodin toimenpiteitä.

Siirtyäksesi kohdistimen nykyisestä paikasta haluttuun kohtaan ohittaen koodin välirivit, sinun on asetettava kohdistin halutulle riville ja painettava Shift + F10 (Siirry kohdistimeen).

Arvojen analyysi 1C-virheenkorjaustilassa

Voit tarkastella tiettyjen arvojen merkityksiä eri tavoilla:

Näytä arvo osoitin

Kun siirrät hiiren muuttujan päälle, järjestelmä "korostaa" muuttujan arvot:

Evaluate Expression tai Tableaun käyttö

  • Lomake Arvioi Expression voidaan kutsua käyttämällä kontekstivalikko tai painamalla pikanäppäimiä - (Vaihto + F9) tai valikkoa (Virheenkorjaus - Arvioi lauseke).
  • Tulostaulu kutsutaan pikanäppäimillä Ctrl + Alt + W tai valikosta (Debugging - Tableau).

Nämä kaksi analyysimenetelmää ovat hyvin samankaltaisia, tärkeimmät erot ovat käyttöliittymässä. On kätevämpää käyttää tulostaulua indikaattoreiden ryhmälle ja lausekkeita yksittäisille indikaattoreille.

Nämä menetelmät ovat erittäin helppokäyttöisiä. Riittää, kun syötät halutun muuttujan nimen taulukkoon. Mielivaltaisten laskelmien suuri etu on, että voit lisätä lausekkeeseen omia tietojasi.

Esimerkiksi:

On erittäin hyödyllistä käyttää lausekkeiden arviointia ja suorittaa kysely, ladata se arvotaulukkoon ja tarkastella sitä.

Kuinka selvittää, mistä prosessia kutsutaan virheenkorjauksessa - Kutsupino

Hyvin usein sinun on ymmärrettävä, mistä tietty menettely tai funktio kutsuttiin ja millä parametreilla. Tätä tarkoitusta varten 1C tarjoaa erikoistoiminto- "Kutsupino". Käynnistääksesi puhelupinon, sinun on painettava pikanäppäimiä - Ctrl + Alt + C tai valikon kautta (Virheenkorjaus - Puhelupino).

Sen avulla voit selvittää yksityiskohtaisesti, mistä menettely kutsuttiin ja millä parametreilla:

Jos olet kiinnostunut arvioimaan suorituskykyä virheenkorjauksen aikana - .

Katso myös yleiskatsausvideo virheenkorjauksesta 1C:ssä:

Nykyaikaisissa 1C:Enterprise-kokoonpanoissa taustatöitä käytetään laajalti.

Erityisesti kaikissa vakiokokoonpanoissa luodaan monia raportteja tausta, jonka avulla voit jatkaa työskentelyä samassa 1C-istunnossa raportin luomisen aikana odottamatta raportin suorittamista loppuun. Ja tietysti on tarvetta virheenkorjauskoodin taustatöiden ollessa käynnissä. Jotta taustatöiden virheenkorjaus voidaan aloittaa onnistuneesti, useiden ehtojen on täytyttävä.

Ota virheenkorjaustila käyttöön 1C:Enterprise-palvelimessa.

Ensimmäinen asia, joka sinun on tehtävä, on varmistaa, että 1C:Enterprise-palvelin toimii virheenkorjaustilassa. Jos virheenkorjaus ei ole käytössä palvelimella, sinun on lopetettava palvelu Ragent ja suorita se uudelleen parametrilla /debug

Määritä taustatöiden automaattinen yhteys konfiguraattorissa

Koska taustatyössä ei ole asiakasosaa, konfiguraattori määrittää automaattisen yhteyden taustatöihin. Voit tehdä tämän valitsemalla kohteen valikosta Debug -> Yhteys

Napsauta avautuvassa valintaikkunassa painiketta Automaattinen yhteys ja valitse seuraavassa ikkunassa valintaruutu Taustatyöt

Syötä yhteysmerkkijono oikein 1C-tietokantaan

Teoriassa edellä lueteltujen kahden pisteen pitäisi riittää laukaisemaan keskeytyspisteet, kun taustatyö on käynnissä. Mutta käytännössä monet kohtaavat sen tosiasian, että automaattista yhteyttä taustatöihin ei tapahdu. Tämä liittyy tietokannan yhteysmerkkijonoon.

Asia on siinä, että konfiguraattorin käynnistämiseen käytettävän yhteysmerkkijonon on vastattava täsmälleen taustatyön yhteysmerkkijonoa. Lisäksi ottelun tulee olla merkki hahmolta. Jopa kirjainten tapaus otetaan huomioon. Loppujen lopuksi, kun lisäät pohjan luetteloon tietokannat voimme rekisteröidä palvelinklusterin samalle tietokannalle useilla eri tavoilla: IP-osoitteen avulla, palvelimen nimen kautta, porttia määrittämällä tai ilman. Ja kaikki nämä erilaiset yhteysjonot voivat toimia yhtä hyvin. Mutta taustatöiden virheenkorjauksen yhteydessä voi ilmetä ongelmia. Joten esimerkiksi kohtasin sen tosiasian, että tietokantaluettelossa minulla oli porttia käyttävä yhteysmerkkijono

Srvr="Palvelin1C:1541";Ref="Testaa";

Ja jostain syystä taustatehtävä käynnistettiin porttia määrittämättä

Srvr="Palvelin1C";Ref="Testi";

Siksi minun piti muuttaa yhteysmerkkijonoa tietokantaluettelossa vastaavasti.
Mutta tässä herää heti kysymys. Kuinka saan selville taustatyön yhteysmerkkijonon? Tämä on paikka. Loppujen lopuksi, kun taustatyö on käynnissä, voimme tehdä ohjelmallisesti merkintöjä lokiin. Ja käyttämällä menettelyä InformationBaseConnectionString() voimme saada yhteysmerkkijonon.

Joten teemme sen sopivassa yleismoduulissa (minulle se tulee olemaan BackgroundTasksServer) tässä on menettely

Toimenpide LogConnectionString() ExportConnectionString = InformationBaseConnectionString() ; LogRegistration(ConnectionString) ; Menettelyn loppu

Suoritetaan nyt tämä toimenpide suorittamalla:

&OnServer-menettely WriteConnectionStringOnServer() BackgroundTasks. Juosta ( "BackgroundTasksServer.WriteConnectionStringToLog") ; Menettelyn loppu

Avaamme rekisteröintilokin, katsomme merkintää yhteysmerkkijonolla ja rekisteröimme tietokantaan yhteyden muodostamisen asetukset analogisesti taustatyön kanssa.




Yläosa