1c întreprindere 8.2 variabile periodice. Scrierea unei noi valori constante

25.10.2019 Sfat

Descriere:

Procedura de cuvinte cheie începe o secțiune text sursă, a cărui execuție poate fi inițiată de oriunde în modulul de program prin simpla specificare a Procedure_Name cu o listă de parametri (dacă parametrii nu sunt trecuți, atunci sunt totuși necesare paranteze). Dacă în modul aplicare regulată, un modul de aplicație gestionat sau un modul software general, cuvântul cheie Export este folosit în corpul descrierii procedurii, aceasta înseamnă că această procedură este accesibilă din toate celelalte module software de configurare.

Când instrucțiunea Return este executată, procedura se încheie și returnează controlul punctului de apel. Dacă operatorul Return nu se găsește în textul procedurii, atunci după ce este executat ultimul operator executabil, se execută operatorul implicit Return. Sfârșitul secțiunii de program a unei proceduri este determinat de instrucțiunea EndProcedure.

Variabilele declarate în corpul unei proceduri din secțiune sunt variabile locale ale acestei proceduri și, prin urmare, sunt disponibile numai în această procedură (cu excepția cazului în care le trecem ca parametri la apelarea altor proceduri, funcții sau metode).

Sintaxă:

Opțiuni:

ProcName Atribuie un nume procedurii.Valoare Un cuvânt cheie opțional care specifică că următorul parametru este transmis după valoare, adică modificarea valorii unui parametru formal la executarea unei proceduri nu va afecta parametrul efectiv transmis la apelarea procedurii. Dacă acest cuvânt cheie nu este specificat, atunci parametrul procedurii este transmis prin referință, adică modificarea valorii unui parametru formal în cadrul procedurii va schimba valoarea parametrului actual corespunzător.Param1 , ..., ParamN O listă opțională de parametri formali, separați prin virgule. Valorile parametrilor formali trebuie să corespundă cu valorile parametrilor efectivi trecuți la apelarea procedurii. Această listă definește numele fiecăruia dintre parametri, așa cum sunt utilizați în textul procedurii. Lista parametrilor formali poate fi goală.Export Un cuvânt cheie opțional care indică faptul că procedura este accesibilă din alte module de program.Sunt declarate variabile locale care pot fi referite numai în cadrul acestei proceduri.// Operatori Operatori executabili ai procedurii.Return Un cuvânt cheie opțional care încheie execuția unei proceduri și revine la punctul din program din care a fost apelată procedura. Utilizarea acestui operator într-o procedură este opțională.EndProcedure Cuvânt cheie obligatoriu care indică sfârșitul textului sursă al procedurii, finalizarea procedurii. Reveniți la punctul de la care a fost apelată procedura.

Funcţie

Descriere:

Cuvântul cheie Function începe o secțiune din codul sursă al funcției, a cărei execuție poate fi inițiată de oriunde în modulul programului prin simpla specificare FunctionName cu o listă de parametri (dacă parametrii nu sunt trecuți, atunci sunt totuși necesare paranteze). Dacă într-un modul al unei aplicații obișnuite, gestionate, îmbinare exterioară, sesiune sau modul de program general, cuvântul cheie Export este folosit în corpul descrierii funcției, aceasta înseamnă că această funcție este accesibil din toate celelalte module software de configurare.

Funcțiile diferă de proceduri doar prin aceea că revin Valoare returnată. Sfârșitul secțiunii de program a unei funcții este determinat de operatorul End of Function.

Un apel la orice funcție din textul unui modul de program poate fi scris ca un apel de procedură, adică limbajul permite neacceptarea de la o funcție valoare returnată.

Variabilele declarate în corpul funcției din secțiune Declarații de variabile locale, sunt variabile locale ale acestei funcții, prin urmare sunt disponibile doar în această funcție (cu excepția cazului de trecere a acestora ca parametri la apelarea altor proceduri, funcții sau metode).

Sintaxă:

Opțiuni:

FunctionName Asignează un nume funcției.Valoare Un cuvânt cheie opțional care specifică faptul că următorul parametru este transmis prin valoare, adică Modificarea valorii unui parametru formal la executarea unei funcții nu va avea niciun efect asupra parametrului efectiv transmis la apelarea funcției. Dacă acest cuvânt cheie nu este specificat, atunci parametrul funcției este transmis prin referință, adică modificarea valorii unui parametru formal în cadrul funcției va schimba valoarea parametrului actual corespunzător.Param1 , ..., ParamN O listă opțională de parametri formali, separați prin virgule. Valorile parametrilor formali trebuie să corespundă cu valorile parametrilor efectivi trecuți la apelarea funcției. Această listă definește numele fiecăruia dintre parametri așa cum sunt utilizați în textul funcției. Lista parametrilor formali poate fi goală.=DefValue Setare opțională a valorii implicite a parametrului. Parametrii cu valori implicite pot fi plasați oriunde în lista de parametri formali.Export Un cuvânt cheie opțional care indică faptul că funcția este accesibilă din alte module de program.// Declarații de variabile locale Sunt declarate variabile locale care pot fi referite numai în cadrul acestei funcții.// Operatori Operatori executabili ai funcției.Întoarcere Valoare returnată Un cuvânt cheie care încheie execuția unei funcții și returnează valoarea specificată expresiei în care este utilizată funcția. Valoarea returnată poate fi o expresie sau o variabilă a cărei valoare conține rezultatul apelării funcției.EndFunction Un cuvânt cheie obligatoriu care indică sfârșitul textului sursă al funcției.

De regulă, învățarea oricărui limbaj de programare începe cu un exemplu de scriere a primului cel mai simplu program("Salut Lume!"). Acest lucru se face pentru a demonstra clar lucrul cu structurile sintactice de bază. Nu vom face o excepție de la asta metoda general acceptata prezentarea materialului atunci când studiem un nou mediu de dezvoltare și, prin urmare, primul nostru articol ar trebui luat în considerare în aceeași ordine de idei. În acesta vom analiza în detaliu răspunsurile la următoarele întrebări referitoare la programarea pe platforma 1C:Enterprise 8:

  • Unde și cu ce ajutor pentru a scrie codul programului în limbajul 1C încorporat?
  • Ce sunt modulele software, care sunt regulile de lucru cu ele?
  • Ce este o variabilă, cum se lucrează cu ea, cum și unde să o declare?
  • Ce comparație, atribuire și operatori condiționali există și cum îi folosiți?
  • Operațiuni booleene - ce sunt și cum să lucrezi cu ele?
  • De ce avem nevoie de bucle și cum să le folosim?

Articolul va fi util tuturor celor care nu sunt încă familiarizați cu dezvoltarea pe platforma 1C:Enterprise 8, dar doresc să învețe cum să programeze pe 1C.

Aplicabilitate

Materialul este relevant pentru platforma 1C:Enterprise 8, ediția 8.2. și 8.3.

Variabile și operatori

În acest articol începem să studiem limbajul încorporat 1C:Enterprise 8. Codul executabil este conținut în modulele programului.

Există un număr destul de mare de module care sunt concepute pentru a gestiona diverse evenimente.

Deci, autentificarea utilizatorului la sistem este procesată într-un singur modul, iar procesarea clicului utilizatorului pe un anumit buton este procesată într-unul complet diferit.

Astfel, fiecare modul descrie comportamentul configurației la un anumit punct. Modulul conține, în primul rând, o secțiune pentru descrierea variabilelor. Acestea. putem declara unele variabile în modul.

În viitor, acestea pot fi utilizate în procedurile și funcțiile acestui modul. Dacă o variabilă este definită cu cuvântul cheie Export, aceasta va fi disponibilă în afara acestui modul. Exemplu de linie de declarare a variabilei:

Perem Depozit, Divizie, Magazin Export;

După declararea variabilelor există o secțiune de proceduri și funcții.

În spatele lor se află o secțiune a programului principal care va fi executată la accesarea acestui modul.

De exemplu, într-o secțiune a programului principal puteți inițializa variabile, de ex. da-le cateva valori initiale:

Stare=1;
NewExpression=2;
Rezultat=3;

Un modul poate fi gândit ca o combinație de diferiți operatori care efectuează diferite acțiuni de care avem nevoie.

Separatorul de operator este simbolul „;” (punct şi virgulă). Acest semn marchează sfârșitul declarației. Acestea. operatorul poate fi scris astfel:

Rezultat=100X200
+400
-600;

Nu contează pe câte linii se află declarația.

Desigur, este adesea mai convenabil și mai clar să plasați operatorul pe o singură linie, dar uneori operatorii sunt destul de lungi (numărul de linii poate ajunge în mod rezonabil la câteva zeci).

Este posibil ca punctul și virgulă să nu fie plasat în declarația finală a unei structuri date, de exemplu, o procedură. Acestea. următorul cod va funcționa:

Procedură CalculateValue()

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

Sfârșitul procedurii

Cu toate acestea, este mai bine să folosiți punct și virgulă în declarația finală. Este posibil ca în timp construcția să fie continuată, iar declarația finală să nu mai fie definitivă. Va trebui să monitorizăm în mod specific această situație.

Variabilele sunt concepute pentru a stoca o anumită valoare a oricărui tip de date. Sunt folosite pentru stocarea intermediară a informațiilor în vederea procesării.

În aproape orice modul software care efectuează o anumită acțiune, există diverse variabile. Tastarea variabilelor după valori în Platforma 1C: Enterprise 8 este ușoară.

De exemplu, o variabilă poate conține o valoare a unui tip de date și apoi câteva rânduri mai târziu - un alt tip:

Creat = Fals;
Creat = Adevărat;
Creat =100;

În primele două instrucțiuni, valoarea variabilelor este booleană, iar în a treia se schimbă într-o valoare numerică. Acestea. tastarea depinde de valoarea care este atribuită unei variabile date.
Variabilele pot fi descrise în două moduri:

  • metoda implicită (mentiunea din partea stângă a operatorului de atribuire descrie această variabilă, nu există o descriere preliminară a variabilei cu cuvântul Variabil, adică nu există o secțiune specială pentru descrierea variabilelor);
  • descrierea explicită a variabilelor (Variable Control Data;). Declarația explicită a variabilelor este utilizată, de exemplu, dacă este intenționată trecerea ulterioară a acestei variabile la o funcție.

Variabilele sunt denumite folosind descrierea clasică a identificatorului. Identificatorul este format din litere, cifre și liniuțe de subliniere. Identificatorul trebuie să înceapă fie cu o literă, fie cu un caracter de subliniere.

În acest caz, numele variabilei ar trebui să reflecte semnificația acestei variabile. Numele variabilelor cu o singură literă (cum ar fi A, B, C) sunt exemple proaste. Ele nu reflectă esența variabilelor.

Exemple de nume corecte de variabile: Counter (variabilă crescătoare pentru o buclă), Counterparty. Dacă numele variabilei conține mai multe cuvinte, atunci fiecare cuvânt nou, pentru claritate, ar trebui să înceapă cu o literă mare.

Cuvintele rezervate precum Procedure, Function, Loop, EndLoop etc. nu pot fi folosite în numele variabilelor. (aceste structuri sunt evidențiate cu roșu în modulul programului).

Cuvintele rezervate sunt operatori de limbă încorporați și există un număr destul de mic de ei. Toate sunt prezentate în Asistent de sintaxă.

Trebuie remarcat faptul că tipurile de date cuvinte rezervate nu se aplică (de exemplu, Array, Boolean, True, False). Sistemul va accepta corect astfel de nume de variabile.

Lipsa minusculelor nu contează când scrieți codul programului. De exemplu, cuvântul Procedură poate fi scris fie cu majusculă, fie cu literă mică. În plus, literele mari și mici pot fi alternate în cadrul unui cuvânt.

Acest lucru nu contează pentru Platformă. Cu toate acestea, conform regulilor bunelor maniere, începutul unui cuvânt trebuie scris cu majuscule, iar toate celelalte litere cu litere mici.

Referitor la limbaj. Puteți folosi rusă, engleză sau o combinație a celor două limbi. Dacă este convenabil pentru cineva, puteți utiliza în siguranță engleza pentru a scrie codul programului, precum și pentru a combina rusă și engleză. Acest lucru nu este important pentru Platformă.

Multe titluri pe Limba engleză destul de greu de reținut. Când utilizați o combinație de două limbi, lizibilitatea codului programului se deteriorează.

Operații booleene

Operatorii de comparație folosesc adesea logica booleană care returnează True sau False.

De exemplu, într-un operator condiționat puteți compara: Dacă Eveniment = Vânzare Atunci algoritmul va urma o ramură (adică, dacă valoarea este True), dacă condiția este False, se va executa o altă ramură a algoritmului.

Condițiile pot fi destul de complexe, pot fi combinate și se folosesc următorii operatori: AND, OR și NOT. Deci, pentru operatorul AND:

Truth And Truth = Adevăr;
Adevărat și fals = fals;
Fals And True = Fals;
False AND False = Fals.

Pentru operatorul OR este suficient ca unul dintre operanzi să fie egal cu True, atunci valoarea combinației va fi True. Valoarea False se obține numai atunci când ambii operanzi sunt False.

Operatorul NOT inversează pur și simplu valoarea curentă (Fals la True, True to False).

Folosind o combinație a acestor operatori, puteți construi suficient conditii dificile. Când compuneți declarații condiționale complexe, ar trebui să luați în considerare prioritățile.

Operatorul NOT are cea mai mare prioritate, urmat de operatorul AND, urmat de operatorul SAU. Orice este inclus în paranteze are cea mai mare prioritate și este executat primul.

De exemplu, să setăm prioritățile (secvența de execuție) pentru operațiile din expresia dată:

NU(Condiția1 SAU Condiția2) ȘI Condiția3 SAU Condiția4
1.Rezultat1 = (Condiție1 SAU Condiție2);
2. Rezultat2 = NU Rezultatul1;
3. Result3 = Result2 AND Condition1;
4. Rezultat = Rezultat3 SAU Condiție4;

Există o regulă de conversie:

NOT (Condiția1 SAU Condiția2) = NU Condiția1 ȘI NU Condiția2.

Cu toate acestea, nu ar trebui să ne străduim întotdeauna să simplificați expresia, deoarece adesea, în mod logic, o expresie extinsă este mai ușor de citit.

Operator de atribuire

Operatorul de atribuire nu trebuie confundat cu operatorul de egalitate, chiar dacă au aceeași ortografie.

Principiul operatorului de atribuire este că valorii din stânga (variabila din partea stângă) i se atribuie valoarea care se află în dreapta semnului egal. Să ne uităm la un exemplu:

Variabila1 = Variabila2 = Variabila3;

Variabilei1 i se atribuie valoarea de egalitate din logica booleană, adică. Adevărat dacă Variabila2 = Variabila3 sau Fals în caz contrar.

Când testați poziția unui programator începător, o sarcină destul de des folosită este schimbarea valorilor a două variabile.

Această problemă este rezolvată folosind operatorul de atribuire și are două soluții.

Soluția #1 folosind o variabilă temporară:
TemporaryVariable = Variable1;
Variabila1 = Variabila2;
Variabila2 = Variabila temporara;

Soluția #2:
Variabila1 = Variabila1 + Variabila2;
Variabila2 = Variabila1 – Variabila2;
Variabila1 = Variabila1 – Variabila2;

Operator condiționat

Există un astfel de operator Dacă, după care este necesar să se descrie o anumită condiție (condiția în sine poate fi destul de mare). Condiția este urmată de cuvântul Apoi și de instrucțiunile care urmează să fie executate.

Acesta poate fi urmat de cuvântul cheie Else și de o serie de alte afirmații. Dacă există mai multe condiții diferite, puteți utiliza o serie de cuvinte cheie AltfelDacă(vezi exemplul de mai jos). Întreaga construcție trebuie să se încheie cu cuvântul cheie EndIf, urmată de punct și virgulă.

Pe lângă condițiile simple și multiple, există o formă scurtă a operatorului condiționat: ?(Condiție, Expresie1, Expresie2);

Dacă condiția este adevărată, atunci va fi executată Expresia1, in caz contrar - Expresia 2. Exemplu de cod: ExpensiveProduct = ?(Product.Price>100000, True, False);

În practică, în loc de înregistrări de comparație cu valoarea Adevărat (Minciună) tip:

Dacă variabilă = adevărat, atunci
Și
Dacă variabilă = fals, atunci

notațiile echivalente utilizate efectiv sunt:

Dacă variabil, atunci
Și
Dacă NU este variabil, atunci

Operatori ciclici

Pentru orice tip de buclă, este necesară o indicație explicită a sfârșitului acestei bucle folosind cuvânt cheie Sfârșitul ciclului. Există mai multe tipuri de cicluri.

Bucla pe un contor– un ciclu cu un număr fix de repetări. Condiția de ieșire din ciclu este depășirea valorii limită. Exemplu de utilizare pentru calcularea valorii lui A!

A = 5;
Factorial = 1;
Pentru Counter = 1 By A Cycle
Factorial = Factorial * Contor;
EndCycle;

Buclă după condiție– condiția buclei date este îndeplinită atâta timp cât este adevărată. Exemplu:

RemainingAmount = 1000;
Pret produs suplimentar = 243;
Cantitate = 0;
În timp ce cantitatea rămasă> 0 ciclu
Cantitate = Cantitate+1;
Suma rămasă = Suma rămasă – Cantitate*Prețul produsului suplimentar;
Prețul produsului suplimentar = prețul produsului suplimentar * 0,8;
Sfârșitul ciclului
Cantitate = Cantitate-1;

Acest ciclu calculează câte unități dintr-un produs pot fi achiziționate pentru o anumită sumă (1000 de ruble) dacă, după achiziționarea fiecărei unități a unui produs, prețul său anterior este înmulțit cu un factor de 0,8. Prețul inițial al produsului este de 243 de ruble.

Un exemplu de eroare la utilizarea acestui tip de buclă pentru începători este o buclă eternă, când condiția buclei este inițial adevărată, dar în interiorul buclei în sine nu se schimbă în niciun fel.

Parcurgeți colecțiile (un alt nume pentru toată lumea).

Există un număr destul de mare de colecții în Platformă (acestea sunt containere care conțin elemente de un anumit tip).

Puteți itera elementele unei colecții folosind un tip special de buclă.

De exemplu, există o matrice de numere, trebuie să calculați suma tuturor elementelor matricei:

Suma = 0;
Pentru fiecare element din bucla de matrice
Suma=Suma+Element;
EndCycle;

Există operatori speciali pentru bucle: ContinuaȘi Avorta.

Dacă la un moment dat al ciclului execuția altor operatori ai unei bucle date devine lipsită de sens, atunci operatorul este folosit pentru a reveni la începutul buclei și a organiza următoarea buclă. Continua.

Operator Avorta permite buclei să termine execuția chiar dacă condiția buclei este adevărată.

Aceasta încheie prima noastră cunoștință cu dezvoltarea în limbajul intern 1C.

Ce zici de Hello World? Nu am scris-o încă, nu-i așa? Da, dar nimic nu te împiedică să o faci singur, pentru că... cunoștințele sunt DEJA suficiente. Ei bine, dacă nu funcționează, atunci poți arunca o privire aici.

Constantele sunt folosite pentru a stoca o singură valoare într-o bază de date. De obicei, constantele stochează informații care se schimbă rar, de exemplu, numele organizației, adresa organizației, numele managerului etc.

Pentru fiecare constantă, trebuie să specificați numele și tipul de date.Accesarea constantelor într-un modul de program este foarte simplă:

1. Citirea valorii unei constante

// citește valoarea constantei
Nume = constante. Numele organizației. Obține ();

Acordați atenție cuvântului Constante (și nu Constant, așa cum era în versiunea 7.7).

2. Scrieți o nouă valoare constantă

Pentru a scrie (seta) o nouă valoare a unei constante, utilizați metoda Set().

// scrie o nouă valoare constantă
constante. Numele organizației. Set(„Horns and Hooves LLC”);

3. Lucrul cu un set de constante

Uneori poate fi necesar să citiți sau să scrieți valorile mai multor constante simultan. Pentru astfel de situații, puteți folosi un set de constante. Când se utilizează un set, toate constantele incluse în acesta sunt citite și scrise împreună într-o singură tranzacție, adică se realizează simultan o operaţie pe mai multe constante.

//creăm un set de trei constante

//rețineți că doar creăm un set de constante și nu le cunoaștem încă valorile

Set = constante. CreateSet("Manager,Nume Organizație,Adresă Organizație");

Deoarece atunci când lucrăm cu un set de constante putem schimba (scrie) valorile tuturor constantelor din set în același timp, mai întâi trebuie să setăm o nouă valoare pentru fiecare constantă și apoi să folosim metoda Write() pentru a înregistrați-le simultan.

//setează valoarea constantelor din set (nu în baza de date)
Trusa . Manager = „Ivanov I.I.”;
Set.Numele organizației= „New Horns and Hooves LLC”;
Set.AddressOrganization= „Rusia, Moscova, Kremlinul”;
Trusa . Scrie(); // scrie valorile a trei constante în baza de date deodată

4. Comparație cu valoarea unei constante în interogări

Uneori poate fi nevoie să comparăm datele cu valoarea unei constante dintr-o interogare. ÎN în acest exemplu Selectăm înregistrări din directorul Mementouri a căror valoare a atributului Cod este egală cu valoarea constantei OurNumber. Ne vom uita la limbajul de interogare 1C mai detaliat în următoarele materiale despre limbajul 1C încorporat.

"ALEGE
| Valoarea noastră N,
| Mementouri.Cod,
|DIN
| Constant.OurNumber AS OurNumber,
| Director.Mementouri CUM să mementouri
|UNDE
| Reminders.Code = OurNumber.Value"

Comentarii

    //acum folosind metoda Get() putem citi valorile constantelor setului nostru

    Set.Citește(); //citește trei constante din baza de date simultan

    Mă întreb dacă există o greșeală de scriere aici? Se pare că am vorbit despre o metodăObține().