1c poduzeće 8.2 periodične varijable. Zapisivanje nove konstantne vrijednosti

25.10.2019 Savjet

Opis:

Postupak ključne riječi započinje odjeljak izvorni tekst, čije se izvođenje može pokrenuti s bilo kojeg mjesta u programskom modulu jednostavnim navođenjem Procedure_Name s popisom parametara (ako parametri nisu proslijeđeni, zagrade su svejedno potrebne). Ako u modulu redovita primjena, upravljanog aplikacijskog modula ili općeg softverskog modula, ključna riječ Export koristi se u tijelu opisa procedure, što znači da je ovoj proceduri dostupno iz svih ostalih konfiguracijskih softverskih modula.

Kada se izvrši naredba Return, procedura završava i vraća kontrolu pozivnoj točki. Ako operator Return nije pronađen u tekstu procedure, tada se nakon izvršenja zadnjeg izvršnog operatora izvršava implicitni operator Return. Kraj programskog dijela procedure određen je naredbom EndProcedure.

Varijable deklarirane u tijelu procedure u odjeljku lokalne su varijable ove procedure i stoga su dostupne samo u ovoj proceduri (osim kada ih prosljeđujete kao parametre prilikom pozivanja drugih procedura, funkcija ili metoda).

Sintaksa:

Mogućnosti:

ProcName Dodjeljuje naziv proceduri.Vrijednost Neobavezna ključna riječ koja specificira da se sljedeći parametar prosljeđuje po vrijednosti, to jest, promjena vrijednosti formalnog parametra prilikom izvođenja procedure neće utjecati na stvarni parametar proslijeđen prilikom pozivanja procedure. Ako ova ključna riječ nije specificirana, tada se parametar procedure prosljeđuje referencom, to jest, promjena vrijednosti formalnog parametra unutar procedure će promijeniti vrijednost odgovarajućeg stvarnog parametra.Param1 , ..., ParamN Izborni popis formalnih parametara, odvojenih zarezima. Vrijednosti formalnih parametara moraju odgovarati vrijednostima stvarnih parametara koji su proslijeđeni prilikom pozivanja procedure. Ovaj popis definira nazive svakog od parametara kako se koriste u tekstu procedure. Popis formalnih parametara može biti prazan.Izvoz Opcijska ključna riječ koja označava da je procedura dostupna iz drugih programskih modula.Deklarirane su lokalne varijable koje se mogu referencirati samo unutar ove procedure.// Operatori Izvršni operatori procedure.Return Neobavezna ključna riječ koja završava izvođenje procedure i vraća se na točku u programu iz koje je procedura pozvana. Korištenje ovog operatora u proceduri nije obavezno.EndProcedure Obavezna ključna riječ koja označava kraj izvornog teksta procedure, završetak procedure. Povratak na točku s koje je procedura pozvana.

Funkcija

Opis:

Ključna riječ Function započinje odjeljak izvornog koda funkcije, čije se izvršenje može pokrenuti s bilo kojeg mjesta u programskom modulu jednostavnim navođenjem FunctionName s popisom parametara (ako parametri nisu proslijeđeni, zagrade su svejedno potrebne). Ako u modulu obične, upravljane aplikacije, vanjski spoj, sesije ili općeg programskog modula, ključna riječ Export koristi se u tijelu opisa funkcije, to znači da ovu funkciju je dostupan iz svih ostalih konfiguracijskih softverskih modula.

Funkcije se razlikuju od procedura samo po tome što vraćaju Povratna vrijednost. Kraj programskog dijela funkcije određen je operatorom End of Function.

Poziv bilo koje funkcije u tekstu programskog modula može se napisati kao poziv procedure, odnosno jezik dopušta neprihvaćanje od funkcije povratna vrijednost.

Varijable deklarirane u tijelu funkcije u odjeljku Deklaracije lokalnih varijabli, lokalne su varijable ove funkcije, stoga su dostupne samo u ovoj funkciji (osim u slučaju prosljeđivanja kao parametara prilikom pozivanja drugih procedura, funkcija ili metoda).

Sintaksa:

Mogućnosti:

FunctionName Dodjeljuje naziv funkciji.Vrijednost Neobavezna ključna riječ koja navodi da se sljedeći parametar prosljeđuje po vrijednosti, tj. Promjena vrijednosti formalnog parametra prilikom izvođenja funkcije neće imati utjecaja na stvarni parametar proslijeđen prilikom pozivanja funkcije. Ako ova ključna riječ nije navedena, tada se parametar funkcije prosljeđuje referencom, to jest, promjena vrijednosti formalnog parametra unutar funkcije promijenit će vrijednost odgovarajućeg stvarnog parametra.Param1 , ..., ParamN Izborni popis formalnih parametara, odvojenih zarezima. Vrijednosti formalnih parametara moraju odgovarati vrijednostima stvarnih parametara proslijeđenih prilikom pozivanja funkcije. Ovaj popis definira nazive svakog parametra kako se koriste u funkcijskom tekstu. Popis formalnih parametara može biti prazan.=DefValue Izborna postavka zadane vrijednosti parametra. Parametri sa zadanim vrijednostima mogu se postaviti bilo gdje na popisu formalnih parametara.Izvoz Neobavezna ključna riječ koja označava da je funkcija dostupna iz drugih programskih modula.// Deklaracije lokalnih varijabli Deklarirane su lokalne varijable koje se mogu referencirati samo unutar ove funkcije.// Operatori Izvršni operatori funkcije.Povratak Povratna vrijednost Ključna riječ koja prekida izvođenje funkcije i vraća navedenu vrijednost izrazu u kojem se funkcija koristi. Povratna vrijednost može biti izraz ili varijabla čija vrijednost sadrži rezultat pozivanja funkcije.EndFunction Obavezna ključna riječ koja označava kraj izvornog teksta funkcije.

U pravilu, učenje bilo kojeg programskog jezika počinje primjerom pisanja prvog najjednostavniji program("Pozdrav svijete!"). To je učinjeno kako bi se jasno pokazao rad s osnovnim sintaktičkim strukturama. Nećemo napraviti iznimku od ovoga općeprihvaćena metoda prezentacija materijala pri proučavanju novog razvojnog okruženja i stoga naš prvi članak treba promatrati u istom smislu. U njemu ćemo detaljno analizirati odgovore na sljedeća pitanja u vezi s programiranjem na platformi 1C:Enterprise 8:

  • Gdje i uz koju pomoć napisati programski kod na ugrađenom 1C jeziku?
  • Što su softverski moduli, koja su pravila za rad s njima?
  • Što je varijabla, kako raditi s njom, kako i gdje je deklarirati?
  • Koji operatori usporedbe, dodjele i uvjetni operatori postoje i kako ih upotrebljavate?
  • Booleove operacije - što su i kako s njima raditi?
  • Zašto su nam potrebne petlje i kako ih koristiti?

Članak će biti koristan svima onima koji još nisu upoznati s razvojem na platformi 1C:Enterprise 8, ali žele naučiti programirati na 1C.

Primjenjivost

Materijal je relevantan za platformu 1C:Enterprise 8, izdanje 8.2. i 8.3.

Varijable i operatori

U ovom članku počinjemo proučavati ugrađeni jezik 1C:Enterprise 8. Izvršni kod sadržan je u programskim modulima.

Postoji prilično velik broj modula koji su dizajnirani za obradu raznih događaja.

Dakle, prijava korisnika na sustav obrađuje se u jednom modulu, a obrada klika korisnika na određenu tipku obrađuje se u potpuno drugom modulu.

Dakle, svaki modul opisuje ponašanje konfiguracije u određenoj točki. Modul sadrži, prije svega, odjeljak za opis varijabli. Oni. možemo deklarirati neke varijable u modulu.

U budućnosti se mogu koristiti u procedurama i funkcijama ovog modula. Ako je varijabla definirana pomoću ključne riječi Export, bit će dostupna izvan ovog modula. Primjer retka deklaracije varijable:

Perem Warehouse, Division, Storekeeper Export;

Nakon deklaracije varijabli nalazi se dio procedura i funkcija.

Iza njih je odjeljak glavnog programa koji će se izvršiti kada se pristupi ovom modulu.

Na primjer, u dijelu glavnog programa možete inicijalizirati varijable, tj. dajte im neke početne vrijednosti:

Država=1;
Novi izraz=2;
Rezultat=3;

Modul se može zamisliti kao kombinacija različitih operatora koji izvode različite akcije koje su nam potrebne.

Razdjelnik operatora je simbol ";" (točka i zarez). Ovaj znak označava kraj iskaza. Oni. operator se može napisati na sljedeći način:

Rezultat=100X200
+400
-600;

Nije važno u koliko se redaka izjava nalazi.

Naravno, često je prikladnije i jasnije postaviti operatora u jednu liniju, ali ponekad su operatori prilično dugi (broj redaka može razumno doseći nekoliko desetaka).

Točka-zarez se ne smije staviti u završni iskaz dane strukture, na primjer, procedure. Oni. sljedeći kod će raditi:

Procedura CalculateValue()

Početna vrijednost = 100;
IntermediateValue = Početna vrijednost/5;
Konačna vrijednost = početna vrijednost + srednja vrijednost

Kraj postupka

Međutim, bolje je koristiti točku i zarez u završnoj izjavi. Moguće je da će s vremenom gradnja biti nastavljena, a konačna izjava više neće biti konačna. Ovu situaciju ćemo morati posebno pratiti.

Varijable su dizajnirane za pohranu neke vrijednosti bilo koje vrste podataka. Koriste se za međuspremanje informacija za obradu.

U gotovo svakom softverskom modulu koji izvodi neku radnju postoje razne varijable. Upisivanje varijabli prema vrijednostima u Platformi 1C:Enterprise 8 je meko.

Na primjer, varijabla može sadržavati vrijednost jedne vrste podataka, a zatim nekoliko redaka kasnije - druge vrste:

Stvoreno = netočno;
Stvoreno = Istina;
Kreirano =100;

U prva dva iskaza vrijednost varijabli je Boolean, a u trećem se mijenja u numeričku vrijednost. Oni. upisivanje ovisi o vrijednosti koja je dodijeljena danoj varijabli.
Varijable se mogu opisati na dva načina:

  • implicitna metoda (napomena na lijevoj strani operatora dodjele opisuje ovu varijablu, nema preliminarnog opisa varijable s riječju Varijabla, tj. nema posebnog odjeljka za opisivanje varijabli);
  • eksplicitni opis varijabli (Variable Control Data;). Eksplicitna deklaracija varijabli se koristi, na primjer, ako se namjerava naknadno proslijediti ovu varijablu funkciji.

Varijable su imenovane korištenjem klasičnog opisa identifikatora. Identifikator se sastoji od slova, brojeva i podvlaka. Identifikator mora započeti slovom ili podvlakom.

U ovom slučaju, naziv varijable treba odražavati značenje ove varijable. Nazivi varijabli od jednog slova (poput A, B, C) loši su primjeri. Oni ne odražavaju bit varijabli.

Primjeri ispravnih naziva varijabli: Counter (povećavajuća varijabla za petlju), Counterparty. Ako naziv varijable sadrži nekoliko riječi, tada svaka nova riječ, radi jasnoće, treba započeti velikim slovom.

Rezervirane riječi kao što su Procedura, Function, Loop, EndLoop itd. ne mogu se koristiti u imenima varijabli. (ove strukture su označene crvenom bojom u programskom modulu).

Rezervirane riječi su ugrađeni jezični operatori i ima ih relativno mali broj. Svi su predstavljeni u Pomoćnik za sintaksu.

Treba napomenuti da tipovi podataka rezervirane riječi ne primjenjuju se (na primjer, Array, Boolean, True, False). Sustav će ispravno prihvatiti takva imena varijabli.

Velika i mala slova nisu bitna prilikom pisanja programskog koda. Na primjer, riječ Procedura može se pisati velikim ili malim slovom. Štoviše, velika i mala slova mogu se izmjenjivati ​​unutar riječi.

To nije važno za Platformu. No, prema pravilima lijepog ponašanja, početak riječi treba pisati velikim slovom, a sva ostala slova malim slovom.

Što se tiče jezika. Možete koristiti ruski, engleski ili kombinaciju ta dva jezika. Ako je nekome zgodno, možete sigurno koristiti engleski za pisanje programskog koda, kao i kombinirati ruski i engleski. Ovo nije važno za Platformu.

Mnogo naslova na Engleski jezik prilično teško zapamtiti. Pri korištenju kombinacije dvaju jezika pogoršava se čitljivost programskog koda.

Booleove operacije

Operatori usporedbe često koriste Booleovu logiku koja vraća True ili False.

Na primjer, u uvjetnom operatoru možete usporediti: If Event = Sale Tada će algoritam slijediti jednu granu (tj. ako je vrijednost True), ako je uvjet False, izvršit će se druga grana algoritma.

Uvjeti mogu biti prilično složeni, mogu se kombinirati, a koriste se sljedeći operatori: I, ILI i NE. Dakle, za operator AND:

Truth And Truth = Istina;
Točno i netočno = Netočno;
False And True = Lažno;
Netočno I Netočno = Netočno.

Za OR operator dovoljno je da je jedan od operanda jednak True, tada će vrijednost kombinacije biti True. Vrijednost False se dobiva samo kada su oba operanda False.

Operator NOT jednostavno preokreće trenutnu vrijednost (False u True, True u False).

Koristeći kombinaciju ovih operatora, možete izgraditi dovoljno teškim uvjetima. Kada sastavljate složene uvjetne izjave, trebali biste razmotriti prioritete.

Operator NOT ima najveći prioritet, zatim operator AND, a zatim operator OR. Sve što je u zagradama ima najveći prioritet i prvo se izvršava.

Na primjer, postavimo prioritete (slijed izvršavanja) za operacije u zadanom izrazu:

NE(Uvjet1 ILI Uvjet2) I Uvjet3 ILI Uvjet4
1.Rezultat1 = (Uvjet1 ILI Uvjet2);
2. Rezultat2 = NIJE Rezultat1;
3. Rezultat3 = Rezultat2 I Uvjet1;
4. Rezultat = Rezultat3 ILI Uvjet4;

Postoji pravilo konverzije:

NE (Uvjet1 ILI Uvjet2) = NIJE Uvjet1 I NE Uvjet2.

Međutim, ne treba uvijek težiti pojednostavljenju izraza, jer je često, logično, prošireni izraz lakše čitljiv.

Operator dodjele

Operator dodjele ne treba brkati s operatorom jednakosti, iako imaju isti pravopis.

Načelo operatora dodjele je da se lijevoj vrijednosti (varijabli s lijeve strane) dodjeljuje vrijednost koja je desno od znaka jednakosti. Pogledajmo primjer:

Varijabla1 = Varijabla2 = Varijabla3;

Varijabli1 dodijeljena je vrijednost jednakosti iz Booleove logike, tj. Istina ako je Varijabla2 = Varijabla3, ili False u suprotnom.

Prilikom testiranja za poziciju programera početnika, često se koristi zadatak zamjene vrijednosti dviju varijabli.

Ovaj problem se rješava pomoću operatora dodjele i ima dva rješenja.

Rješenje #1 korištenjem privremene varijable:
Privremena varijabla = varijabla1;
Varijabla1 = Varijabla2;
Varijabla2 = Privremena varijabla;

Rješenje #2:
Varijabla1 = Varijabla1 + Varijabla2;
Varijabla2 = Varijabla1 – Varijabla2;
Varijabla1 = Varijabla1 – Varijabla2;

Uvjetni operator

Postoji takav operator If, nakon kojeg je potrebno opisati neki uvjet (sam uvjet može biti prilično velik). Nakon uvjeta slijedi riječ Then i naredbe koje treba izvršiti.

Ovo može biti praćeno ključnom riječi Else i nizom drugih izjava. Ako postoji nekoliko različitih uvjeta, možete koristiti niz ključnih riječi InačeAko(vidi primjer u nastavku). Cijela konstrukcija mora završiti ključnom riječi Završi ako, nakon čega slijedi točka-zarez.

Osim jednostavnih i višestrukih uvjeta, postoji i skraćeni oblik uvjetnog operatora: ?(Uvjet, Izraz1, Izraz2);

Ako je uvjet istinit, tada će se izvršiti Izraz1, inače - Izraz2. Primjer koda: ExpensiveProduct = ?(Product.Price>100000, True, False);

U praksi, umjesto zapisa usporedbe s vrijednošću Pravi (Laž) tip:

If Variable = True Then
I
If Variable = False Then

ekvivalentne oznake koje se zapravo koriste su:

Ako je promjenjiva Onda
I
Ako NIJE Varijabilno Onda

Ciklički operatori

Za bilo koju vrstu petlje potrebna je eksplicitna indikacija kraja ove petlje pomoću ključna riječ Kraj ciklusa. Postoji nekoliko vrsta ciklusa.

Petlja na šalteru– ciklus s fiksnim brojem ponavljanja. Uvjet za izlazak iz ciklusa je prekoračenje granične vrijednosti. Primjer upotrebe za izračun vrijednosti A!

A = 5;
Faktorijel = 1;
Za brojač = 1 po ciklusu
Faktorijel = Faktorijel * Brojač;
EndCycle;

Petlja po uvjetu– uvjet zadane petlje je ispunjen sve dok je istinit. Primjer:

Preostali iznos = 1000;
Cijena dodatnog proizvoda = 243;
Količina = 0;
Dok je preostali iznos>0 ciklusa
Količina = Količina+1;
Preostali iznos = Preostali iznos – Količina*Cijena dodatnog proizvoda;
Cijena dodatnog proizvoda = Cijena dodatnog proizvoda * 0,8;
Kraj ciklusa
Količina = Količina-1;

Ovaj ciklus izračunava koliko se jedinica proizvoda može kupiti za određeni iznos (1000 rubalja) ako se nakon kupnje svake jedinice proizvoda njegova prethodna cijena pomnoži s faktorom 0,8. Izvorna cijena proizvoda je 243 rubalja.

Primjer greške kod korištenja ove vrste petlje za početnike je vječna petlja, kada je uvjet petlje inicijalno istinit, ali se unutar same petlje ne mijenja ni na koji način.

Kruži kroz zbirke (drugi naziv za sve).

Na Platformi postoji prilično velik broj kolekcija (to su spremnici koji sadrže elemente određene vrste).

Možete iterirati kroz elemente zbirke pomoću posebne vrste petlje.

Na primjer, postoji niz brojeva, morate izračunati zbroj svih elemenata niza:

Iznos = 0;
Za svaki element iz petlje polja
Zbroj=Zbroj+Stavka;
EndCycle;

Postoje posebni operatori za petlje: Nastaviti I Prekid.

Ako u nekom trenutku ciklusa izvršenje daljnjih operatora dane petlje postane besmisleno, tada se operator koristi za povratak na početak petlje i organiziranje njezine sljedeće petlje Nastaviti.

Operater Prekid dopušta petlji da završi izvođenje čak i ako je uvjet petlje istinit.

Ovo zaključuje naše prvo upoznavanje s razvojem u internom 1C jeziku.

Što je s Hello World? Još ga nismo napisali, zar ne? Da, ali ništa vas ne sprječava da to učinite sami, jer... znanje je VEĆ dovoljno. Pa, ako ne uspije, onda možete pogledati ovdje.

Konstante se koriste za pohranu jedne vrijednosti u bazu podataka. Tipično, konstante pohranjuju informacije koje se rijetko mijenjaju, na primjer, naziv organizacije, adresa organizacije, ime upravitelja itd.

Za svaku konstantu morate navesti njezin naziv i tip podataka.Pristup konstantama u programskom modulu vrlo je jednostavan:

1. Očitavanje vrijednosti konstante

// čitanje vrijednosti konstante
Naziv = Konstante. Naziv organizacije. Dobiti ();

Obratite pozornost na riječ Konstante (a ne Konstanta, kao što je bilo u verziji 7.7).

2. Napišite novu konstantnu vrijednost

Za pisanje (postavljanje) nove vrijednosti konstante koristite metodu Set().

// napišite novu vrijednost Konstante
Konstante. Naziv organizacije. Set ("Rogovi i kopita LLC");

3. Rad sa skupom konstanti

Ponekad ćete možda morati pročitati ili napisati vrijednosti nekoliko konstanti odjednom. Za takve situacije možete koristiti skup konstanti. Kada koristite skup, sve konstante uključene u njega čitaju se i zapisuju zajedno u jednoj transakciji, tj. istovremeno se izvodi operacija na nekoliko konstanti.

//stvori skup od tri konstante

//imajte na umu da upravo stvaramo skup konstanti i još ne znamo njihove vrijednosti

Skup = Konstante. CreateSet("Upravitelj,Naziv organizacije,Adresa organizacije");

Budući da kada radimo sa skupom konstanti možemo mijenjati (pisati) vrijednosti svih konstanti u skupu u isto vrijeme, prvo moramo postaviti novu vrijednost za svaku konstantu, a zatim koristiti Write() metodu za snimati ih istovremeno.

//postavite vrijednost konstanti u skupu (ne u bazi podataka)
Kit . Upravitelj = "Ivanov I.I.";
Set. Naziv organizacije= "New Horns and Hooves LLC";
Set.AddressOrganization= "Rusija, Moskva, Kremlj";
Kit . Pisati(); //zapišite vrijednosti triju konstanti u bazu podataka odjednom

4. Usporedba s vrijednošću konstante u upitima

Ponekad ćemo možda trebati usporediti podatke s vrijednošću konstante u upitu. U u ovom primjeru Biramo zapise iz direktorija Reminders čija je vrijednost atributa Code jednaka vrijednosti naše konstante OurNumber. Detaljnije ćemo pogledati jezik upita 1C u sljedećim materijalima o ugrađenom jeziku 1C.

„IZABIRAJ
| NašaN.Vrijednost,
| Podsjetnici.Kod,
|OD
| Konstanta.NašBroj KAO NašBroj,
| Directory.Reminders KAKO do podsjetnika
|GDJE
| Reminders.Code = OurNumber.Value"

Komentari

    //sada pomoću metode Get() možemo čitati vrijednosti konstanti našeg skupa

    Postavi.Čitaj(); //čitanje tri konstante iz baze podataka odjednom

    Pitam se postoji li ovdje greška pri upisu? Čini se kao da smo govorili o metodiDobiti().