1c vállalati 8.2 periodikus változók. Új állandó érték írása

25.10.2019 Tippek

Leírás:

A Kulcsszavas eljárás elindít egy szakaszt forráskód, amelynek végrehajtása a programmodulban bárhonnan elindítható, egyszerűen megadva az Eljárás_neve paraméterlistával (ha nem adunk át paramétert, akkor is kötelező a zárójel). Ha a modulban rendszeres alkalmazása, egy felügyelt alkalmazásmodul, vagy egy közös programmodul, az eljárásleírás törzsében az Export kulcsszó szerepel, ez azt jelenti, hogy az eljárás minden más konfigurációs programmodulból elérhető.

Amikor a Return utasítás végrehajtódik, az eljárás befejeződik, és visszaadja a vezérlést a hívónak. Ha az eljárás szövege nem felel meg a Return utasításnak, akkor az utolsó végrehajtható utasítás végrehajtása után az implicit Return utasítás végrehajtásra kerül. Egy eljárás programrészének végét az EndProcedure utasítás határozza meg.

A szakaszban egy eljárás törzsében deklarált változók az eljárás helyi változói, ezért csak abban az eljárásban érhetők el (kivéve, ha más eljárások, függvények vagy metódusok hívásakor paraméterként adják át őket).

Szintaxis:

Lehetőségek:

ProcessName Megadja az eljárás nevét.Érték Egy opcionális kulcsszó, amely jelzi, hogy az őt követő paramétert érték adja át, azaz a formális paraméter értékének megváltoztatása az eljárás végrehajtása során nem befolyásolja az eljárás meghívásakor átadott tényleges paramétert. Ha ez a kulcsszó nincs megadva, akkor az eljárás paramétere hivatkozással kerül átadásra, vagyis egy formális paraméter értékének megváltoztatása az eljáráson belül megváltoztatja a megfelelő tényleges paraméter értékét.Param1 , ..., ParamN Formális paraméterek opcionális, vesszővel elválasztott listája. A formális paraméterek értékeinek meg kell felelniük az eljárás hívásakor átadott tényleges paraméterek értékeinek. Ez a lista határozza meg az egyes paraméterek nevét, ahogyan azokat az eljárás törzsében használják. A formális paraméterek listája lehet üres.Export Egy opcionális kulcsszó, amely azt jelzi, hogy az eljárás elérhető más programmodulokból.A helyi változókat deklarálják, amelyekre csak ebben az eljárásban lehet hivatkozni.// Nyilatkozatok Az eljárás végrehajtható nyilatkozatai.Return Opcionális kulcsszó, amely leállítja az eljárás végrehajtását, és visszatér a program azon pontjára, ahonnan az eljárást meghívták. Ennek az operátornak az eljárásban való használata nem kötelező.EndProcedure Kötelező kulcsszó, amely az eljárás forráskódjának végét, az eljárás végrehajtásának végét jelöli. Térjen vissza arra a pontra, ahonnan az eljárást hívták.

Funkció

Leírás:

A Function kulcsszó elindít egy függvényforrás szakaszt, amely a POU-ban bárhonnan meghívható, egyszerűen megadva a Function_Name paraméterlistát (ha nem adunk át paramétereket, a zárójelek továbbra is kötelezőek). Ha egy normál, felügyelt alkalmazás moduljában, külső csatlakozás, munkamenet vagy közös programmodul a függvényleírás törzsében, az Export kulcsszó használatos, ez azt jelenti, hogy adott funkciót elérhető az összes többi konfigurációs szoftver modulból.

A funkciók csak abban különböznek az eljárásoktól, hogy visszatérnek Visszatérési érték. Egy függvény programrészének végét az EndFunction utasítás határozza meg.

A programmodul szövegében bármely függvény hívása felírható eljáráshívásként, vagyis azon a nyelven, amelyen a függvényből nem lehet elfogadni visszatérési értéket.

A függvény törzsében deklarált változók egy szakaszban Lokális változó deklarációk, ennek a függvénynek a helyi változói, így csak ebben a függvényben érhetők el (kivéve, ha paraméterként adják át más eljárások, függvények vagy metódusok hívásakor).

Szintaxis:

Lehetőségek:

függvény_neve Megadja a függvény nevét.Value Opcionális kulcsszó, amely jelzi, hogy az őt követő paramétert érték adja át, pl. egy formális paraméter értékének megváltoztatása a függvény végrehajtása során nem befolyásolja a függvény meghívásakor átadott tényleges paramétert. Ha ez a kulcsszó nincs megadva, akkor a függvény paramétere hivatkozással kerül átadásra, azaz a függvényen belüli formális paraméter értékének megváltoztatása megváltoztatja a megfelelő tényleges paraméter értékét.Param1 , ..., ParamN Formális paraméterek opcionális, vesszővel elválasztott listája. A formális paraméterek értékeinek meg kell felelniük a függvény hívásakor átadott tényleges paraméterek értékeinek. Ez a lista határozza meg az egyes paraméterek nevét, ahogyan azokat a függvény szövegében használják. A formális paraméterek listája lehet üres.= DefValue A paraméter alapértelmezett értékének opcionális beállítása. Az alapértelmezett értékekkel rendelkező paraméterek bárhol elhelyezhetők a formális paraméterek listájában.Export Egy opcionális kulcsszó, amely azt jelzi, hogy a funkció elérhető más programmodulokból.// A helyi változók deklarációi A helyi változók deklarálva vannak, amelyekre csak ezen a függvényen belül lehet hivatkozni.// Operátorok A függvény végrehajtható operátorai.Visszatérés Visszatérési érték Kulcsszó, amely leállítja egy függvény végrehajtását, és visszaadja a megadott értéket annak a kifejezésnek, amelyben a függvényt használják. A visszatérési érték lehet kifejezés vagy változó, amelynek értéke tartalmazza a függvény meghívásának eredményét.EndFunction Kötelező kulcsszó, amely a függvény forrásszövegének végét jelzi.

Általános szabály, hogy bármely programozási nyelv tanulmányozása az első megírásának példájával kezdődik a legegyszerűbb program("Helló Világ!"). Ez azért történik, hogy az alapvető szintaktikai konstrukciók segítségével vizuálisan mutassák be a munkát. Ez alól nem teszünk kivételt. hagyományos módonúj fejlesztői környezet elsajátítása során a tananyagot, ezért első cikkünket is ebben a szellemben kell figyelembe venni. Ebben részletesen elemezzük az alábbi kérdésekre adott válaszokat az 1C:Enterprise 8 platformon történő programozással kapcsolatban:

  • Hol és milyen segítséggel lehet programkódot írni a beépített 1C nyelven?
  • Mik azok a programmodulok, milyen szabályok vonatkoznak a velük való munkavégzésre?
  • Mi a változó, hogyan kell vele dolgozni, hogyan és hol kell deklarálni?
  • Mik az összehasonlítási, hozzárendelési és feltételes operátorok, és hogyan kell használni őket?
  • Boole-műveletek – mik ezek, és hogyan kell velük dolgozni?
  • Miért van szükség hurokra és hogyan kell használni őket?

A cikk hasznos lesz mindazok számára, akik még nem ismerik az 1C:Enterprise 8 platform fejlesztését, de szeretnének megtanulni, hogyan kell programozni az 1C-ben.

Alkalmazhatóság

Az anyag az „1C:Enterprise 8” platform 8.2-es kiadásaira vonatkozik. és 8.3.

Változók és operátorok

Ebben a cikkben elkezdjük tanulmányozni az 1C:Enterprise 8 beépített nyelvet. A végrehajtható kódot a programmodulok tartalmazzák.

Meglehetősen nagy számú modul létezik, amelyeket különféle események kezelésére terveztek.

Tehát a felhasználói bejelentkezés feldolgozása egy modulban történik, és egy bizonyos gombra kattintó felhasználó feldolgozása egy teljesen más modulban.

Így minden modul leírja a konfiguráció viselkedését egy bizonyos ponton. A modul mindenekelőtt tartalmaz egy változó deklarációs részt. Azok. egy modulban deklarálhatunk néhány változót.

A jövőben ezek a modul eljárásaiban és funkcióiban használhatók. Ha egy változó az Export kulcsszóval van definiálva, akkor az ezen a modulon kívül is elérhető lesz. Példa változó deklarációs sorra:

Rem raktár, részleg, raktáros export;

A változók deklarálása után az eljárások és függvények szakasza következik.

Mögöttük található a fő program része, amely a modul elérésekor fog lefutni.

Például a fő program részben inicializálhatunk változókat, pl. adj meg nekik néhány kezdeti értéket:

állapot=1;
NewExpression=2;
eredmény=3;

Egy modul felfogható különböző operátorok kombinációjaként, amelyek különböző műveleteket hajtanak végre, amelyekre szükségünk van.

Az operátorelválasztó a ";" karakter. (pontosvessző). Ez a jel a kezelő végét jelzi. Azok. operátor a következőképpen írható:

Eredmény = 100x200
+400
-600;

Nem mindegy, hány sorban áll az állítás.

Természetesen sokszor kényelmesebb és áttekinthetőbb az operátort egy sorba helyezni, de néha elég hosszúak az operátorok (a sorok száma ésszerűen több tízet is elérhet).

A pontosvessző elhagyható egy adott konstrukció, például egy eljárás végkifejezésében. Azok. a következő kód fog működni:

Eljárás CalculateValue()

InitialValue = 100;
IntermediateValue = InitialValue / 5;
FinalValue = InitialValue+IntermediateValue

Vége eljárás

Azonban jobb, ha pontosvesszőt használunk a végső nyilatkozatban. Lehetséges, hogy idővel az építkezés folytatódik, és a végső üzemeltető már nem lesz végleges. Kifejezetten figyelemmel kell kísérnünk ezt a helyzetet.

A változókat úgy tervezték, hogy bármilyen adattípusból valamilyen értéket tároljanak. Ezeket a feldolgozáshoz szükséges információk köztes tárolására használják.

Szinte minden olyan szoftvermodulban, amely valamilyen műveletet hajt végre, különféle változók vannak. A változók érték szerinti beírása az 1C:Enterprise 8 platformon lágy.

Például egy változó tartalmazhat egy adattípus értéket, néhány sorral később pedig egy másik típusú értéket:

Létrehozva = false;
Létrehozva = igaz;
Létrehozva =100;

Az első két utasításban a változók értéke logikai, a harmadikban pedig számértékre változik. Azok. A gépelés a változóhoz rendelt értéktől függ.
A változókat kétféleképpen lehet deklarálni:

  • implicit metódus (a hozzárendelési operátor bal oldalán található említés ezt a változót írja le, a változónak nincs előzetes leírása a Variable szóval, azaz nincs külön szakasz a változók deklarációjában);
  • a változók explicit deklarációja (Variable ControlData;). A változók explicit deklarációját használjuk, például ha ennek a változónak egy függvénybe történő későbbi átvitele várható.

A változók neveihez az azonosító klasszikus leírását használjuk. Az azonosító betűkből, számokból és aláhúzásjelekből áll. Az azonosítónak betűvel vagy aláhúzással kell kezdődnie.

Ebben az esetben a változó nevének tükröznie kell a változó jelentését. Az egybetűs változónevek (például A, B, C) rossz példák. Nem tükrözik a változók lényegét.

Példák a helyes változónevekre: Számláló (növekvő változó a ciklushoz), Vállalkozó. Ha a változónév több szót tartalmaz, akkor az áttekinthetőség kedvéért minden új szót nagybetűvel kell kezdeni.

A fenntartott szavak, mint például az eljárás, a függvény, a ciklus, az utolsó ciklus stb., nem használhatók változónevekben. (ezek a konstrukciók pirossal vannak kiemelve a programmodulban).

A fenntartott szavak beépített nyelvi operátorok, és jó néhány van belőlük. Mindegyik bemutatásra kerül Szintaxis asszisztens.

Meg kell jegyezni, hogy az adattípusok fenntartott szavak nem alkalmazható (például Tömb, Logikai, Igaz, Hamis). A rendszer helyesen érzékeli az ilyen változóneveket.

Programkód írásakor a kis- és nagybetű nem számít. Például az Eljárás szó kis- és nagybetűkkel is írható. Sőt, egy szón belül kis- és nagybetűk is beilleszthetők.

A Platform szempontjából ez nem számít. A jó modor szabályai szerint azonban a szó elejét nagybetűvel, a többi betűt kisbetűvel kell írni.

A nyelvről. Használhat orosz és angol nyelvet, valamint két nyelv kombinációját. Ha valakinek kényelmes, nyugodtan használhatja az angol nyelvet programkód írásához, valamint kombinálhatja az orosz és az angol nyelvet. A platform szempontjából nem számít.

Sok név a számára angol nyelv elég nehéz megjegyezni. Két nyelv kombinációja esetén a programkód olvashatósága romlik.

Boole-műveletek

Az összehasonlító operátorok gyakran használnak logikai logikát, amely igaz vagy hamis értéket ad vissza.

Például egy feltételes operátorban összehasonlíthatja: Ha Esemény = Eladás Akkor az algoritmus egy ágon fog haladni (vagyis ha az érték True), a False feltételnek megfelelően az algoritmus másik ága fut le.

A feltételek meglehetősen összetettek lehetnek, kombinálhatók a következő operátorokkal: ÉS, VAGY és NEM. Tehát az ÉS operátor számára:

Igazság ÉS Igazság = Igaz;
igaz ÉS hamis = hamis;
Hamis ÉS igaz = hamis;
Hamis ÉS Hamis = Hamis.

Az OR operátorhoz elég, ha az egyik operandus egyenlő a True-val, akkor a kombináció értéke True lesz. Az érték csak akkor hamis, ha mindkét operandus hamis.

A NOT operátor egyszerűen megfordítja az aktuális értéket (hamis igazra, igaz hamisra).

Ezen operátorok kombinációjával elég építeni lehet nehéz körülmények. Összetett feltételes állítások összeállításakor vegye figyelembe az elsőbbséget.

A NOT operátornak van a legmagasabb prioritása, ezt követi az ÉS operátor, majd az OR operátor. Bármi, amit zárójelbe teszünk, a legmagasabb prioritású, és először kerül végrehajtásra.

Például adjunk prioritást (végrehajtási sorrend) a fenti kifejezésben szereplő műveletekhez:

NEM(Feltétel1 VAGY Feltétel2) ÉS Feltétel3 VAGY Feltétel4
1.Eredmény1 = (Feltétel1 VAGY Feltétel2);
2. 2. eredmény = NEM Eredmény1;
3. Eredmény3 = Eredmény2 ÉS Feltétel1;
4. Eredmény = 3. eredmény VAGY 4. feltétel;

Van egy konverziós szabály:

NEM (Feltétel1 VAGY Feltétel2) = NEM Feltétel1 ÉS NEM Feltétel2.

Nem mindig kell azonban törekedni a kifejezés egyszerűsítésére, mivel gyakran logikusan a kiterjesztett kifejezés könnyebben olvasható.

hozzárendelés operátor

A hozzárendelési operátort nem szabad összetéveszteni az egyenlőséggel, még akkor sem, ha az írásmódjuk megegyezik.

A hozzárendelési operátor elve az, hogy a bal oldali értékhez (a bal oldali változóhoz) az egyenlőségjeltől jobbra eső érték kerül hozzárendelésre. Vegyünk egy példát:

Változó1 = Változó2 = Változó3;

Az 1. változóhoz a logikai logikából származó egyenlőség értékét rendeljük, azaz. Igaz, ha Változó2 = Változó3, vagy hamis egyébként.

Egy kezdő programozó pozíciójának tesztelésekor gyakran használják a feladatot: két változó értékének felcserélése helyenként.

Ezt a problémát a hozzárendelési operátor segítségével oldják meg, és két megoldása van.

1. megoldás ideiglenes változó használatával:
TempVar = Változó1;
Változó1 = Változó2;
Változó2 = TempVariable;

2. megoldás:
Változó1 = Változó1 + Változó2;
Változó2 = Változó1 – Változó2;
Változó1 = Változó1 – Változó2;

Feltételes operátor

Van egy ilyen If operátor, ami után le kell írni valamilyen feltételt (maga a feltétel elég nagy is lehet). A feltételt a Then szó és a végrehajtandó utasítások követik.

Ezt követheti az Else kulcsszó és egy sor további állítás. Ha több különböző feltétel is létezik, akkor több kulcsszót is használhat ElseIf(lásd lentebb a példát). A teljes szerkezetet ki kell egészíteni a kulcsszóval EndIf pontosvessző követi.

Az egyszerű és többszörös feltétel mellett a feltételes operátornak van egy rövidített alakja is: ?(Feltétel, Kifejezés1, Kifejezés2);

Ha a feltétel igaz, akkor a Kifejezés1, másképp - Kifejezés2. Példa a kódra: ExpensiveItem = ?(Item.Price>100000, True, False);

A gyakorlatban ahelyett, hogy összehasonlítás rekordokat az értékkel Igaz (Hazugság) típus:

Ha Változó = Igaz Akkor
és
Ha Változó = False Akkor

valójában az egyenértékű jelölést használják:

Ha Változó Akkor
és
Ha NEM Változó Akkor

Ciklikus operátorok

Bármilyen ciklus esetén a ciklus végének kifejezett jelzése szükséges kulcsszó EndCycle. Többféle ciklus létezik.

Ciklus számlálónként- egy ciklus fix ismétlésszámmal. A hurokból való kilépés feltétele a határérték túllépése. Példa az A érték kiszámítására!

A=5;
Tényező = 1;
Számláló esetén = 1 hurokkal
Factorial = Factorial * Számláló;
EndCycle;

Hurok feltétel szerint– akkor kerül végrehajtásra, ha a ciklus feltétele igaz. Példa:

Maradékösszeg = 1000;
További tétel ára = 243;
Mennyiség = 0;
Míg RemainingAmount>0 Ciklus
Mennyiség = Mennyiség+1;
Fennmaradó összeg = Fennmaradó összeg - Mennyiség * További áruk ára;
ExtraItem Price = ExtraItem Price * 0,8;
EndCycle
Mennyiség = Mennyiség-1;

Ez a hurok azt számítja ki, hogy adott összegért (1000 rubel) hány darab terméket lehet megvásárolni, ha a termék minden egységének megvásárlása után annak korábbi árát megszorozzuk 0,8-as tényezővel. Az áru kezdeti ára 243 rubel.

Az ilyen típusú ciklusok kezdők általi használata során elkövetett hiba példája az örök hurok, amikor a ciklusfeltétel kezdetben igaz, de magán a cikluson belül semmilyen módon nem változik.

Lapozzon át a gyűjtemények között (egy másik név mindegyikhez).

A Platform meglehetősen nagy számú gyűjteményt tartalmaz (ezek olyan konténerek, amelyek bizonyos típusú elemeket tartalmaznak).

A gyűjtemény elemeit egy speciális hurok segítségével ismételheti.

Például van egy számtömb, ki kell számítania a tömb összes elemének összegét:

Összeg = 0;
Minden elemhez a tömbhurokból
Sum=Sum+ Item;
EndCycle;

Vannak speciális operátorok a hurkok számára: Folytassaés elvetél.

Ha a ciklus egy pontján a ciklus további utasításainak végrehajtása értelmetlenné válik, akkor az operátort arra használjuk, hogy visszatérjen a ciklus elejére, és megszervezze a következő ciklust. Folytassa.

Operátor elvetél lehetővé teszi a ciklus befejezését akkor is, ha a hurokfeltétel igaz.

Ezzel véget is értünk az 1C belső nyelvű fejlesztésével való első ismerkedésünknek.

Mi a helyzet Hello World? Még nem írtuk meg, ugye? Igen ám, de semmi sem akadályozza meg abban, hogy saját maga csinálja, mert. a tudás már elég. Nos, ha ez nem megy, itt megnézheti.

A konstansok egyetlen érték tárolására szolgálnak az adatbázisban. Általában a ritkán megváltozott információkat konstansokban tárolják, például a szervezet nevét, a szervezet címét, a vezető teljes nevét stb.

Minden konstanshoz meg kell adni a nevét és az adattípust.A konstansok elérése egy programmodulban nagyon egyszerű:

1. Állandó értékének leolvasása

// beolvassa a konstans értékét
Név = Állandók. A szervezet neve. Get ();

Ügyeljen a Constants szóra (és ne az állandóra, mint a 7.7-es verzióban).

2. Új állandó érték felírása

Egy állandó új értékének rögzítéséhez (beállításához) használja a Set() metódust

// a konstans új értékének írása
Állandók. A szervezet neve. Telepítés ("LLC Horns and Hooves");

3. Munkavégzés konstanskészlettel

Néha szükség lehet több állandó értékének egyidejű olvasására vagy írására. Ilyen helyzetekben konstanskészletet használhat. Egy halmaz használatakor a benne szereplő összes konstans egy tranzakcióban összeolvasásra és kiírásra kerül, pl. egyidejűleg több konstans műveletét hajtják végre.

//hozz létre egy három állandóból álló halmazt

//megjegyzendő, hogy csak konstanskészletet hozunk létre, és még nem ismerjük az értéküket

Halmaz = Állandók. CreateSet("Kezelõ,Szervezet neve,Szervezet címe");

Mivel konstanskészlettel dolgozva egyszerre módosíthatjuk (írhatjuk) a halmaz összes állandójának értékét, először minden állandóhoz új értéket kell beállítanunk, majd használjuk az Írás () módszerrel rögzítheti őket egyidejűleg.

//beállítja a konstansok értékét a halmazban (nem az alapban)
Kit . Fej = "Ivanov I.I.";
Set.OrganizationName= "LLC Új szarvak és paták";
Set.OrganizationAddress= "Oroszország, Moszkva, Kreml";
Kit . Ír(); //egyszerre három konstans értékét írja be az adatbázisba

4. Összehasonlítás egy konstans értékével a lekérdezésekben

Előfordulhat, hogy össze kell hasonlítanunk az adatokat egy lekérdezésben szereplő állandó értékével. NÁL NÉL ezt a példát az Emlékeztetők könyvtárból kiválasztunk olyan rekordokat, amelyekben a Code attribútum értéke megegyezik az OurNumber konstansunk értékével. Az 1C lekérdezési nyelvet részletesebben megvizsgáljuk a következő anyagokban a beépített 1C nyelvről.

"VÁLASZT
| H.értékünk,
| Emlékeztetők.Kód,
| FROM
| Constant.OurNumber AS OurN,
| Directory.Reminders AS Emlékeztetők
|HOL
| Reminders.Code = OurN.Value"

Hozzászólások

    //most a Get() metódussal leolvashatjuk halmazunk konstansainak értékeit

    Állítsa be.Olvassa el(); //három konstans kiolvasása az alapból egyszerre

    Kíváncsi vagyok, van-e itt elírás? Úgy tűnik, a módszerről van szóKap().