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):
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 .
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:
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:
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):
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ä.
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).
Voit tarkastella tiettyjen arvojen arvoja eri tavoilla:
Kun siirrät hiiren muuttujan päälle, järjestelmä "korostaa" muuttujan arvot:
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ä.
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:
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ä.
Katsotaanpa tärkeimpiä parametreja, jotka on täytettävä sen ominaisuuksissa.
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ä.
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.
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.
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ä:Väärä yhteys:
Taustatyötä Asiakas - Srvr="PALVELINNIMI";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...