Tietoja ruoansulatuskanavan sairauksista

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)

1C:n tavallisen keskeytyskohdan lisäksi on olemassa toisen tyyppinen keskeytyskohta - 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 vastaava 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 arvoja 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ä pikavalikkoa 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 erityisen toiminnon - "Call Stack". Puhelupinon käynnistämiseksi 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ä:

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 oma verkkosivusto, jolla 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 lukumää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 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. Aseta suodattimessa valinnaksi "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: Käynnistä Windowsin rekisteri kirjoittamalla " 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...



Jos huomaat virheen, valitse tekstiosa ja paina Ctrl+Enter
JAA: