internetul Windows. Android

Tipul primitiv Buleveo. Primitiv tip boolevo Ce înseamnă în 1c boolevo

Acest articol continuă ciclul articolelor "Primii pași în dezvoltare pentru 1c". Va vorbi despre tipurile de date primitive și cele mai frecvente caracteristici atunci când lucrați cu ele. După ce ați citit materialul, veți învăța:

  • Ce tipuri de date sunt primitive?
  • Cum puteți lucra cu rânduri și ce caracteristici ar trebui luate în considerare?
  • Care sunt subtilitățile de lucru cu expresii numerice?
  • Cum să descrieți o valoare specifică? Cum se stabilește o dată goală?
  • Cum funcționează conversia de tip?
  • Null și vag - ce este și care este diferența?
  • Cum să determinați ce tip de obiect / variabilă?

Aplicabilitate

Articolul este scris pentru platforma 1C versiunea 8.3.496, astfel încât informațiile sunt relevante pentru versiunea curentă a platformei. Cu toate acestea, trebuie remarcat faptul că în versiunea 8.3.6.1977 au fost adăugate noi caracteristici de lucru cu rânduri. Prin urmare, atunci când repetați acțiunile din articol, nu fiți surprinși dacă veți vedea anumite funcții care nu sunt afișate în captura de ecran în secțiunea corespunzătoare a sintaxei asistentului. De asemenea, vă recomandăm să vă familiarizați cu noua metodă de Schingchange (), adăugată în platforma 8.3.10.

Tipurile de date primitive și unele dintre funcțiile lor

Alocați următoarele tipuri de date primitive:

Constantari de coarde

Tipul de date primitiv Linia(constanta de canalizare) constă din diferite caractere. LiniaÎntotdeauna încadrați de citate. Exemplu de constantă a șirului:

Mesaj. Text \u003d "Există date goale";

Acestea. Linia "Datele goale prezente" este atribuită detaliilor Textobiect Mesaj. Tot ce este încadrat în citate este considerat un șir.

Șirul poate consta din orice caractere. Rândurile pot fi multiple. În acest caz, fiecare linie nouă trebuie să fie determinată în citate. De exemplu:

Text \u003d "Props umplut incorect"
"Efectuarea unui document este imposibilă";

Punctul cu virgula este plasat numai la sfârșitul ultimei linii.

Există un alt mod - întregul text este încadrat numai în unele citate, dar fiecare linie nouă Ar trebui să înceapă cu o bandă verticală.

Această sintaxă este cea mai des utilizată în configurațiile tipice. În special, în limba de interogare. De exemplu:

Solicitare.Text \u003d.
"ALEGE
| Angajați. Numele ca angajat,
| Angajați. Avantaje ca dadinary
| Este.
| Director. Programare ca angajați
| Unde.
| Non-angajați.tehogroup ";

Trebuie remarcat faptul că operațiunea este definită pentru rânduri. Aceasta nu este o operație aritmetică, se numește o operațiune de concatenare.

Acestea. Trebuie să combinați, de exemplu două linii, în timp ce între rânduri este semnul adăugării "+":

Text \u003d "Cereri incorect umplute" + "Documentul este imposibil";

Astfel, lipirea rândurilor. Funcționarea concurentară, în mod natural, se aplică mai multor linii. Alte operațiuni (scădere, multiplicare, divizare) pentru linii nu sunt permise.

Dacă există un cuvânt în interiorul șirului, trebuie să fie încadrați în citate, atunci trebuie să fie determinată cutootion în interiorul liniei citate duble. De exemplu:

Text \u003d "Eroare în modul" "Modul comun1" "";

ÎN acest exemplu Se deschide primul citat peste șir. În apropierea celei de-a doua și a treia citate, indică semnul citatelor.

Și la sfârșit, se obțin trei citate: cea mai recentă căpa închide șirul, cele două denotă anterior citate.

Diferitele operațiuni de conversie a rândului sunt posibile deasupra rândurilor, definirea câtorva caractere stânga, definiția mai multor caractere extreme dreapta, căutați substring în interiorul șirului etc.

Toate aceste caracteristici sunt disponibile oriunde în configurație.

În asistentul de sintaxă sunt în secțiune Descrierea generală a limbii încorporateCaracteristici încorporateFuncțiile de lucru cu valori.

Funcțiile sunt suficiente un numar mare de Și de obicei sunt suficiente pentru a lucra cu constante de șir.

Vom analiza un exemplu de rezolvare a problemei folosind funcții de șir.

Sarcina:

Este necesar să se dezvolte o funcție. Un șir arbitrar este transmis ca parametru la funcție. Simbolurile din șir pot fi incluse numere.

Secvența numerelor (de la unul sau mai multe), limitată din alte semne de spații, este un număr pozitiv.

De exemplu, șirul "72 ABC 6ap 31 54F -22" conține două numere pozitive integrate: 72 și 31. În plus față de lacune, nu sunt utilizate alte caractere inconcente (cum ar fi tabularea, returnările de transport). Funcția trebuie să returneze numărul de numere pozitive întregi.

Acesta trebuie plasat în modulul de aplicare gestionat. Este necesar să se asigure apelul la pornirea sistemului. Determinați șirul utilizând o variabilă.

Deci, vom deschide modulul de aplicare controlat și vom selecta câmpul de selecție din lista din panoul de configurare Modulhandler standard Propactiune sistem.

În interiorul manipulatorului va determina variabila Linia, de exemplu:

ROW \u003d "72 ABC 6AP 31 54F -22";

Cantitate \u003d sunărea (șir);

Vom emite un mesaj despre numărul de numere întregi:

Raport ("șirul conține" + cantitate + "numere întregi");

În acest caz, variabila număr va fi implicit convertit la tip String constant.. Apoi, o operație de concatenare va fi efectuată pentru trei linii și este transmis un mesaj.

Definim funcțiile de început și de sfârșit (i.e. șablon) Ringing (șir).

Acum luați în considerare una dintre opțiunile posibile pentru dezvoltarea unei funcții. Ringing (șir). În acest caz, ne vom familiariza cu unele caracteristici încorporate concepute pentru a lucra cu linii.

În primul rând, ar trebui să vă familiarizați cu funcția Kodsimvol.. Această caracteristică primește un cod de simbol situat în rândul transmis în poziția cu numărul specificat.

Sintaxă:

Codeimvol (,)

Parametrii:

(obligatoriu)

(Opțional) este un număr de caractere într-un șir al cărui cod trebuie obținut. Numerotarea caracterelor în șir începe cu 1.

Valoare returnată:
Codul simbolului transmis. Codul revine în conformitate cu codarea Unicode.

Rețineți că parametrul Există o valoare implicită de 1.

Șirul poate consta, de asemenea, dintr-un singur simbol. Astfel, este posibil să se determine codul 0 și codul 9, iar codurile tuturor celorlalte numere sunt situate, după cum știți, în intervalul dintre ele.

Definim variabilele adecvate și valorile lor:

Cod 0 \u003d CodeImpol ("0");
Code9 \u003d CodeImpol ("9");

Pentru a rezolva sarcina, alegeți următoarea schemă:

  1. Dacă lacunele de pornire sau finale în orice cantitate sunt prezente în linie, atunci veți scăpa de ele cu o funcție specială. Apoi, vom fi interesați de grupuri de caractere între spațiile interne. Dacă grupul constă din unele numere, atunci acesta este un număr întreg. Există o funcție specială cu care puteți determina poziția primului spațiu.
  2. După ce a primit poziția primului spațiu, folosind o altă funcție, puteți obține un grup de caractere (substring) în partea stângă a spațiului.
  3. Analizăm caracterele care alcătuiesc grupul și definesc: dacă este un număr întreg. Interioarele identificate vor rezuma într-o variabilă specială.
  4. Rădăcină linia de pornire selectând cu altă funcție toate caracterele acum în partea dreaptă a spațiului. Acest decalaj nu a putut fi singur, dar o serie întreagă de lacune, prin urmare, în rând, în linia rămasă, o funcție specială va scăpa de toate lacunele extreme stânga (mergând la rând) și va reveni la paragraful 2. Noi va repeta acțiunile de la alineatul (2) la alineatul (4) până când ajungem în statele că nu vor exista spații în șir. În acest caz, șirul scurtat va fi ultimul grup de caractere analizate.

Acum vom analiza funcțiile pe care trebuie să le rezolvăm problema.

Sokrlp.
Sintaxă: SokrlP ()
Parametrii: (obligatoriu).
Tăiați spațiile (caractere nesemnificative), care sunt situate în partea stângă a primului simbol de caractere din rând și în picioare în partea dreaptă a ultimului simbol semn în rând.

A găsi
Sintaxă: Găsiți (,)
Parametrii: (obligatoriu), (obligatoriu).
Returnează poziția primului semn găsit substring.
Numerotarea caracterelor în șir începe cu 1. Dacă șirul nu conține substringul specificat, atunci 0 este returnat. În cazul nostru, vom folosi un spațiu ca substring ("").

un leu
Sintaxă: Lion (,)
Parametrii: (obligatoriu), (obligatoriu).
Selectează primul simbol al șirului de stânga. Cu această caracteristică, vom defini caractere pentru analiză (stânga la primul spațiu).

Strotina.
Sintaxă: Strotina ()
Parametrii: (obligatoriu).
Obține numărul de caractere în șir. Vom folosi pentru a determina lungimea șirului.
Funcţie Kodsimvol.care vor fi folosite pentru a identifica grupurile de caractere care sunt numite întregi, descrise mai devreme.

Dreapta
Sintaxă: Drepturi (,)
Parametrii: (obligatoriu), (obligatoriu).
Selectează dreptul extrem al simbolurilor șirului. Folosind această caracteristică, vom aloca o parte brută.

Sokrel.
Sintaxă: Sokrel ()
Parametrii: (obligatoriu).
Spațiile spațiile (caractere nesemnificative), în picioare din partea stângă a primului simbol semnificativ din rând. Folosim această caracteristică pentru a elimina posibilele spații în partea stângă a părții rămase a liniei.

Mai jos este un posibil algoritm de caracteristici cu comentarii.

Expresii numerice

Numeric poate fi module variabile și detalii ale obiectelor bazei de date.
Pentru numărul există o limitare de biți. Pentru recuzită numerică, lungimea întregii părți nu poate depăși 32 de caractere.

Precizia părții fracționate nu poate depăși 10 cifre. Când variabila este descrisă și valoarea numerică este atribuită acestuia, atunci nicăieri nu este descărcarea sa. Cu toate acestea, pentru variabile există, de asemenea, limitări.

Sintaxa asistentă spune că rata maximă de biți admisibilă pentru numărul este de 38 de caractere. O astfel de limitare nu interferează cu soluționarea oricăror sarcini economice, adică. Orice bani pot fi descriși cu aceste numere.

Cu toate acestea, dacă va mai fi nevoie să descrieți valori mari pentru a rezolva anumite sarcini matematice, atunci în teoria programului există algoritmi care vă permit să descrieți numerele cu orice dimensiune bazată pe restricțiile existente.

Operațiuni aplicabile pentru numere:

  • operații aritmetice convenționale (-, +, *, /). Multiplicarea și divizarea are mai multă prioritate decât adăugarea și scăderea. Parantezele au cea mai mare prioritate. Există încă operații unice + și - a cărui prioritate merge imediat în spatele parantezelor;
  • funcționarea "reziduu din diviziune" (%). De exemplu, 12% 5 \u003d 2;
  • funcțiile matematice care pot fi utilizate pentru numere (funcții trigonometrice, construcția rădăcinii pătrate, rotunjirea la bitul specificat, selectați întreaga parte a numărului)

Dacă vorbim despre acuratețea valorilor numerice, în ceea ce privește detaliile bazei de date, există limitări naturale aici.

Dar, ca și pentru variabile, există o caracteristică. De fapt, în variabile pot fi operate pe numere foarte mari, dar în baza de informații, valorile cu o lungime a întregii părți nu sunt mai mari de 32 de caractere.

Valori booleene

În ceea ce privește tipul de date Buleveo, există doar două valori ale adevărului și minciunilor care pot fi obținute. căi diferite.

Puteți, de exemplu, să utilizați operațiile de comparație ale numerelor sau datelor. Ca urmare, se vor obține un înțeles boolean, care este în viitor cel mai adesea utilizat în operatorii condiționali și în operatorii ciclului.

Tip de tip de date

Pentru a descrie data în care există două moduri. Unul dintre ei folosind literali. Literal este scris în ghilimele unice.

Prima vrajă pe an, apoi o lună și apoi zi.

Dacă este necesar, puteți specifica timpul, deoarece În sistemul 1C: Enterprise 8 Orice dată conține data și ora. De exemplu:

DATA DOCK \u003d '2010315121020';

Dacă timpul nu este specificat, atunci în mod implicit este zero. În descrierea datei, puteți utiliza orice separator. De exemplu:

DataDociation \u003d '2014.03.15';

A doua modalitate de a determina data este utilizarea funcției contextului global Data(). În acest caz, transmitem această funcție ca parametrii același lucru: anul, luna, ziua după virgulă.

De asemenea, puteți specifica timpul. Dacă nu o specifică, atunci va fi ziua prestabilită a zilei.

În sistemul 1C: Enterprise 8 O dată goală este chiar începutul calendarului. Opțiuni de înregistrare:

Damned \u003d '00010101';
Damned \u003d Data (1,1,1);

Și aceeași intrare va returna același rezultat, iar această dată va fi considerată goală.

Comoditate de funcții Data() În acest sens, putem transmite valori specifice, dar unele variabile. Acelea., Uneori proiectăm data colectării diferitelor variabile.

Pentru data aplicată operația. Funcția de adăugare adaugă la data numărului specificat de secunde.

Conversia tipurilor de date primitive

În declarația de atribuire, unde sunt însumate mai multe variabile (de exemplu, Variabilă \u003d a + în + cu) Este posibil să convertiți tipurile de date primitive. Conversia tipului de date este efectuată de valoarea primului tip de date.

Astfel, dacă primul tip de date este un șir, atunci sistemul va încerca să facă un șir din toată această expresie. Dacă primul tip de date este numărul, atunci, în consecință, sistemul va încerca să obțină un tip de date numerice.

Și așa, linia + numărul \u003d șir. Uneori, numărul poate fi îndoit cu un șir, dacă o valoare numerică poate fi izolată din șir (de exemplu, 123 + "456").

Pentru tipul de date logice Expresii aplicabile:

Adevărul și 1 \u003d Adevărul;
Adevărul și 0 \u003d minciuni.

Orice număr de zero este transformat în adevăr, 0 este convertit într-o minciună.

Data la care puteți, după cum se menționează înainte, plierea cu un număr. Data poate fi, de asemenea, pliată cu un tip de date boolean.

În acest caz, adevărul este convertit la 1, și o minciună în 0.

În plus față de tipurile de conversie în operatori, există o conversie clară a tipurilor utilizând funcțiile corespunzătoare: Rând (), număr (), data (), booleo ().

LA Şirorice tip de date este convertit.

Numărul poate fi obținut de la un rând sau de la Boolevo. Boolevo este convertit: Adevărul în 1, se află în 0.

După dată, puteți cita un șir dacă va exista o valoare de dată. De exemplu, data ("20140315"). După cum sa menționat mai devreme, convertirea este posibilă prin poziții:

Data(,).

În Boolean, puteți converti numărul și valoarea booleanului.

Aceste funcții pot fi utilizate în codul programului pentru a efectua o conversie de tip explicit.

Numărul de date primitive, șir, dată și boolean pot acționa ca câmpuri de baze de date.

Valorile nulă și incertă

Null este literal. Este folosit, de regulă, în interogările bazei de date când sunt conectate două sau mai multe tabele.

Este lipsit de înregistrări în a doua masă și sunt umplute cu o valoare de tip null. Acestea. Aceasta este o valoare lipsă.

În viitor, la procesarea rezultatului rezultat, acest lucru trebuie luat în considerare, deoarece NULL nu este zero, ci tipul de date corespunzător.

Pentru a trata, Null trebuie să conducă la orice tip obișnuit Date care pot fi emise sau utilizate în operații aritmetice.

Valoarea tipului nul poate fi obținută în limba încorporată. Puteți defini o variabilă și puteți atribui valoarea nulă. Cu toate acestea, această atribuire în codul programului este aproape niciodată utilizată.

Acestea. Null este într-adevăr tipul de date obținute atunci când lucrați cu solicitări. Valoarea nulă în limba de interogare trebuie rezolvată diferit.

Anume, la nivel de interogare, nu va exista nici o comparație a \u003d nul, va trebui să utilizați funcții specializate. Cu toate acestea, în limba încorporată, comparația cu valoarea nulă va fi corect elaborată.

Tipul de date este nedefinit - aceasta nu este o valoare goală a oricăror detalii.

De exemplu, dacă înregistrarea cărții de referință are un link către orice alt director ca un tip de date, atunci valoarea goală a acestor recuzită nu va fi la fel de incertă.

Acest tip (Incert) apare, în primul rând, dacă avem o anumită variabilă și nu inițializează (tipul de date nu este definit).

Al doilea exemplu: tipul de date este returnat pe termen nelimitat de numeroase funcții lingvistice încorporate dacă acțiunea nu poate fi executată.

De exemplu, căutarea unui element de referință la numele în cazul în care orice carte de referință nu are acest nume al elementului. Metodă fundație va returna valoarea Nedefinit.

În care Nedefinit Este cuvântul cheie, este evidențiat în roșu. Acesta este, de asemenea, un literal pentru scriere Nedefinit Nu este nevoie să utilizați citate, virgule, paranteze etc.

Dacă există o listă de documente, iar această listă este goală (în el, nu există șir, respectiv) Șirul curent va lua valoare Nedefinit.

Dacă in. baza de informare Există cerințe cu un tip de date compozite, atunci valoarea goală a acestor recuzită va fi egală Nedefinit.

Dar dacă tipul de date nu este compozit, atunci valoarea goală va corespunde valorii goale de acest tip (pentru data este prima secundă a primei zile a primei zile a primului an).

Null și incert - acestea sunt tipurile de date și valori în aceste tipuri și una. Pentru Null, aceasta este nulă, pentru incertitudine - pe o perioadă nedeterminată.

Tip tip de date

Aplicarea principală a acestui tip de date este de a compara valoarea unei anumite detalii variabile sau baze de date cu un tip specific.

Acestea. Algoritmul trebuie să înțeleagă ce tip de obiect.

Este demn de remarcat faptul că acest tip de date nu are literal. Nu putem să o scriem, cum ar fi Null sau incert, dar putem obține semnificația acestui tip cu două funcții Un felși Typny..

Pentru a obține un tip de obiect (poate fi o recuzită variabilă sau de baze de date, sau elemente de recuzită), este utilizată o funcție Typny..

Acest obiect este transmis acestei funcții pe care doriți să îl obțineți un tip de date.

Ca o valoare returnată, această funcție returnează exact tipul de tip.

În viitor, ar trebui comparată cu orice obiect de interes. De exemplu:

Dacă tipul tipic (element) \u003d tip ("Shanderder Shipturi. Nomencultură") Apoi
Raport ("acesta este bunurile");
Încheiat;

În concluzie, să rezumăm întregul material acoperit.

Ne-am uitat la designul de bază al limbajului încorporat 1c, am învățat cum să folosim variabilele și operatorii, imaginați, pentru care și cum să utilizați procedurile și funcțiile. Rețineți că, în cea mai mare parte, întregul nostru cod de program înainte de acest moment a fost autosuficient - am scris toți de la zero și la un minim utilizat într-o anumită configurație sau limbi încorporate.

În articolul următor, vom studia aceste obiecte în detaliu, așa că nu treceți! ;)

Bună ziua, dragă site-ul de cititoare blog! Ultima dată când am acordat atenție în limba încorporată 1c: Întreprinderea 8. Astăzi vom continua și vom vorbi imediat despre două tip de date - Boolean și DataȘi să ia în considerare cum să lucrați cu ei. Deci, să începem!

Cu privire la tip de date Booleo., totul este destul de simplu aici. Există două sensuri Adevărat și Falscare pot fi obținute în diferite moduri. De exemplu, puteți utiliza operațiuni de comparație:

  • 101\u003e 1001 este egal Fals
  • 101 adevărul
  • '20000101' \u003d '20000102' la fel Fals
  • "Deschis" deschis "egal Adevărat

După cum puteți vedea, puteți utiliza diferite numere de operațiuni de comparație, rânduri, date. Ca urmare, se vor obține o valoare booleană, care este adesea utilizată în operatorii condiționați și în operatorii de ciclism.

Acum ia în considerare tipul de date primitiv Data. Pentru a descrie tipul de date Data De obicei sunt utilizate două moduri. Primul, utilizarea literală. Să declarăm o variabilă care va fi numită "date curente". De exemplu, acesta va fi egal cu 2 octombrie 2014. În acest caz, formatul de dată este un an / lună / zi.

Flowable \u003d "20141002"; // 02.10.2014

Dacă este nevoie, putem specifica timpul, deoarece în sistemul 1C: Întreprinderea 8 Orice dată conține în interiorul și data și ora. Prin urmare, dacă este necesar, puteți specifica, de exemplu, de data aceasta: 15 ore și 50 de secunde. Se va întoarce un an / lună / zi / oră / minut / secundă.

Flowable \u003d '20141002150550'; // 02.10.2014 15:05:50.

Dacă nu specificați timpul, atunci în mod prestabilit va fi zero, iar data poate fi descrisă aici în acest mod: '20141002'.
Pentru claritate, orice separator poate fi utilizat, de exemplu, puncte ".". Prin urmare, data poate arăta astfel: "2014.10.02". A fost prima modalitate de a descrie data. Vă rugăm să rețineți că sunt folosite citate unice, adică un literal care nu poate fi rupt. Este scris în citate unice.

A doua modalitate de a determina data este utilizarea unui context global Data(). În acest caz, transmitem ca parametrul acestei funcții la fel: an / lună / zi. Parametrii aici trebuie să fie specificați printr-o virgulă.

Flowable \u003d Data (2014, 10, 02); // 02.10.2014 00:00:00

De asemenea, puteți specifica timpul.

Flowable \u003d Data (2014, 10, 02, 15, 05, 50); // 02.10.2014 15:05:50.

Dacă timpul nu specifică, atunci va fi egal cu începutul zilei. De asemenea, puteți scrie următorul apel la această caracteristică:

Curent) \u003d data ("20141002150550"); // 02.10.2014 15:05:50.

Utilizează un parametrii cu un șir care ar trebui să conțină data în format: an / lună / zi / oră / minut / secundă.

Pentru a descrie o dată goală în sistemul 1C: Întreprinderea 8 trebuie făcută după cum urmează:

Damned \u003d ""; // 01.01.0001 00:00:00

Sau folosind descrierea prin literal:

Damned \u003d "00010101"; // 01.01.0001 00:00:00

Un alt mod, folosind funcția contextului global deja familiarizată cu SUA:

Data goală \u003d data (1, 1, 1); // 01.01.0001 00:00:00

Utilizarea acestor metode va returna același rezultat, iar data va fi luată în considerare goală. Comoditate de funcții Data Este că putem transmite aici valori specifice, ci variabile. Uneori trebuie să obțineți o dată prin colectarea diferitelor variabile. Pentru acest lucru ajută foarte bine funcția Data.

Și vreau, de asemenea, să menționez că operațiunea este aplicabilă pentru dată. Dacă adăugați la data zece:

Flowable \u003d Data (2014, 10, 02, 15, 05, 50); // 02.10.2014 15:05:50 curge \u003d curge + 10;

Ca rezultat, vom primi data de zece secunde mai mult:

02.10.2014 15:06:00

Deci, operația de adăugare adaugă la data specificată o anumită sumă de secunde. Aceasta este diferența față de versiunea sistemului 1c: Întreprinderea 7.7, unde a fost adăugat numărul de zile atunci când se pliază datele și nu secunde.

Mulți care încep doar să studieze programarea, mai întâi cu un nou tip primitiv pentru ei înșiși boolean. Încă l-au numit altfel tip logic. . Acest tip este numit după ce matematica engleză George Bul, care a studiat problemele logice matematice.

Înainte de a începe să studiați acest tip primitiv, învățăm la ce sunt booleani sau expresiile logice.

Expresiile booleene sunt ceva de genul unei întrebări care ar trebui să fie un răspuns fără echivoc sau da, sau nu.

5 < 7 — Да;

5 \u003d 8 - Nu;

4\u003e 9 - Nu.

Pot fi, de asemenea, întrebări mai complexe:

Butonul este apăsat - da;

Butonul este apăsat - nu;

Exprimările booleene sunt utilizate în toate tranzițiile condiționate:

În cazul în care un< Булево выражение1> atunci

// operatori

Inaccesiune< Meterul boolean2.\u003e Apoi

// operatori

Încheiat;

În limbajul de programare 1C variabil cu tip primitiv boolean, puteți seta în mod explicit:

A \u003d Adevărul;

B \u003d false;

În cazul în care adevărul și minciunile sunt singurele valori pe care le poate lua tipul primitiv de boolean.

Adevărul înseamnă că o anumită declarație este adevărată (răspunsul - da).

Minciuni - înseamnă că o anumită declarație, dimpotrivă, nu corespunde realității (răspunsul este).

De asemenea, variabilele cu tipul boolean pot fi specificate utilizând orice expresie logică.
De exemplu:

A \u003d 5.< 7 ;

B \u003d 6\u003e 9;

În acest caz, într-o variabilă și va fi valoarea adevărului și într-o variabilă tip B - FALSE;

În limba de programare 1c de mai sus tipul de variabile Tip. Boolevo poate efectua diverse operații.

De exemplu:

A \u003d 5.< 7 ;

B \u003d 6\u003e 9;

B \u003d A și B;

C \u003d a sau b;

D \u003d nu a;

Totalul trei - și, sau nu.

Următoarele tabele vor ajuta la înțelegerea funcționalității acestor operațiuni

Operațiunea NE.

DAR B.
Adevărat Fals
Fals Adevărat

Operațiunea I.

C \u003d a și b DAR B.
Adevărat Adevărat Adevărat
Fals Fals Adevărat
Fals Adevărat Fals
Fals Fals Fals

Operare Or.

C \u003d a sau b DAR B.
Adevărat Adevărat Adevărat
Adevărat Fals Adevărat
Adevărat Adevărat Fals
Fals Fals Fals

Este posibil să efectuați aceste operațiuni la rând?

Da, puteți, aceste operațiuni vor fi efectuate de la stânga la dreapta. Și au următorul nivel de vechime:

În primul rând: În primul rând, operațiunile sunt efectuate în paranteze

În al doilea rând: operațiunea nu este

În al treilea rând: operațiune și

În al patrulea rând: operațiune sau.

Pentru a nu fi confundat în operațiuni, vă sfătuiesc să utilizați paranteze, unde este posibilă numai.

De exemplu:

A \u003d false;

B \u003d adevăr;

C \u003d false;

D \u003d a și c sau b;

În acest caz, operațiunea va funcționa mai întâi ȘIÎntre A și C.

Ne uităm la masă a - Fals, De la - Fals, rezultatul A. ȘIC Will. Fals.

Următorul pas va fi executarea operațiunii SAUîntre Minciună(Rezultat al operațiunii anterioare) și valoarea B, care Adevărat.

Rezultatul va fi Adevărat.

Și dacă trebuie să trecem mai întâi operația SAUîntre C și B, și apoi numai operațiunea ȘIÎntre și ce sa întâmplat, este necesar să se utilizeze paranteze.

A \u003d false;

B \u003d adevăr;

C \u003d false;

D \u003d A și (s sau b);

Rezultatul va fi diametral opus. De ce? Acum vom analiza. Datorită parantezelor, operația este efectuată mai întâi între C și B, deoarece De la - Fals, și b - Adevărat, rezultatul va fi Adevărat. Apoi, între valoarea A (care Fals) și înțeles Adevărat(rezultatul operațiunii anterioare) ȘI. Rezultatul va fi Fals.

Mulți programatori de novice nu înțeleg complet principiile interacțiunii dintre variabilele tipului Buleveo. Numai practica poate ajuta. Și practici cu tip variabil de tip Bolevo suficient în cartea mea de sarcină la carte

Aflați baza de configurare în 1c și învățați să programați în "1c: întreprindere" cu cărțile mele: și "Bazele dezvoltării în 1c: Taxi"

Explorați programarea în 1c în loc din cartea mea "Program în 1c pentru 11 pași"

  1. Cartea este scrisă de înțelegerea și limba simplă - Pentru începători.
  2. Învață să înțelegi arhitectura de 1c;
  3. Vom scrie cod în limba 1c;
  4. Lumina principalele tehnici de programare;
  5. Asigurați cunoștințele dobândite folosind sarcina;

Alocație excelentă de dezvoltare într-o aplicație gestionată 1c, atât pentru dezvoltatorii începători, cât și pentru programatorii experimentați.

  1. Limba foarte accesibilă și ușor de înțeles de prezentare
  2. Cartea este trimisă de e-mail în formatul PDF.. Pot fi deschise pe orice dispozitiv!
  3. Veți înțelege ideologia aplicației gestionate 1c
  4. Aflați cum să dezvoltați o aplicație gestionată;
  5. Învață să se dezvolte formulare controlate 1c;
  6. Puteți lucra cu elementele principale și necesare ale formularelor controlate.
  7. Programarea în cadrul unei aplicații gestionate va deveni ușor de înțeles

Cod promoțional pentru o reducere de 15% - 48pxheyu.


Dacă ați ajutat această lecție pentru a rezolva o problemă, mi-a plăcut sau am fost util, atunci puteți susține proiectul meu, ascultat în orice sumă:

puteți plăti manual:

Yandex.money - 410012882996301.
Web Money - R955262494655

Alăturați-vă grupurilor mele.

De regulă, studiul 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 arăta vizual lucrul cu modele de sintaxă de bază. Nu vom face excepție de la metoda general acceptată de depunere a unui material atunci când studiază un nou mediu de dezvoltare și, prin urmare, primul nostru articol ar trebui luat în considerare în aceeași venă. În detaliu în detaliu răspunsurile la următoarele întrebări privind programarea pe platforma 1C: Enterprise 8:

  • Unde și cu ce să scrieți codul programului în limba 1c încorporată?
  • Ce module software.Care sunt regulile de lucru cu ei?
  • Ce este o variabilă, cum să lucrați cu el, cum și unde să o declarăm?
  • Ce operatori de comparații există și cum să le aplice?
  • Operațiuni booleane - Ce este și cum să lucrați cu ei?
  • De ce aveți nevoie de cicluri și cum să le folosiți?

Articolul va fi util pentru toți cei care nu sunt încă familiarizați cu dezvoltarea pe platforma 1C: Enterprise 8, dar dorește să învețe să programeze pentru 1c.

Aplicabilitate

Materialul este relevant pentru "1c: întreprindere 8" a edițiilor 8.2. și 8.3.

Variabile și operatori

În acest articol, procedăm să studiem limba încorporată 1C: Intreprindere 8. Codul executabil este conținut în module software.

Există un număr suficient de mare de module care sunt destinate procesării diverselor evenimente.

Deci, conectarea utilizatorului este procesată într-un singur modul și manipularea de apăsare a utilizatorului pentru un anumit buton este complet diferită.

Astfel, fiecare modul descrie comportamentul de configurare la un punct specific. Modulul conține, în primul rând, secțiunea de descriere variabilă. Acestea. Putem declara câteva variabile în modul.

În viitor, ele pot fi utilizate în procedurile și funcțiile acestui modul. Dacă variabila este definită cu exportul de cuvinte cheie, acesta va fi disponibil în exterior acest modul.. Exemplu de linii de anunțuri variabile:

Depozit, diviziune, exporturi de magazin;

După declararea variabilelor, conține procedurile și funcțiile.

Pentru ei este secțiunea programului principal, care va fi efectuat la momentul trimiterii la acest modul.

De exemplu, în secțiunea principală a programului, puteți inițializa variabilele, adică Atribuiți-le anumite valori inițiale:

Condiție \u003d 1;
Regenerare \u003d 2;
Rezultat \u003d 3;

Modulul poate fi reprezentat ca o combinație de diverși operatori care îndeplinesc diferite acțiuni de care avem nevoie.

Separatorul operatorilor este simbolul ";" (punct şi virgulă). Acest semn este un semn al sfârșitului operatorului. Acestea. Operatorul poate fi înregistrat în acest formular:

Rezultat \u003d 100x200.
+400
-600;

Nu contează dacă operatorul este situat pe cât de multe rânduri.

Desigur, mai des este mai convenabil și mai clar operatorul într-o singură linie, dar uneori operatorii sunt suficient de lungi (numărul de rânduri poate ajunge în mod rezonabil la mai multe zeci).

Punctul cu virgulă nu poate fi plasat în operatorul final al acestui design, de exemplu, procedurile. Acestea. Următorul cod va funcționa:

Procedura de calcul ()

Ieșire \u003d 100;
Intermediar \u003d inițiere / 5;
Înclinație totală \u003d extindere + intermediară

Extradreses.

Cu toate acestea, este mai bine să utilizați un punct de virgulă în operatorul final. Este posibil ca în timp, designul va continua, iar operatorul final nu va mai fi definitiv. Va trebui să urmărim în mod specific această situație.

Variabilele sunt concepute pentru a stoca unele valori ale oricărui tip de date. Acestea sunt utilizate pentru stocarea intermediară a informațiilor, pentru prelucrare.

Practic, în orice modul software care efectuează unele acțiuni, există diferite variabile. Tipărirea variabilelor prin valori în platforma 1C: Enterprise 8 Soft.

De exemplu, variabila poate conține valoarea unui tip de date și după mai multe rânduri - un alt tip:

Creat \u003d false;
Creat \u003d Adevărul;
Creat \u003d 100;

În primii doi operatori, valoarea variabilelor de Boolean și în al treilea se schimbă la o valoare numerică. Acestea. Tipificarea depinde de valoarea atribuită acestei variabile.
Puteți descrie variabilele în două moduri:

  • o metodă implicită (menționând în partea stângă a operatorului de cesiune descrie această variabilă, nu există o descriere preliminară a variabilei cu cuvântul AG, adică nu există o secțiune specială a descrierilor variabile);
  • descrierea explicită a variabilelor (MC controlate;). Se utilizează o descriere explicită a variabilelor, de exemplu, dacă se presupune transmiterea ulterioară a acestei variabile la funcție.

Pentru nume variabile, se utilizează o descriere clasică de identificare. Identificatorul este alcătuit din litere, numere și subliniere. Identificatorul trebuie să înceapă fie cu litera, fie de la subliniere.

În acest caz, numele variabilei ar trebui să afișeze semnificația acestei variabile. Numele variabilelor dintr-o literă (tip A, B, C) sunt exemple rele. Ele nu reflectă esența variabilelor.

Exemple de denumire corectă a variabilelor: contorul (creșterea variabilei pentru ciclu), contrapartidă. Dacă numele variabil conține mai multe cuvinte, fiecare cuvânt nou, pentru claritate, ar trebui să înceapă cu o scrisoare de capital.

În numele variabilelor, este imposibil să se utilizeze cuvinte rezervate, cum ar fi procedura, funcția, ciclul, ENDACKEL etc. (Aceste modele sunt evidențiate într-un modul software pe bază de roșu).

Cuvintele rezervate sunt operatorii limbii încorporate și cantitatea suficient de mică. Toate sunt prezentate în Sintaxă asistent.

Trebuie remarcat faptul că tipurile de date pentru cuvintele rezervate nu sunt legate (de exemplu, o matrice, booleană, adevăr, minciuni). Sistemul Aceste nume variabile vor fi corecte.

Pentru a scrie un cod de program, registrul nu contează. De exemplu, procedura cuvântului poate fi scrisă atât cu litere mari, cât și cu litere mici. Mai mult, literele mari și mici pot fi alternante în interiorul cuvântului.

Pentru platformă, nu contează. Cu toate acestea, în conformitate cu regulile de ton bun, începutul cuvântului trebuie să scrie cu o scrisoare de capital, toate celelalte litere sunt mici.

Cu privire la limbă. Puteți folosi limba rusă și engleză și o combinație de două limbi. Dacă cineva este convenabil, puteți utiliza în siguranță limba engleză pentru a scrie un cod de program, precum și combinați limba rusă și engleză. Pentru platformă nu este importantă.

Multe nume on. limba engleza Este destul de greu de reținut. Când utilizați o combinație de două limbi, lizibilitatea codului programului se înrăutățește.

Operațiuni booleene

În comparație cu operatorii, logica booleană este foarte des folosită, ceea ce returnează valoarea adevărului sau falsă.

De exemplu, în instrucțiunea condiționată, puteți compara: Dacă un eveniment \u003d vânzări, atunci algoritmul va merge pe o sucursală (adică cu valoarea adevărului), cu această stare, se efectuează o altă ramură a algoritmului.

Condițiile pot fi destul de complicate, ele pot fi combinate, se utilizează următorii operatori: și, sau nu. Deci, pentru operator și:

Adevărul și Adevărul \u003d Adevărul;
Adevăr și minciuni \u003d false;
Minciună și adevărul \u003d minciuni;
Minciuni și minciuni \u003d minciuni.

Pentru o dezghețare sau suficientă, astfel încât unul dintre operanți este egal cu adevărul, atunci valoarea combinată va fi adevărată. Valoarea minciunii este obținută numai atunci când se află atât operanții.

Operatorul nu inversează pur și simplu valoarea curentă (o minciună a adevărului, adevărul într-o minciună).

Folosind o combinație de date de operatori, este suficient să construim suficient condiții complexe. În pregătirea operatorilor condiționali complexi, ar trebui luate în considerare prioritățile.

Cea mai mare prioritate are un operator nu, următorul este operatorul și, după acesta, operatorul sau. Ceea ce este închis în paranteze are cea mai mare prioritate și este efectuată mai întâi.

De exemplu, puneți prioritățile (secvența de execuție) pentru operațiunile din expresia de mai sus:

Nu (condiție1 sau condiție2) și condiție3 sau condiție4
1. Rezultatul1 \u003d (condiție1 sau condiție2);
2. Rezultatul2 \u003d nu rezultatul1;
3. Rezultat3 \u003d rezultat2 și condiție1;
4. Rezultat \u003d rezultat3 sau condiție4;

Există o regulă de conversie:

Nu (condiție1 sau condiție2) \u003d nu condiție1 și nici o condiție2.

Cu toate acestea, nu ar trebui să se străduiască întotdeauna să simplifice expresia, deoarece este de multe ori, expresia este mai ușor de citit.

Operatorul de aplicații

Făcând operatorul de atribuire cu egalitate nu ar trebui să fie confundat, în ciuda faptului că au aceeași scriere.

Principiul funcționării operatorului de cesiune este că valoarea stângă (variabilă din partea stângă) este atribuită valorii care este la dreapta semnului de egalitate. Vom analiza un exemplu:

Variabilă1 \u003d variabilă2 \u003d variabilă3;

Variabila1 este atribuită valoarea egalității de la logica booleană, adică Adevăr, dacă variabila2 \u003d variabilă3 sau falsă în cazul opus.

La testarea la poziția unui programator de novice, este adesea folosită o sarcină: schimbați valorile a două locuri variabile.

Această sarcină este rezolvată utilizând operatorul de atribuire și are două soluții.

Soluția nr. 1 utilizând o variabilă temporară:
Valoarea temporabilă \u003d variabilă1;
Variabilă1 \u003d variabilă2;
Variabilă2 \u003d variabilă temporară;

Numărul deciziei 2:
Variabil1 \u003d variabilă1 + variabilă2;
Variabilă2 \u003d variabilă1 - variabilă2;
Variabilă1 \u003d variabilă1 - variabilă2;

Operator condiționat

Există un astfel de operator dacă, după care este necesar să se descrie o anumită condiție (starea în sine poate fi destul de mare). După această condiție, cuvântul, apoi operatorii executați.

Următorul poate urma cuvântul cheie, altfel și o serie de alți operatori. Dacă există mai multe condiții diferite, puteți utiliza o serie de cuvinte cheie Inaccesiune (Vezi exemplul de mai jos). Întregul design trebuie completat de un cuvânt cheie. Ca urmare a, după care este afișat punctul.

În plus față de condițiile simple și multiple, există o formă abreviată operator condiționat: (Condiție, expresie1, expresie2);

Dacă starea este adevărată, va fi efectuată Expresie1, in caz contrar - Expresie2.. Codul eșantionului: Expunereovar \u003d? (Produs. Preț\u003e 100000, adevăr, minciuni);

În practică, în loc de înregistrări de comparație cu semnificație Adevărat (Fals) Tip:

Dacă variabila \u003d adevărul atunci
și
Dacă variabila \u003d se află atunci

Înregistrările echivalente sunt utilizate efectiv:

Dacă variabila atunci
și
Dacă nu este o variabilă atunci

Operatorii ciclici

Pentru orice tip de ciclu, este neapărat o indicație clară a sfârșitului acestui ciclu folosind cuvinte cheie Endcycle.. Există mai multe tipuri de cicluri.

Ciclu prin contor - un ciclu cu un număr fix de repetări. Ieșirea stării din ciclu este de a exuda o valoare limită. Un exemplu de utilizare pentru calcularea valorii A!

A \u003d 5;
Factorial \u003d 1;
Pentru contor \u003d 1 și ciclu
Factorial \u003d Counter Factorial *;
Endcycle;

Ciclu după condiție - până la o condiție cu adevărat din acest ciclu. Exemplu:

Reziduuri \u003d 1000;
Prețurile de preț \u003d 243;
Cantitate \u003d 0;
În timp ce salvați\u003e 0 ciclu
Cantitate \u003d Număr + 1;
Reziduuri \u003d reziduuri - numărul de acțiuni de tip;
Prețurile prețului \u003d valoarea clientului * 0.8;
Endcycle.
Cantitate \u003d Cantitate-1;

Acest ciclu calculează câte unități de bunuri pot fi cumpărate pe această sumă (1000 de ruble), dacă, după achiziționarea fiecărei unități de bunuri, prețul său anterior este înmulțit cu coeficientul de 0,8. Prețul inițial al produsului este de 243 de ruble.

Un exemplu de eroare atunci când se utilizează acest tip de ciclu de începători este ciclul etern, când starea ciclului inițial este cu adevărat adevărată, iar în ciclul în sine nu se schimbă.

Ciclul pe colecții (un alt nume pentru toată lumea).

În platformă există un număr destul de mare de colecții (acestea sunt astfel de containere care conțin elemente de tip particular).

Elementele de curs ale colecției pot folosi un ciclu de tip special.

De exemplu, există o serie de numere, este necesar să se calculeze suma tuturor elementelor matricei:

Sum \u003d 0;
Pentru fiecare element din ciclul de matrice
Sum \u003d suma + element;
Endcycle;

Pentru cicluri există operatori speciali: Continua și Întrerupe.

Dacă într-un anumit punct al ciclului, executarea altor operatori din această întoarcere devine lipsită de sens, apoi pentru a reveni la începutul ciclului și a-și organiza următoarea rundă este utilizată de operator Continua.

Operator Întrerupe Vă permite să finalizați execuția ciclului, chiar dacă corecția ciclului este adevărată.

Pe aceasta, completăm prima noastră cunoștință cu dezvoltarea în limba internă 1c.

Dar ce zici de World Hello? Nu am scris-o încă, nu? Da, dar nimic nu te împiedică să faci tu singur, pentru că Cunoașterea este deja suficientă. Ei bine, dacă nu funcționează, puteți coaja aici.