Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Zanimljivo
  • Možda ćete morati ponovo instalirati komponentu ili pomoćne elemente.

Možda ćete morati ponovo instalirati komponentu ili pomoćne elemente.

Naišao sam na takvu grešku, prilikom prikaza informacija na štampanom obrascu, platforma prikazuje sledeću poruku:
Greška pri pozivanju metode konteksta (ValidateOutput)...

CheckOutput() je metoda za tabelarne dokumente koja provjerava da li se proslijeđeni dokumenti u tabeli uklapaju na stranicu kada se odštampaju. U napomeni za ovu metodu, programeri 1C platforme odmah su napisali da će, ako postoje problemi s dobivanjem informacija o trenutnom pisaču (na primjer, nijedan štampač nije instaliran u sistemu), biti izbačen izuzetak.

Provjerio sam instalirane štampače, sve je u redu i radi. Empirijski sam otkrio da se ova greška javlja samo za određeni ispis i samo pod jednim korisnikom.

Greška je riješena sljedećim akcijama (izvrši pod korisnikom koji je imao grešku):
1) Kreirao prazan dokument kako metoda CheckOutput() ne bi bila uključena u formiranje štampanog obrasca. Ako se ova metoda u bilo kojem slučaju pozove, onda ćete je morati pronaći u konfiguraciji i prokomentirati je ili postaviti u konstrukciju Pokušajte-Izuzetak-Kraj.
3) Otvorili su postavke stranice za trenutni ispis i postavili ispravne postavke.

3. Opcije stranice
Greška je nastala zbog pogrešnih postavki stranice koje je platforma ranije sačuvala prilikom štampanja odštampanog obrasca, na primjer: platforma je u postavkama stranice sačuvala štampač koji je kasnije uklonjen i instaliran novi. Postavke stranice obrasca za štampanje pohranjene su u svojstvu dokumenta proračunske tablice ParametersKeyPrint. Ovo svojstvo sadrži ključ vrijednosti koji pohranjuje postavke za ispis tablice. Postavke štampanja konfigurisane i sačuvane ovim ključem se naknadno vraćaju kada se tabela prikaže sledeći put.

Kako do ove greške ne bi došlo zbog netočnih parametara stranice, svojstva ParametersKeyPrint ne treba postaviti na početku postupka štampanja, već na kraju, jer kada se ovo svojstvo postavi, postavke štampanja se odmah vraćaju.

UPD 04/10/2015: Ako postavite svojstvo ParametersKeyPrint na kraju formiranja tabelarnog dokumenta, zatim metodu CheckConclusion koristiće podrazumevane postavke štampanja, a ne prilagođene. Da biste izbjegli ovu situaciju, morate postaviti svojstvo Ključ SystemParameter na početku formiranja tabelarnog dokumenta i metod CheckConclusion staviti u konstrukciju Try-Exception-End Attempt.

Svaki 1C programer se susreo s porukom kao što je "Greška prilikom pozivanja metode konteksta (Run)". Obično ova greška nije teška za iskusnog programera. Zašto nastaje? Razmotrite u nastavku.

Kao iu svakom programskom jeziku, 1C platforma ima unaprijed definirane metode koje olakšavaju život programerima. Ali izvršenje ovih naredbi zahtijeva ispravno pridržavanje sintakse programskog jezika.

Najčešće greške prilikom pozivanja generičkih metoda su:

  • burn
  • Stvoriti
  • povezati
  • Povežite se
  • CheckConclusion
  • PreviewFile1C
  • Čitaj
  • Trči
  • ExecutePackage
  • ReadChanges

Razmotrimo primjer. Programski smo kreirali zahtjev (), prosljeđujući sljedeći fragment parametrima "text":

Nabavite 267 1C video lekcija besplatno:

U konstrukciji „GDJE“ smo namjerno pogriješili stavljajući „I“, ali bez propisivanja još jednog uslova. Sasvim je logično da se 1C neće moći nositi s takvim zahtjevom i da će dati grešku:

(SessionModule(21)): Greška pri pozivanju metode konteksta (Pokreni)

zbog:

I<>

Pogledajmo još jedan primjer:

Prebacimo pogrešan kod u rukovalac "BeforeWrite" za "Verzije programa" i pokušajmo programski napisati direktorij. Vidimo grešku:

(SessionModule(8)): Greška pri pozivanju metode konteksta (Write)
Selection.GetObject().Write();
zbog:
Greška prilikom izvršavanja rukovaoca - 'BeforeWrite'
zbog:
(Handbook.ProgramVersions.ModuleObject(20)): Greška pri pozivanju metode konteksta (Pokreni)
QueryResult = Query.Execute();
zbog:
((13, 4)): Sintaksička greška
I<>

Uprkos činjenici da greška leži u izvršavanju metode "Run", sistem takođe psuje na liniju koda gde se poziva programski unos objekta.

Rješenje

Da biste riješili problem, dovoljno je razumjeti u čemu je tačno greška. U 99% slučajeva problem se rješava jednostavnim čitanjem pomoći i analizom problema.

Da biste saznali kako koristiti jednu ili drugu metodu, samo postavite kursor na funkciju koja vas zanima i pritisnite "Ctrl + F1". 1C platforma će vam dati kontekstualni savjet za potrebnu metodu:

Provjerite parametre proslijeđene funkciji i provjerite da li se koristi ispravno.

Greške pri korištenju ovog ili onog programa susreću se s najrazličitijim vrstama. Od toga postoji čitav niz - koji nastaju našom krivicom. Razmotrimo kako ispraviti grešku prilikom izvođenja metode konteksta u 1C, koja je posljedica neusklađenosti s pravilima i metodama konteksta.

Razumijevanje principa funkcioniranja metode konteksta pomoći će da se izbjegnu greške pri radu u 1C.

Svaki softverski proizvod arhitektonski se sastoji od modula (modul, engleski), dijelova. a njihova lokacija prikazana je na slici:

Programski moduli se sastoje od sekcija:

Kontekst je jedan od najvažnijih koncepata u programiranju. U 1C se podrazumijeva kao okruženje modula i njegovih sekcija, koje varijable, svojstva, objekti, metoda (metoda) i događaji mu mogu biti dostupni u svakoj određenoj tački. U različitim trenucima kontekst je obično drugačiji.

Programer (finisher) mora razumjeti koja svojstva konteksta ima tačka i koja metoda je dostupna za korištenje u njoj.

U osam, kontekstualni tipovi su istaknuti:


Osnovna su četiri glavna pravila za pristup procedurama, varijablama i funkcijama u modulima:

  • Općenito, modularni dijelovi, varijable, procedure i funkcije modularnih aplikacija neće biti dostupni za izvoz;
  • U modularnim aplikacijama postoji pristup izvoznim procedurama i funkcijama zajedničkih modula;
  • Za opšte modove. dijelovi otvaraju pristup izvozu procedura i funkcija drugih zajedničkih modula;
  • Za modularne objekte aplikacije i za modularne forme dostupne su varijable, funkcije i procedure modula aplikacije za izvoz i zajednički moduli.

Ako je glavni atribut dodijeljen bilo kojem obliku, tada će svojstvo i metoda koja odgovara ovom glavnom atributu biti sadržana u kontekstu ovog obrasca. Na primjer, u modulu obrasca za referentnu stavku Nomenklatura, dostupni su metod i svojstva objekta ReferenceObject.Nomenclature.

Ilustracija gornjih pravila na dijagramu:

Strelice pokazuju da se jednom od modularnih dijelova daje mogućnost drugima da pristupe njihovim varijablama, funkcijama i procedurama za izvoz. Podsjećamo, ne postoji deklaracija varijable u zajedničkom modulu.

Neusklađenost sa pravilima i metodama konteksta programa

Svi programeri su naišli na 1C obavijest o grešci prilikom pozivanja metode konteksta. Razmotrite ovaj primjer:

Komandne greške

Prilikom kreiranja zahtjeva u direktoriju, fragment je dodan u njegov parametar "text":

“AND” je uveden u konstrukciju “WHERE”, ali sam uslov je ostao nenapisan.

Reakcija programa je bila sljedeća:

(MODSession(21)): Greška pri pozivanju metode konteksta (Pokreni)
QueryResult = Query.Execute();

Kako saznati ispravnu metodu?

Da biste dobili savjet 1C platforme o tome kako koristiti bilo koju metodu, postavite kursor na željenu funkciju i pritisnite "Ctrl + F1". Ako dođe do grešaka, potrebno je provjeriti parametre koji se prosljeđuju funkciji, kao i ispravnu upotrebu funkcije.

Šta je korisno znati o greškama

Na kraju ćemo provesti opću analizu grešaka u 1C. Bilo koji od njih može biti uzrok onima kojima je posvećena tema članka:

  • Kršenje logičkog i fizičkog integriteta baze podataka;
  • Greške korisnika pri rukovanju platformom;
  • Pogrešno uneo kod programera (urednika);
  • Ljudski faktor - na primjer, zaborav;
  • Hitni slučajevi (nedostatak svjetla, snježna oluja, kiša, grad, uragan, poplava).

Izvršite analizu greške:

  • Uporedite izdanja i konfiguracije platforme;
  • Pročitajte ceo tekst poruke do kraja, odvojite malo vremena da razmislite i shvatite šta je mašina napisala. Vrlo često ljudi takve poruke ne čitaju u cijelosti. Ali dešava se da se na njegovom kraju nalaze preporuke za njegovo eliminisanje;
  • Analizirati koliko je star i okolnosti njegovog izgleda;
  • Da li ga je moguće reproducirati;
  • Neponovljive greške koje ranije nisu naišle, po pravilu se ne ispravljaju;
  • Da li se greška ponavlja sa drugog računara ili od strane drugog korisnika. U tom slučaju razmislite o brisanju keš memorije, postavljanju dozvola, brisanju korisničkih postavki.

Više o uzrocima grešaka:

  • Neke od grešaka su rezultat korištenja nelicenciranog softvera (i Windowsa također);
  • Oštećena platforma je najčešći primjer. Samo jedna zakrpa može razbiti verziju platforme. Nakon toga, ne možete pronaći bazu (ili licencu);
  • Prilikom početnog sudara s greškom, vrijedi potražiti rješenje u tražilici - možda je neko već pronašao njegovo rješenje;
  • Pratite relevantnost izdanja konfiguracije (posebno ako se od njih dostavljaju regulirana izvješća);
  • Relevantnost izdanja platforme - preporučuje se drugačije izdanje za svaku konfiguraciju;
    Svi događaji koji se dešavaju u 1C evidentiraju se u tehnološkom dnevniku!
  • Prije nego što započnete bilo kakve radnje s bazom podataka, morate napraviti arhivsku kopiju!

Sada znate šta je kontekst, zašto se pojavljuju greške povezane s njim, kako analizirati greške u 1C i kako ih riješiti.

Ostavite svoje povratne informacije u komentarima.

Top Related Articles