1c vállalati 8.2 periodikus változók. Új állandó érték írása
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:
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:
Á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().