Šta su konstante u 1s. Konstante. Pisanje nove konstantne vrijednosti

Dakle, u 1C postoje referentne knjige. Na primjer, imenik robe (nomenklatura). Tamo ćemo navesti listu robe koju naša organizacija prodaje.

Uz pomoć takvog imenika možemo organizirati cjenovnik za klijente kao i izvještaj o prodaji za menadžment.

Proizvodi su različiti. Na primjer, proizvodi i hemija. Šta da radimo ako menadžer traži da sačinimo izvještaj – koliko smo zaradili od proizvoda, a koliko od hemije?

Lako! - odgovorićemo mi. Morate dodati imenik vrsta proizvoda i dodati sljedeće detalje u imenik nomenklature. Sada, kada predstavljamo novi proizvod, morat ćemo odabrati vrstu proizvoda.

Međutim, devojke nisu srećne zbog ove inovacije - uostalom, sada treba da popune čitavo dodatno polje, a već imaju puno posla i nemaju vremena da rade ništa. I uopšte! – kažu – imamo 900 vrsta proizvoda, a samo 50 vrsta hemikalija! Čak i budala može vidjeti da bi zadana vrsta proizvoda trebala biti proizvodi.

Odlično! – primetićemo. I... šta da se radi?

Konstante 1C

Za uređivanje konstanti, otvara se standardni obrazac za konstante. Svako polje na ovom obrascu je jedna konstanta.

Postoje dva načina za dodavanje konstantnog oblika:

  • Kliknite desnim tasterom miša na granu 1C konstante i izaberite stavku menija Kreiraj formu konstante
  • Dodajte obrazac u granu General/General forms i u čarobnjaku izaberite tip obrasca – Konstantni obrazac.

Možete pogledati (i odabrati) oblik konstanti na sljedeći način:

  • Unesite svojstva konfiguracije (desni klik na gornju korijensku granu konfiguracije, koju programeri obično zovu “glava”) i koristite svojstvo Basic forme konstante.

Obrazac za konstante se razlikuje po tome što je glavni atribut forme tipa “ConstantsSet”. Ovo vam omogućava da pišete 1C konstante ne pojedinačno, već odmah kao skup.

Usput, atribut obrasca postaje "primarni" ako je naveden u svojstvu Podaci u svojstvima obrasca.

U programu na 1C jeziku možete lako i jednostavno pristupiti bilo kojoj konstanti:

Vrijednost = Constants.NecessaryConstant.Get(); //read
Constants.NecessaryConstant.Set(Value); //zapiši

Parametri 1C sesije

Dakle, problem je riješen jednostavno i s gracioznošću - kreiramo konstantu u koju ćemo pohraniti zadanu vrstu proizvoda.

Prilikom kreiranja novog proizvoda, program 1C jezika u OnOpenForm() će postaviti vrijednost polja Vrsta proizvoda na onu koja je dodijeljena u konstanti. Voila!

Sada program radi, ali nećemo stati na tome! Naravno - mi smo kul programeri, želimo da program ne samo da radi, već i da radi brzo!

Gdje se pohranjuju 1C konstante? U bazi podataka, u posebnoj tabeli. Svaki put kada operater kreira novi proizvod, on će provaliti na server i pročitati vrijednost 1C konstante. Šta ako ima 200 operatera? Da li je ovo optimalno?

Šta onda učiniti?

I ovdje se prisjećamo parametara 1C sesije. To su vrijednosti poput konstanti koje se popunjavaju u trenutku kada se 1C pokrene u Enterprise modu i odmah su dostupne na klijentu. Drugim riječima, ovo je vrsta keša na strani klijenta.

Osim toga, ako u konstanti možemo pohraniti listu samo u skladište vrijednosti, onda je već možemo raspakirati u parametar 1C sesije, iako neće biti dinamičan - sa tipom FixedArray.

Parametri 1C sesije su također u prozoru za konfiguraciju, koji se nalazi u grani Opći/1C parametri sesije.

Nije dovoljno dodati parametar 1C sesije, jer ako se ne popuni, program će pokazati grešku.

Popunjavanje (podešavanje) parametara 1C sesije treba izvršiti prilikom pokretanja 1C u Enterprise modu. Kliknite desnim tasterom miša na gornju granu konfiguracije (programeri je zovu "glava") i izaberite stavku menija Otvori modul sesije.

Modul možda već ima funkciju SettingSessionParameters(). Ako ga još nema, odaberite ovaj događaj na odgovarajućoj padajućoj listi. Evo primjera postavljanja vrijednosti parametra 1C sesije:

SessionParameters.RequiredParameter = Vrijednost; //zapis, jednom na samom početku
Vrijednost = SessionParameters.RequiredParameter; //čitanje, striktno nakon pisanja.

Konstante u 1C se obično koriste za pohranjivanje jedne vrijednosti u bazi podataka. Tipično, konstante pohranjuju vrijednosti koje se rijetko ili uopće ne mijenjaju, ali se često koriste. Na primjer, verzija programa, različita podešavanja, naziv organizacije, glavne odgovorne osobe itd.

Za svaku konstantu je naznačeno njeno ime i tip podataka. Pristup konstantama u programskom modulu je vrlo jednostavan:

1. Čitanje vrijednosti konstante

// čitanje vrijednosti Konstante
Ime = Konstante. Naziv organizacije. Get();

Obratite pažnju na riječ "Konstante", a ne "Konstanta", kao što je to bilo u verziji 1C 7.7.

2. Napišite novu konstantnu vrijednost

Da biste napisali (postavili) novu vrijednost konstante, koristite metodu Set().

// napisati novu vrijednost konstante
Konstante . Naziv organizacije. Instaliraj( "LLC Rogovi i kopita");

3. Rad sa skupom konstanti

Ponekad ćete možda morati pročitati ili napisati vrijednosti grupe od nekoliko konstanti. Za takve situacije možete koristiti takozvani skup konstanti. Kada se koristi skup, sve konstante koje se nalaze u njemu se čitaju i pišu zajedno u jednoj transakciji, tj. operacija na nekoliko konstanti se izvodi istovremeno.

//kreiramo skup od tri konstante

// imajte na umu da samo kreiramo skup konstanti i još ne znamo njihove vrijednosti

Kit = Konstante. CreateSet( “Šef, 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 svaku konstantu postaviti na novu vrijednost, a zatim koristiti metodu Write() za pisati ih istovremeno.

//postavimo vrijednost konstanti u skupu (ne u bazi podataka)
Kit . Menadžer = “Ivanov I.I.” ;
Kit . Naziv organizacije = "DOO Novi rogovi i kopita";
Kit . Adresa organizacije = "Rusija, Moskva, Kremlj";
Kit . Write();//upišite vrijednosti tri konstante u bazu podataka odjednom

4. Poređenje sa vrijednošću konstante u upitima

Konstante se mogu koristiti u upitima. Na primjer, možda ćemo morati uporediti podatke sa vrijednošću konstante u upitu. U ovom primjeru biramo zapise iz direktorija Nomenklature za koje je vrijednost atributa Code jednaka vrijednosti naše konstante ConstantNumber.

„IZABIR
| NašBroj.Vrijednost,
| Nomen.Code,
|OD
| Constant.ConstNumber AS NašBroj,
| Imenik.Nomenklatura AS Nomen
|WHERE
| Nomen.Code = NašBroj.Vrijednost"

Jezik upita za 1C bit će detaljnije opisan u sljedećim materijalima 1C referentne knjige.

Ako imate pitanja koja treba detaljnije obraditi, pitajte ih u komentarima.

Konstante 1C 8.3 je objekt metapodataka koji pohranjuje informacije koje se rijetko mijenjaju.

Po pravilu, konstante pohranjuju informacije o sistemskim postavkama. Na primjer: regulirana obračunska valuta, zaglavlje sistema, vrijednosti za itd.

Hajde da analiziramo glavna svojstva, postavke i karakteristike tehničke implementacije konstanti u 1C na nivou DBMS.

Svojstva i podešavanje konstanti u 1C

Upravitelj objekata ima dvije glavne funkcije u programskom kodu:

  • Konstante.<Название константы>.Get();— dobijanje trenutne vrednosti konstante;
  • Konstante.<Название константы>.Install(<Значение>); — postavljanje nove konstantne vrijednosti.

Nabavite 267 video lekcija na 1C besplatno:

Pogledajmo glavna svojstva palete svojstava objekta metapodataka - konstanta:

  • Tip— tip konstante nije ničim ograničen.
  • Modul za upravljanje vrijednostima— konstantni modul koji opisuje sljedeće rukovaoce: ProcessingFillCheck, BeforeWrite, OnWrite.
  • Data Lock Control Mode— kontrolirani ili automatski način rada.
  • Koristite standardne komande— oznaka odgovorna za korištenje standardnog komandnog prikaza na konfiguracijskom sučelju. Često ova zastava može biti odgovor na pitanje - Zašto se konstanta ne prikazuje u interfejsu?
  • Osnovni oblik— obrazac sa liste koji je postavljen kao glavni za uređivanje vrednosti konstante.

Video o kreiranju i korištenju konstanti:

Značajke implementacije konstanti na nivou DBMS i 1C

Karakteristike se mogu podijeliti u dvije vrste prema verzijama 1C platforme:

  • prije objavljivanja 8.2.14— sve konstante u sistemu su pohranjene u jednoj tabeli. Promjena jednog zapisa zaključava cijelu tabelu. Morate biti veoma oprezni kada koristite ovaj objekat metapodataka;
  • nakon izdanja 8.2.14— za svaku konstantu smo napravili sopstvenu tabelu. Povećao se paralelizam rada.

Ako počinjete učiti 1C programiranje, preporučujemo naš besplatni kurs (ne zaboravite

Konstante se koriste za pohranjivanje jedne vrijednosti u bazi podataka. Tipično, konstante pohranjuju informacije koje se rijetko mijenjaju, na primjer, naziv organizacije, adresu organizacije, ime menadžera itd.

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

1. Čitanje vrijednosti konstante

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

Obratite pažnju na riječ Konstante (a ne Konstante, kao što je to bilo u verziji 7.7).

2. Napišite novu konstantnu vrijednost

Da biste napisali (postavili) novu vrijednost konstante, koristite metodu Set().

// napisati novu vrijednost konstante
Konstante. Naziv organizacije. Set("Horns and Hooves 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 se koristi skup, sve konstante koje se nalaze u njemu se čitaju i pišu zajedno u jednoj transakciji, tj. operacija na nekoliko konstanti se izvodi istovremeno.

//kreiramo skup od tri konstante

// imajte na umu da samo kreiramo skup konstanti i još ne znamo njihove vrijednosti

Set = Konstante. CreateSet("Manager,OrganizationName,OrganizationAddress");

Budući da pri radu sa skupom konstanti možemo mijenjati (pisati) vrijednosti svih konstanti u skupu istovremeno, prvo trebamo postaviti novu vrijednost za svaku konstantu, a zatim koristiti metodu Write() za snimite ih istovremeno.

//postavimo vrijednost konstanti u skupu (ne u bazi podataka)
Kit . Menadžer = "Ivanov I.I.";
Set.Name of Organization= "New Horns and Hooves LLC";
Set.AddressOrganization= "Rusija, Moskva, Kremlj";
Kit . Write(); //upišite vrijednosti tri konstante u bazu podataka odjednom

4. Poređenje sa vrijednošću konstante u upitima

Ponekad ćemo možda morati da uporedimo podatke sa vrednošću konstante u upitu. U ovom primjeru biramo zapise iz direktorija Reminders čija je vrijednost atributa Code jednaka vrijednosti naše konstante OurNumber. Jezik upita 1C ćemo detaljnije pogledati u sljedećim materijalima o ugrađenom 1C jeziku.

„IZABIR
| Naša N.Vrijednost,
| Reminders.Code,
|OD
| Constant.OurNumber AS NašBroj,
| Directory.Reminders KAKO podsjetnike
|WHERE
| Reminders.Code = OurNumber.Value"

Komentari

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

    Set.Read(); // čitanje tri konstante iz baze podataka odjednom

    Pitam se da li ovde postoji greška u kucanju? Čini se kao da smo razgovarali o metodiGet().

Svrha, stvaranje, moguće vrste vrijednosti.
- Moguće metode za postavljanje i dobijanje vrednosti konstanti tokom rada sistema.

Svrha, stvaranje, moguće vrste vrijednosti.

Citat iz knjige „Konfiguracija i administracija“ paketa 1C:Enterprise:
U sistemu 1C:Enterprise, konstante su namijenjene za pohranjivanje trajnih ili polutrajnih informacija. Takve informacije se ili uopšte ne menjaju tokom rada preduzeća, ili se menjaju prilično retko. Najjednostavniji primjer takve informacije je naziv organizacije, koji se po pravilu ne mijenja.

Ovo tumačenje upotrebe konstanti je prilično usko. Ispravnije bi bilo tumačiti konstante na sljedeći način:

“Konstante su superglobalne varijable čije se vrijednosti čuvaju između sesija rada sa sistemom i iste su za sve korisnike sistema.”

Konstante se koriste za stvaranje univerzalnih konfiguracija koje se mogu lako prilagoditi za upotrebu u više organizacija. Konstante pohranjuju vrijednosti koje se mogu koristiti u različitim dijelovima sistema. Citat iz knjige “Konfiguracija i administracija”:

Glavni razlog korištenja konstanti je taj što se u njih jednom unose neke informacije koje se zatim mogu više puta koristiti pri generiranju dokumenata, u proračunima i prilikom kreiranja izvještajnih obrazaca. Informacija unesena u konstantu može se s vremena na vrijeme uređivati, ali to ne mijenja suštinu konstante: kada se jednom unese u sistem, vrijednost konstante se koristi mnogo puta.

Konstanta može prihvatiti osnovne tipove vrijednosti:

string (konstanta ne može biti tipa “String neograničene dužine”);
broj;
datum;

Također, konstanta može uzeti kao vrijednost objekte metapodataka koji definiraju tip:

imenik;
dokument;
nabrajanje;
provjeriti;
"kontni plan";
"tip subconto";
„vrsta obračuna”;
"kalendar".
Konstanta takođe može imati "nedefinisani" tip. U ovom slučaju, tip vrijednosti se određuje programski prilikom postavljanja konstante.

Konstante su definirane u “Konfiguratoru” u prozoru “Konfiguracija” u grani “Konstante”.

Moguće metode za postavljanje i dobijanje vrednosti konstanti tokom rada sistema.
Standardni (standardni) način popunjavanja ili pregleda konstanti je korištenje prozora “Lista konstanti” koji se može otvoriti kroz meni “Operacije” - “Konstante” (stavka menija za pozivanje liste konstanti se može redefinirati prilikom uređivanja konfiguracijskog sučelja).

Sa konstantama možete raditi programski na sljedeći način. Dobivanje vrijednosti konstante:

Varijabla = Constant.ConstantName;

Postavljanje konstantne vrijednosti:

Constant.ConstantName = ConstantValue;