Schema de compoziție a datelor câmpuri calculate. Funcțiile limbajului de exprimare a sistemului de compoziție a datelor

Limbajul de exprimare al compoziției datelor

Limbajul de expresie al sistemului de compoziție a datelor este proiectat pentru a înregistra expresiile utilizate în diferite părți ale sistemului.

Expresiile sunt utilizate în următoarele subsisteme:

  • schema compoziției datelor - pentru a descrie câmpurile calculate, câmpurile totale, expresiile de comunicare, etc .;
  • setări pentru compoziția datelor - pentru a descrie expresiile câmpurilor personalizate;
  • aspect al compoziției de date - pentru a descrie expresiile relației seturilor de date, descrierea parametrilor de dispunere etc.

literali

Expresia poate conține literale. Sunt posibile următoarele litere:

  • șir de caractere;
  • numărul;
  • Data;
  • Boolean.

rând

Un literal de șir este scris cu caracterele "" ", de exemplu:

   „String literal“

Dacă trebuie să folosiți caracterul „„ ”într-un literal de șir, ar trebui să utilizați două dintre aceste caractere.

De exemplu:

   Literalul „„ în ghilimele „„ „

număr

Numărul este scris fără spații, în format zecimal. Partea fracțională este separată folosind simbolul „.”. De exemplu:

10.5 200

data

Un literal tip de dată este scris folosind cheia DATETIME literal. După acest cuvânt cheie, între paranteze, o virgulă listează anul, luna, ziua, orele, minutele, secundele. Indicarea timpului este opțională.

De exemplu:

DATAVREMYA (1975, 1, 06) - 6 ianuarie 1975 DATAVREMYA (2006, 12, 2, 23, 56, 57) - 2 decembrie 2006, 23 ore 56 minute 57 secunde, 23 ore 56 minute 57 secunde

boolean

Valorile booleane pot fi scrise folosind literele True, False.

valoare

Pentru a specifica literele de alte tipuri (enumerații de sistem, date predefinite), se utilizează cuvântul cheie Value, urmat de numele literalului între paranteze.

Valoare (tip cont. Activ)

Numărul operațiunilor

Unar -

Această operație este destinată inversării semnului unui număr. De exemplu:

Prodazhi.Kolichestvo

Unar +

Această operație nu efectuează nicio acțiune asupra numărului. De exemplu:

Prodazhi.Kolichestvo

Binar -

Această operație este concepută pentru a calcula diferența a două numere. De exemplu:

Reziduuri și cifre de afaceri. Reziduuri inițiale - reziduuri și viraje. Reziduuri finale și turnuri. Reziduuri inițiale - 100 400 - 357

Binar +

Această operație este concepută pentru a calcula suma a două numere. De exemplu:

Reziduuri și cifre de afaceri. Reziduuri inițiale + reziduuri și rotații. Reziduuri de afaceri și viraje. Reziduuri inițiale + 100 400 + 357

produs

Această operație este concepută pentru a calcula produsul a două numere. De exemplu:

Nomenclator. Preț * 1.2 2 * 3.14

diviziune

Această operație este destinată obținerii rezultatului împărțirii unui operand la altul. De exemplu:

Nomenclator. Preț / 1.2 2 / 3.14

Restituirea diviziunii

Această operație este destinată să obțină restul de împărțire a unui operand la altul. De exemplu:

Nomenclator. Preț% 1,2 2% 3,14

Operații cu șiruri

Concatenare (binar +)

Această operație este destinată să concateneze două șiruri. De exemplu:

Nomenclator. Articol + ":" + Nomenclator. Nume

ca

Această operație verifică dacă șirul corespunde modelului trecut.

Valoarea LIKE a operatorului este ADEVĂRĂ dacă valoarea<Выражения>   se potrivește cu modelul, iar FALSE altfel.

În urma personajelor din<Строке_шаблона>   are sens diferit de următorul personaj din șir:

  • % - procent: o secvență care conține zero sau mai multe caractere arbitrare;
  • _ - subliniază: un personaj arbitrar;
  • [...] - unul sau mai multe caractere între paranteze: un caracter, oricare dintre cele enumerate în paranteze pătrate. În enumerare, intervalele pot fi găsite, de exemplu, a-z, adică un caracter arbitrar în intervalul, inclusiv capetele intervalului;
  • [^ ...] - pictograma de negație între paranteze, urmată de unul sau mai multe caractere: orice personaj, cu excepția celor enumerate după pictograma de negație;

Orice alt simbol înseamnă în sine și nu suportă nicio sarcină suplimentară. Dacă trebuie să scrieți unul dintre caracterele enumerate ca tine, atunci trebuie să fie precedat<Спецсимвол>specificat după cuvântul cheie SPECIAL SYMBOL (ESCAPE).

De exemplu, un șablon

   „% ABV [abvg] \\ _ abv%” SIMBOL SPECIAL „\\”

înseamnă o subcentră constând dintr-o succesiune de caractere: litera A; litera B; literele B; o cifră; una dintre literele a, b, c sau d; caracterul subliniere; literele a; litera b; litere c. Mai mult, această secvență poate fi localizată pornind de la o poziție arbitrară în linie.

Operații de comparare

este

Această operațiune este destinată să compare două operanțe pentru egalitate. De exemplu:

Vânzări. Contrapartidă \u003d Vânzări. Nomenclator Furnizor principal

Nu este egal

Această operațiune este destinată să compare două operanțe pentru inegalitate. De exemplu:

Vânzări. Contrapartidă<>   Vânzări.Nomenclatură Furnizor principal

mai puțin

Această operație are scopul de a verifica dacă primul operand este mai mic decât al doilea. De exemplu:

ProdazhiTekschie.Summa< ПродажиПрошлые.Сумма

mai mare

Această operație are scopul de a verifica dacă primul operand este mai mare decât al doilea. De exemplu:

Vânzarea curentului. Suma\u003e Vânzările anterioare. Suma.

Mai mic sau egal

Această operație are scopul de a verifica dacă primul operand este mai mic sau egal cu al doilea. De exemplu:

ProdazhiTekschie.Summa<= ПродажиПрошлые.Сумма

Mai mare sau egal

Această operație are scopul de a verifica dacă primul operand este mai mare sau egal cu al doilea. De exemplu:

Vânzarea curentă. Suma\u003e \u003d Vânzările anterioare. Suma.

Operațiunea B

Această operație verifică prezența unei valori în lista de valori transferate. Rezultatul operației va fi True dacă valoarea este găsită sau False altfel. De exemplu:

Nomenclatorul B (și articolul1 și articolul2)

Operația pentru a verifica o valoare dintr-un set de date

Operațiunea verifică prezența unei valori în setul de date specificat. Setul de date pentru verificare trebuie să conțină un câmp. De exemplu:

Vânzări. Contrapartide la contrapartide

Operație de validare pentru NULL

Această operație returnează True dacă valoarea este NULL. De exemplu:

Vânzări. Contrapartida ESTE NOUĂ

Operațiune de validare pentru inegalitatea NULL

Această operație returnează True dacă valoarea nu este NULL. De exemplu:

Vânzări. Contrapartida NU ESTE NULLĂ

Operații logice

Operațiunile logice iau ca expresii operanduri tipul boolean.

Operațiunea NU

Operația NU se întoarce True dacă operandul său este False și False dacă operandul său este True. De exemplu:

NU Document. Destinatar \u003d Document. Expeditor

Funcționare ȘI

Operația AND returnează True dacă ambele operanze sunt True, și False dacă unul dintre operanzi este False. De exemplu:

Document. Destinatar \u003d Document. Expeditor ȘI Document. Destinatar \u003d & Contrapartidă

Operare SAU

Operația OR returnează True dacă unul dintre operanzii este True, și False dacă ambii operanzi sunt False. De exemplu:

Document. Destinatar \u003d Document. Expeditor SAU Document. Destinatar \u003d & Contrapartidă

Funcții agregate

Funcțiile agregate efectuează unele acțiuni asupra unui set de date.

sumă

Funcția agregată Suma calculează suma valorilor expresiilor transmise acesteia ca argument pentru toate înregistrările detaliate. De exemplu:

Suma (Vânzări.SumAturnover)

număr

Funcția Cantitate calculează numărul de valori, altele decât NULL. De exemplu:

Cantitate (vânzări. Contrapartidă)

Număr diferit

Această funcție calculează numărul de valori diferite. De exemplu:

Cantitate (vânzări diverse. Contrapartidă)

max.

Funcția obține valoarea maximă. De exemplu:

Maxim (reziduuri. Suma)

minim

Funcția obține valoarea minimă. De exemplu:

Minimă (reziduuri. Suma)

medie

Funcția obține valoarea medie pentru valorile non-NULL. De exemplu:

Mediu (reziduuri. Cantitate)

Alte operațiuni

Operație SELECȚIE

Operațiunea Select este concepută pentru a selecta una din mai multe valori în anumite condiții. De exemplu:

Alegerea Când Suma\u003e 1000 Apoi Suma Altfel 0 Sfârșit

Reguli pentru compararea a două valori

Dacă tipurile de valori comparate sunt diferite unele de altele, atunci relațiile dintre valori sunt determinate pe baza priorității tipurilor:

  • NULL (cel mai mic);
  • boolean;
  • numărul;
  • Data;
  • șir de caractere;
  • Tipuri de referință

Relațiile dintre diferitele tipuri de referință sunt determinate pe baza numerelor de referință ale tabelelor corespunzătoare unuia sau altui tip.

Dacă tipurile de date se potrivesc, atunci valorile sunt comparate conform următoarelor reguli:

  • pentru tipul boolean, valoarea TRUE este mai mare decât valoarea FALSE;
  • tip Number are regulile de comparație obișnuite pentru numere;
  • tipul Date are date anterioare mai mici decât cele ulterioare;
  • tip String - comparații de șiruri în conformitate cu caracteristicile naționale stabilite ale bazei de date;
  • tipurile de referință sunt comparate în funcție de valorile acestora (numere record, etc.).

Lucrați cu valoare nulă

Orice operațiune în care valoarea unuia dintre operanzi este NULL va produce un rezultat NULL.

Există excepții:

  • operațiunea ȘI va întoarce NULL numai dacă niciunul dintre operanzi nu este fals;
  • operația OR va întoarce NULL doar dacă niciunul dintre operanzi nu este True.

Priorități de operare

Operațiunile au următoarele priorități (prima linie are cea mai mică prioritate):

  • B, ESTE NUL, NU ESTE NUL;
  • =, <>, <=, <, >=, >;
  • Binar +, binar -;
  • *, /, %;
  • Unary +, Unary -.

Funcțiile limbajului de exprimare a sistemului de compoziție a datelor

Calculați

Funcția Calculează este proiectată pentru a evalua o expresie în contextul unor grupări. Funcția are următorii parametri:

  • Expression. Tastați șir. Conține o expresie calculată;
  • Gruparea. Tastați șir. Conține numele grupării în contextul în care expresia trebuie evaluată. Dacă se folosește un șir gol ca nume de grupare, calculul va fi efectuat în contextul grupării curente. Dacă linia GeneralTotal este utilizată ca nume de grupare, calculul va fi efectuat în contextul rezultatului total. În alte cazuri, calculul va fi efectuat în contextul grupului părinte cu același nume. De exemplu:
  Suma (Vânzări. Suma; Cifra de afaceri) / Calcul ("Suma (Vânzări. Suma; Cifra de afaceri)"; "TotalTotal")

În acest exemplu, rezultatul este raportul dintre suma din câmpul „Vânzări. Valoarea cifrei de afaceri” a înregistrării de grupare și suma aceluiași câmp din întregul aspect.

nivel

Funcția este destinată obținerii nivelului de înregistrare curent.

Nivel ()

NomerPoPoryadku

Obțineți următorul număr de serie.

Număr de comandă ()

Număr grupat

Returnează următorul număr de secvență din gruparea curentă.

Număr grupat ()

format

Obțineți șirul formatat al valorii trecute.

Șirul de format este setat în conformitate cu șirul de format 1C: Enterprise.

Opțiuni:

  • valoarea;
  • Formatează șirul.

Format (ConsumablesInvoices. AmountDoc, "ChDTs \u003d 2")

Începutul perioadei

Opțiuni:

    • minut;
    • zi;
    • săptămână;
    • lună;
    • trimestru;
    • deceniu;
    • Jumătate de an.

Începutul perioadei (DataTime (2002, 10, 12, 10, 15, 34), "Luna")

rezultat:

01.10.2002 0:00:00

Sfârșitul perioadei

Funcția este proiectată pentru a evidenția o dată specifică de la o dată dată.

Opțiuni:

  • Data. Tip data. Setați data;
  • Tipul perioadei. Tastați șir. Conține una dintre valori:
    • minut;
    • zi;
    • săptămână;
    • lună;
    • trimestru;
    • deceniu;
    • Jumătate de an.

Sfârșitul perioadei (DataTime (2002, 10, 12, 10, 15, 34), "Săptămâna")

rezultat:

13.10.2002 23:59:59

DobavitKDate

Funcția este proiectată pentru a adăuga o anumită valoare datei.

Opțiuni:

  • Tipul de mărire. Tastați șir. Conține una dintre valori:
    • minut;
    • zi;
    • săptămână;
    • lună;
    • trimestru;
    • deceniu;
    • Jumătate de an.
  • Valoare - cât de mult trebuie să crești data. Număr tip. Partea fracțională este ignorată.

Adaugă la data (Data datei (2002, 10, 12, 10, 15, 34), Luna, 1)

rezultat:

12.11.2002 10:15:34

Data diferenței

Funcția este proiectată pentru a obține diferența între două date.

Opțiuni:

  • Expression. Tip data. Data originală
  • Expression. Tip data. Data deductibilă;
  • Tipul de diferență. Tastați șir. Conține una dintre valori:
    • în al doilea rând;
    • minut;
    • zi;
    • lună;
    • trimestru;

DATA DIFERINȚEI (DATA TIME (2002, 10, 12, 10, 15, 34), DATA TIME (2002, 10, 14, 9, 18, 06), "DAY")

rezultat:

subșir

Această funcție este destinată să selecteze o subcadere dintr-un șir.

Opțiuni:

  • String. Tastați șir. Șirul din care este extrasă substratul;
  • Poziția. Număr tip. Poziția personajului din care începe subcostul selectat din șir;
  • Lungime. Număr tip. Lungimea substratului selectat.

SUBSTRATE (Contrapartide. Adresa, 1, 4)

Lungimea șirurilor

Funcția este proiectată pentru a determina lungimea șirului.

parametru:

  • String. Tastați șir. Un șir a cărui lungime este determinată.

String (contrapartide. Adresa)

an

Această funcție este destinată să evidențieze anul din valoarea tipului Data.

parametru:

  • Data. Tip data. Data până la care este determinat anul.

ANUL (Data Exp. Inc)

trimestru

Această funcție este destinată să evidențieze numărul de trimestru dintr-o valoare de tip Date. Numărul trimestrului este în mod normal în intervalul de la 1 la 4.

parametru

  • Data. Tip data. Data la care este determinat trimestrul
  TRIMITOR (Data Exp. Inc)

lună

Această funcție este destinată să evidențieze numărul lunii dintr-o valoare a tipului Data. Numărul lunii este în mod normal în intervalul 1 până la 12.

  • Data. Tip data. Data până la care luna este determinată.
  LUNI (Exp. Data incl.)

Ziua anului

Această funcție este destinată să obțină ziua anului dintr-o valoare de tipul Date. Ziua anului variază în mod normal de la 1 la 365 (366).

  • Data. Tip data. Data până la care se stabilește ziua anului.
  BANI (Exp. Data incl.)

zi

Această funcție este destinată să obțină ziua lunii de la o valoare de tipul Date. Ziua lunii variază în mod normal de la 1 la 31.

  • Data. Tip data. Data până la care se stabilește ziua lunii.
  ZIUA (Data Exp. Inc)

săptămână

Această funcție este destinată să obțină numărul săptămânii anului dintr-o valoare de tipul Date. Săptămânile anului sunt numerotate începând de la 1.

  • Data. Tip data. Data la care sunt determinate numerele săptămânii.
  SAPTAMANA (Data Exp. Inc)

DenNedeli

Această funcție este destinată să obțină ziua săptămânii de la o valoare de tipul Date. Ziua săptămânii este în mod normal în intervalul 1 (luni) până la 7 (duminică).

  • Data. Tip data. Data până la care se stabilește ziua săptămânii.
  ZILE DE SAPTAMANE (Data Exp. Inc)

oră

Această funcție este destinată obținerii orei zilei de la o valoare de tip Date. Ora zilei este cuprinsă între 0 și 23.

  • Data. Tip data. Data la care se stabilește ora zilei.
  ORA (Data Exp. Inc)

minut

Această funcție este destinată să obțină minutul de o oră de la o valoare de tip Date. Orele minime sunt cuprinse între 0 și 59.

  • Data. Tip data. Data la care se stabilește minutul orei.
  MINUTE (Data Exp. Inc)

în al doilea rând

Această funcție este proiectată pentru a obține a doua de un minut de la o valoare de tip Date. Al doilea minut este cuprins între 0 și 59.

  • Data. Tip data. Data la care sunt determinate secundele unui minut.
  SECONDS (Data Exp. Inc)

A exprima

Această funcție este proiectată pentru a extrage un tip dintr-o expresie care poate conține un tip compozit. Dacă expresia conține un alt tip decât cel necesar, NULL va fi returnat.

Opțiuni:

  • Expresie convertibilă
  • Indicație de tip. Tastați șir. Conține un tip de șir. De exemplu, „Number”, „String” etc. În plus față de tipurile primitive, acest șir poate conține numele tabelului. În acest caz, se va încerca exprimarea unei legături către tabelul specificat.

Express (Data.Props1, "Număr (10.3)")

EstNull

Această funcție returnează valoarea celui de-al doilea parametru dacă valoarea primului parametru este NULL.

În caz contrar, valoarea primului parametru va fi returnată.

NULL (Suma (cifra de afaceri pentru vânzări), 0)

Funcții comune ale modulului

O expresie a motorului compoziției datelor poate conține apeluri funcționale către module de configurare generice globale. Nu este necesară sintaxa suplimentară pentru a apela astfel de funcții.

În acest exemplu, funcția „Nume prescurtat” va fi apelată din modulul de configurare generală.

Rețineți că utilizarea funcțiilor comune ale modulului este permisă numai atunci când specificați parametrul corespunzător al procesorului de compoziție a datelor.

În plus, funcțiile modulelor comune nu pot fi utilizate în expresiile câmpurilor personalizate.

În lumina viitoarei versiuni 8.2.14, voi încerca să descriu câteva dintre noile caracteristici ale sistemului de compoziție a datelor.

Deschidem diagrama compoziției datelor, de preferință într-un raport extern, astfel încât să fie mai ușor de editat.

Adăugați un set de date de interogare de tip și scrieți manual sau utilizând designerul de interogări, cea mai simplă interogare:

1. Configurați solicitarea în ACS.

2. Configuram câmpurile calculate în SKD

3. Efectuați configurarea compoziției datelor în fila setări

4. Lansați 1C Enterprise 8.2.14. Deschideți raportul. Formăm, obținem.

Descrierea noilor funcții în sine:

1. Data actuală ()

Returnează data sistemului. Atunci când compunem un aspect în toate expresiile care sunt prezente în aspect, funcția CurrentDate () este înlocuită cu valoarea datei curente.

2. CALCULĂ EXPRESIUNEA ()

sintaxa:

Calculați expresia (<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

Descriere:

Funcția este proiectată pentru a evalua expresia în contextul unor grupări.

Funcția ține cont de selecția grupărilor, dar nu ia în considerare selecțiile ierarhice.

Funcția nu poate fi aplicată la o grupare în selecția grupului a acestei grupări. De exemplu, în selecția grupării Nomenclatură, nu puteți utiliza expresia Calculare expresie („Suma (SumTurnover)”, „TotalTotal”)\u003e 1000. Dar o astfel de expresie poate fi folosită în selecția ierarhică.

Dacă înregistrarea finală precede cea inițială, atunci se consideră că nu există înregistrări pentru calcularea datelor detaliate și pentru calcularea funcțiilor agregate.

Atunci când se calculează expresiile de intervale pentru total (parametrul Gruparea are valoarea TotalTotal), se consideră că nu există înregistrări pentru calcularea datelor detaliate și pentru calcularea funcțiilor agregate.

Când se generează expresia funcției Calculați expresia, dacă expresia de comandă conține câmpuri care nu pot fi utilizate în grupare, constructorul de layout înlocuiește funcția Calculați expresia cu NULL.

parametrii

<Выражение>

Tip: șir. Expresia de evaluat.

<Группировка>

Tip: șir. Conține numele grupării în contextul în care expresia trebuie evaluată. Dacă se folosește un șir gol ca nume de grupare, calculul va fi efectuat în contextul grupării curente. Dacă linia GeneralTotal este utilizată ca nume de grupare, calculul va fi efectuat în contextul rezultatului total. În alte cazuri, calculul va fi efectuat în contextul grupului părinte cu același nume.

De exemplu:

Suma (Vânzări. Suma; Cifra de afaceri) / Calculează („Suma (Vânzări. Suma; Cifra de afaceri)”; „TotalTotal”)

În acest exemplu, rezultatul va fi raportul dintre suma din câmpul Vânzări. SumaTurnarea înregistrării de grupare la suma aceluiași câmp în întregul aspect;

<ОбластьВычисления>

Tip: șir. Parametrul poate lua următoarele valori:

  • GeneralTotal - expresia va fi calculată pentru toate înregistrările de grupare.
  • Ierarhie - expresia va fi calculată pentru înregistrarea ierarhică părinte, dacă există, și pentru întreaga grupare, dacă înregistrarea ierarhică părinte nu este disponibilă.
  • Grupare - expresia va fi calculată pentru înregistrarea curentă de grupare.
  • Nu grupare resurse - atunci când se calculează o funcție pentru o înregistrare de grup după resurse, expresia va fi calculată pentru prima înregistrare de grup a grupării originale.

La calcularea unei funcții Expresie calculată ()   cu valoarea Gruparea Not Resource pentru înregistrările de grup care nu sunt grupări de resurse, funcția este calculată în același mod în care ar fi calculată dacă valoarea parametrului ar fi egală cu valoarea de grupare.

Atunci când se generează aspectul compoziției de date atunci când aspectul compoziției de date este afișat în aspect, câmpul de resurse utilizat pentru grupare este introdus în aspect de expresia calculată folosind funcția Expresie calculată (), specificând parametrul Gruparea fără resurse. Pentru alte resurse din gruparea resurselor, sunt plasate expresii regulate ale resurselor.

<Начало>

Tip: șir. Indică cu ce înregistrare să pornească fragmentul în care să se calculeze funcțiile agregate ale expresiei și din ce înregistrare pentru a obține valorile câmpului în afara funcțiilor agregate. Valoarea poate fi una dintre următoarele:

<Конец>

Tip: șir. Indică ce înregistrare să continue fragmentul în care să calculeze funcțiile agregate ale expresiei. Valoarea poate fi una dintre următoarele:

  • Prima (Prima). Trebuie să obțineți prima intrare în grupare. După cuvântul dintre paranteze, puteți specifica expresia, al cărei rezultat va fi folosit ca compensare de la începutul grupării. Valoarea rezultată trebuie să fie un număr mai mare decât zero. De exemplu, First (3) - obținerea celei de-a treia înregistrări de la începutul grupării.

Dacă prima înregistrare depășește gruparea, atunci se consideră că nu există înregistrări. De exemplu, dacă există 3 înregistrări, dar doriți să obțineți Prima (4), atunci se consideră că nu există înregistrări.

  • Ultima (Ultima). Trebuie să obțineți cea mai recentă înregistrare în grup. După cuvântul dintre paranteze, puteți specifica expresia, al cărei rezultat va fi folosit ca compensare de la sfârșitul grupării. Valoarea rezultată trebuie să fie un număr mai mare decât zero. De exemplu, Last (3) - obținerea celei de-a treia înregistrări de la sfârșitul grupării.

Dacă ultima înregistrare depășește gruparea, atunci se consideră că nu există înregistrări. De exemplu, dacă există 3 înregistrări și doriți să obțineți Ultima (4), atunci se consideră că nu există înregistrări.

  • Înapoi (Înapoi). Trebuie să obțineți înregistrarea anterioară de grupare. După cuvântul dintre paranteze, puteți specifica expresia, al cărei rezultat va fi folosit ca o compensare înapoi din înregistrarea de grupare curentă. De exemplu, anterior (2) - obținerea precedentului din înregistrarea anterioară.

Dacă înregistrarea anterioară depășește gruparea (de exemplu, pentru a doua înregistrare de grupare trebuie să obțineți precedent (3), atunci se obține prima înregistrare de grupare.

La primirea înregistrării anterioare pentru totalul pentru grupare, se consideră că prima înregistrare este obținută.

  • Urmatorul (Next). Trebuie să obțineți următoarea intrare în grup. După cuvântul dintre paranteze, puteți specifica o expresie, al cărei rezultat va fi utilizat ca o compensare înainte din înregistrarea de grupare curentă. De exemplu, Next (2) - obținerea următoarei înregistrări.

Dacă următoarea înregistrare se află în afara grupării, atunci se consideră că nu există înregistrări. De exemplu, dacă înregistrările 3 și pentru a treia înregistrare primesc Next (), atunci se consideră că nu există înregistrări.

La primirea următoarei înregistrări pentru totalul pentru grupare, se consideră că nu există nicio înregistrare.

  • Curent (Current). Trebuie să obțineți înregistrarea curentă.

La primirea totalului pentru grupare, se obține prima înregistrare.

  • Valoarea delimitată (BoundaryValue). Necesitatea obținerii unei înregistrări la valoarea specificată. După cuvântul BoundingValue, între paranteze trebuie să specificați expresia de la a cărei valoare doriți să porniți fragmentul primului câmp de comandă.

Ca înregistrare, se va obține prima înregistrare, valoarea câmpului de comandă pentru care este mai mare sau egală cu valoarea specificată. De exemplu, dacă câmpul Perioadă este folosit ca câmp de comandă și acesta are valorile 01.01.2010, 01.02.2010, 01.03.2010 și doriți să obțineți o valoare de limitare (DateTime (2010, 1, 15)), atunci va fi primit o intrare cu data 01.02. 2010.

<Сортировка>

Tip: șir. Listează expresiile separate prin virgulă care descriu regulile de comandă. Dacă nu este specificat, comanda se efectuează, precum și gruparea pentru care este calculată expresia. După fiecare expresie, puteți specifica cuvintele cheie Vârsta (pentru a ordona în ordine crescătoare), Descendent (pentru a ordona în ordine descrescătoare) și Auto-ordine (pentru a comanda câmpuri de referință pe câmpuri prin care doriți să comandați obiectul la care faceți referire). Cuvântul Autoorder poate fi utilizat atât cu cuvântul Age, cât și cu cuvântul Descending.

<ИерархическаяСортировка>

Tip: șir. La fel ca Sort. Este folosit pentru organizarea înregistrărilor ierarhice. Dacă nu este specificat, compozitorul de layout generează comanda în conformitate cu comanda specificată în opțiunea Sortare.

<ОбработкаОдинаковыхЗначенийПорядка>

Tip: șir. Specifică regula pentru determinarea înregistrării anterioare sau următoare dacă există mai multe înregistrări cu aceeași valoare de comandă:

  • Separat, înseamnă că o secvență de înregistrări ordonate este utilizată pentru a determina înregistrările anterioare și următoare. Valoarea implicită.
  • Împreună înseamnă că intrările anterioare și următoarele sunt determinate pe baza valorilor expresiilor de comandă.

De exemplu, dacă secvența rezultată este ordonată după data:

data Numele complet valoare
1 01 ianuarie 2001 Ivanov M. 10
2 02 ianuarie 2001 Petrov S. 20
3 03 ianuarie 2001 Sidorov R. 30
4 4 ianuarie 2001 Petrov S. 40

Dacă valoarea parametrului este separată, atunci:

§ Înregistrarea anterioară pentru înregistrarea 3 va fi înregistrarea 2.

§ dacă fragmentul calculat este definit ca Current, Current (respectiv parametrii Start și End), atunci pentru înregistrarea 2, acest fragment va consta dintr-o înregistrare 2. Expression Calcul Expression („Amount (Value)”, Current, Current) va fi de 20.

Dacă valoarea parametrului este Împreună, atunci:

§ înregistrarea anterioară pentru înregistrarea 3 va fi înregistrarea 1.

§ dacă fragmentul calculat este definit ca Current, Current (respectiv parametrii Start și End), atunci pentru înregistrarea 2 acest fragment va consta din înregistrări 2 și 3. Expression Calcul Expression („Amount (Value)”, Current, Current) va fi de 50.

Când specificați valoarea parametrului ca Împreună, în parametrii Start și End nu puteți specifica compensarea pentru pozițiile First, Last, Previous, Next.

Calculați expresia („Suma (AmountTurnover)”, „First”, „Current”)

Dacă doriți să obțineți valoarea de grupare în linia anterioară, atunci puteți utiliza următoarea expresie:

Calculați expresia („Curs”, „Anterior”)

listă nou   funcţii:

Calculare grupă expresie grupată(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Funcția returnează un tablou, fiecare element conținând rezultatul evaluării expresiei pentru grupare după câmpul specificat.

Calculați expresia cu gruparea(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Funcția returnează o tabelă de valori, fiecare rând conținând rezultatul evaluării expresiilor pentru grupare după câmpul specificat

Valoare completată(<Выражение>) - Returnează True dacă valoarea este diferită de valoarea implicită a acestui tip, diferită de NULL, diferită de o referință goală, diferită de Nedefinit. Pentru valorile booleane, se verifică o valoare NULL. Pentru șiruri, se verifică absența caracterelor care nu sunt în alb

format(<Выражение>, <Форматная строка>) - Obțineți șirul formatat al valorii trecute. Șirul de format este setat în conformitate cu șirul de format al sistemului 1C: Enterprise.

subșir(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) - Această funcție este destinată să selecteze o subcadere dintr-un șir.

Lungimea șirurilor(<Выражение>) - Funcția este proiectată pentru a determina lungimea șirului. Parametru - Expresie tip șir

rând(<Выражение>) - Dacă un tablou este trecut ca parametru, funcția returnează un șir care conține reprezentări ale tuturor elementelor din tablă, separate prin caractere „; “. Dacă o tabelă de valori este trecută ca parametru, funcția returnează un șir care conține reprezentări ale tuturor rândurilor tabelului de valori, iar reprezentările celulelor fiecărui rând sunt separate prin „; „, Și liniile cu caracterul de alimentare a liniei. Dacă o reprezentare a șirului este goală pentru orice element, atunci în locul reprezentării sale este afișat un șir<Пустое значение>.

Conectați-vă ca student

Conectați-vă ca student pentru a accesa materialele școlare

Sistemul de compoziție a datelor 1C 8.3 pentru începători: avem în vedere rezultatele (resursele)

Scopul acestei lecții va fi:

  • Scrieți un raport care afișează o listă de produse (referință alimentară), conținutul caloric și gustul acestora.
  • Realizați o grupare de produse după culoarea lor.
  •   Faceți cunoștință cu capacitatea de a rezuma (resursele) și câmpurile calculate.

Creați un raport nou

Ca și în lecțiile anterioare, deschideți baza " Magazin alimentar"în configurator și creați un raport nou prin meniu" fișier"->"Nou ...":

Tipul documentului - raport extern:

În formularul de configurare a raportului, scrieți numele " Lecția 3"și apăsați butonul" Deschideți diagrama compoziției datelor":

Lăsați numele schemei implicite și faceți clic pe „ Efectuat":

Adăugați solicitarea prin constructor

În fila " Setul de date„presa verdeplus semn și selectați " Adăugați set de date - interogare":

În loc să scrieți textul de interogare manual, rulați din nou constructor de interogare:

Fila " tabele"trage masa" alimente"de la prima coloană la a doua:

Alegeți din tabel " alimente"câmpuri pe care le vom solicita. Pentru a face acest lucru, trageți câmpurile" nume", "gust", "culoare„Și“ Conținut de calorii"de la a doua coloană la a treia:

S-a dovedit astfel:

Apăsați butonul " în regulă"- textul solicitării a fost generat automat:

Formăm setări de prezentare a raportului

Accesați marcajul " setări"și faceți clic pe   bagheta magicăa suna constructor de setări:

Selectați tipul de raport " listă... "și apăsați butonul" mai departe":

Trageți din coloana din stânga spre câmpul din dreapta, care va fi afișat în listă și faceți clic pe „ mai departe":

Glisați de la coloana din stânga la câmpul din dreapta " culoare„- se va întâmpla grup   linii din raport. Împingeți " în regulă":

Și iată rezultatul muncii proiectantului. Ierarhia raportului nostru:

  •   raportează în ansamblu
  •   gruparea „Culoare”
  •   înregistrări detaliate - linii cu denumiri alimentare

Salvați raportul (buton dischetă) și fără să se închidă   Configuratorul îl deschide imediat în modul utilizator. S-a dovedit astfel:

Reorganizați coloanele

Dar hai schimba comanda   coloane (săgeți în sus și în jos), astfel încât să fie ca în imaginea de mai jos:

Salvați raportul și redeschideți în modul utilizator:

Grozav, este mult mai bine.

Rezumăm (total) caloriile

Ar fi bine să afișăm conținutul total de calorii al produselor pe grupe. Pentru a vedea conținutul caloric total al tuturor produselor, să zicem, alb sau galben. Sau aflați conținutul total de calorii al tuturor produselor din baza de date.

Există un mecanism de calcul al resurselor pentru acest lucru.

Accesați fila " resurse„și trageți câmpul” Conținut de calorii"(o vom rezuma) de la coloana din stânga la dreapta.

În acest caz, în expresia câmpului, selectați din lista derulantă " Suma (Calorii)", deoarece totalul va fi suma tuturor articolelor incluse în total:

Salvați și generați un raport:

Avem rezultatele pentru fiecare dintre grupuri și pentru raportul în ansamblu.

Sumați-vă (în medie) după conținutul de calorii

Acum să facem să apară într-o altă coloană mediu   conținutul caloric al produselor pe grupe și raportul în ansamblu.

Nu puteți atinge coloana „Calorii” deja existentă - suma totală este deja afișată în ea hai să luăm un alt domeniu, care va fi o copie exactă a câmpului „Calorii”.

Pentru a obține un astfel de câmp „virtual”, folosim mecanismul câmpuri calculate.

Accesați marcajul " Câmpuri calculate"și faceți clic pe verdeplus semn:

În coloana „ Calea datelor"scrie numele câmpului nou ( împreună, fara spatii). Să fie numit " Calorii medii"și în coloana" expresie"scrieți numele câmpului existent, pe baza căruia va fi calculat noul câmp. Scriem acolo" Conținut de calorii". Coloana" antet"se va completa automat.

Am adăugat un câmp nou (" Calorii medii"), dar nu va apărea în raport singur - trebuie să o sunați din nou constructor de setări   („bagheta magică”) sau adăugați acest câmp manual.

Va face în al doilea rând   mod. Pentru a face acest lucru, accesați marcajul " setări„Selectați“ raport"(pentru că dorim să adăugăm câmpul în ansamblu în raport), selectăm fila de mai jos" Câmpuri selectate„și trageți câmpul” Calorii medii"de la coloana din stânga la dreapta:

S-a dovedit astfel:

Salvați și generați un raport:

Câmpul a apărut și vedem că valorile acestuia sunt valorile câmpului „Calorii”. ! Excelent

Pentru a face acest lucru, folosim din nou mecanismul pe care îl știm deja a resurselor   (rezumând). Accesați marcajul " resurse„și trageți câmpul” Calorii medii"de la coloana din stânga la dreapta:

În coloana „ expresie„Alege“ Mediu (Calorii medii)":

Salvați și generați un raport:

Vedem că pentru grupuri, adică pentru fiecare culoare și pentru raportul în ansamblu, valoarea medie a fost absolut corect calculată. Dar sunt prezente înregistrări suplimentare   pentru produse individuale (nu pentru grupuri) pe care aș dori să le elimin din raport.

Știți de ce au apărut (valorile nu pe grupe)? Pentru că atunci când am adăugat câmpul " Calorii medii"în setările raportului, în al doilea pas pe care l-am evidențiat întregul raport în ansamblu   iar acest nou câmp a căzut în elementul " detaliat înregistrare".

Să remediem eroarea. Pentru a face acest lucru, reveniți la marcaj " setări", selectați" Înregistrări detaliate"mai întâi de sus (pasul 2), apoi" Înregistrări detaliate"jos (pasul 3), accesați marcajul" selectat domenii"și vedeți în coloana din dreapta elementul" Auto".

Element " Auto"- acesta nu este un câmp. Acestea sunt câteva câmpuri care ajung aici automat pe baza setărilor superioare.

Pentru a vedea care sunt aceste câmpuri, faceți clic pe „ Auto" dreapta   buton și selectați " deschis":

Element " Auto"deschis în următoarele câmpuri:

Și iată domeniul nostru " Calorii medii"care a ajuns aici din punct de vedere" raport„când l-am târât acolo. Doar scoate   caseta de selectare de lângă acest câmp pentru a elimina producția sa.

Schema de compoziție a datelor (1С SKD)   - un proiectant convenabil pentru crearea de rapoarte complexe în 1C: produse software Enterprise care contribuie la dezvoltarea și monitorizarea automatizării producției, permițându-le să fie cât mai flexibile și frumoase posibil în cel puțin timp. Un plus suplimentar al schemei de compunere a datelor (1С SKD) este generarea automată a unui formular de raport gestionat și, odată cu dezvoltarea acestei direcții, este un factor important atunci când alegeți o metodă de elaborare a raportului. Dar, datorită complexității structurii Schemei de compunere a datelor (ACC 1C) și a numărului imens de setări, aceasta duce adesea la o dezvoltare mai lungă a raportului decât prin „constructorul formularului de ieșire”. Prin urmare, programatorul 1C trebuie să înțeleagă toate complexitatea funcționării Schemei de compunere a datelor (ACC 1C) pentru a accelera și mai mult dezvoltarea raportării.

Haideți să analizăm primele trei file ale schemei de compoziție a datelor (ACC 1C) - un set de date, relații de set de date și câmpuri calculate.

Set de date în SKD 1C

Setul de date include capacitatea de a crea trei obiecte - o interogare, un obiect și o uniune; să ne adăugăm pe fiecare dintre ele mai detaliat:

Este o solicitare obișnuită, care este formată din butonul Query Designer. Dacă steagul Completare automată este setat, toate detaliile selectate se vor încadra automat în câmpurile setului de date. De asemenea, este posibil să personalizați completarea câmpurilor din cererea din fila Compoziție date, unde există trei file:

Tabele, aici selectați tabelele care vor participa la formarea raportului, de obicei sunt selectate datele implicite, deoarece în fila Tabele și câmpuri am selectat deja documentele, directoarele, registrele de care avem nevoie ...

Câmpuri, aici selectăm acele obiecte care ar trebui să fie incluse în raport, steagul copil indică dacă vor exista elemente copil disponibile pentru obiect sau nu, este logic că pentru date șir, numerice și similare nu va fi posibil să setați steagul pe True.

Condiții, aici selectăm acele obiecte care pot fi utilizate în condiții în SKD.

O parte din lucrare este realizată în schema compoziției datelor, o parte este programatică, o vom considera cu un exemplu simplu:

În primul rând, vom crea o machetă pentru aspectul compoziției de date a documentului și denumirea acestuia SKD (de exemplu: 1C SKD), vom crea un set de date obiect în el, apoi vom completa câmpurile, de exemplu, avem partea din tabel a documentului cu mărfuri cu detalii - nomenclator, cantitate și preț.

Adăugați trei câmpuri și completați fiecare coloană cu numele detaliilor, coloanele rămase vor fi completate automat:

Creați un buton pe formularul de document, descrieți mecanismul de lucru în formulare gestionate:

& Pe client

Procedură de tipărire ()

Raportul nostru \u003d Print on Server (); // apelați funcția pe server

Raportul nostru.Show (); // afiseaza raportul generat

KonetsProtsedury

& Pe server

Imprimare pe funcția serverului ()

Document Object \u003d Valoarea RequisiteB Form („Obiect”);

//plasăm partea tabulară a Bunurilor în structură cu denumirea GoodsSKD în același mod în care am indicat în SKD în sine numele obiectului care conține datele

Set de date \u003d Structura nouă;

Set de date. Inserare („BunuriSKD”, document obiect. Produse);

//obținem aspectul nostru și setăm setările implicite, astfel încât toate setările de ieșire ale raportului să fie luate din aspectul nostru

Aspectul nostru \u003d Obiectul documentului. Primește macheta („SKD”);

Setări \u003d Aspectul nostru. Setări implicite;

//creați un aspect al compoziției de date cu setările noastre

Layout Linker \u003d New Layout Layer Linker;

Layout Layout \u003d Layout Linker. Executați (Aspectul nostru, Setări);

//compunem datele cu setul nostru de date

Procesor de compoziție de date \u003d Procesor nou de compoziție de date;

Procesor de dispunere a datelor.Inițializare (Layout Layout, Dataset);

//formăm un document tabular și afișăm raportul în el

Raport document \u003d Document tabular nou;

Procesor de ieșire \u003d Noul procesor de ieșire a aspectului rezultatului din documentul tabelului;

Procesor de ieșire.Instalați documentul (Documentul raport);

Procesor de ieșire: ieșire (procesor de dispunere a datelor);

Raport document retur;

Funcții finale

Dacă doriți, puteți obține zone și orice alt aspect și, de asemenea, afișat în acest raport, de exemplu, avem un aspect tipic pentru formarea unei plăți și un antet este creat foarte bine în el, astfel încât să nu facem nicio lucrare suplimentară, doar să obținem aspectul mai întâi, să afișăm antetul, atunci vom forma și afișa raportul nostru despre ACS.

oh bedinenie

Putem să ne introducem interogările și obiectele, dar spre deosebire de conexiune, pur și simplu se adaugă tabelele una cu cealaltă, adică dacă conectăm două tabele identice, vom obține una ca rezultat, iar atunci când sunt combinate, se va dubla, vom privi un exemplu simplu :

Avem tabele:

La comunicare, vom primi:

Și când combinați:

Acum luați în considerare completarea coloanelor din seturile de date (vom omite unele pentru că sunt legate de alte file, le vom reveni la articolele viitoare):

- câmpul, indicați numele general al atributului;

­­- calea, indicați numele atributului, prin care îl vom contacta în SKD, de exemplu, în Câmpuri calculate;

- antet, indicați numele atributului, care va fi afișat în raport;

- restricție de câmp, indicați disponibilitatea acestui atribut;

- restricția detaliilor, indicăm disponibilitatea elementelor copilului, este important dacă este indicată disponibilitatea detaliilor, atunci câmpul în sine va fi disponibil, probabil această mecanică va fi schimbată în versiunile viitoare;

- expresie prin care se calculează reprezentarea câmpului, este convenabil să o utilizăm atunci când trebuie să schimbăm puțin rezultatele de detalii, de exemplu, avem nevoie astfel încât după nume nomenclatură   a fost compilat depozitpe care este amplasat, apoi completați următoarele: Nomenclatorul + „este în stoc” + Depozitul. Repet că referatele sunt contactate prin numele indicat în coloană modul;

- ordonarea expresiilorUn mecanism convenabil pentru configurarea ordonării rapoartelor, unde condiția poate fi setată manual, similar cu paragraful precedent, dar așa cum arată practica, de multe ori acest mecanism nu funcționează așa cum ne-am dori, și recomand să folosesc sortarea standard;

- tipul valorii, indicați tipul valorii atributului, trebuie să completați dacă veți utiliza câmpul următor;

- valori disponibile, funcționează numai când este plin tipul valorii, deschideți formularul de completare și în coloană valoare   indicați elementul care trebuie schimbat, în funcție de tip, acesta poate fi obiect predefinit sau numeric, de exemplu, detaliile au valori simple, în supunere   indicați ce trebuie să schimbăm, un exemplu de tip boolean:

- înregistrare   - setarea standard a formatului câmpului, similar cu setarea în formulare gestionate, vă permite să configurați mai precis și frumos ieșirea unui atribut specific.

Comunicarea unui set de date în SKD 1C

Instalat doar aici conexiune stangaconform unui principiu similar cu legături   în cereri în sursa de comunicare   specificați tabelul principal pentru conexiune, în receptor   suplimentare. sursa de expresieși receptor de expresie   indicați detaliile pentru care va avea loc comunicarea. Coloanele rămase vor fi luate în considerare mai detaliat atunci când dezasamblăm fila parametrii. Dacă nu există nicio conexiune suplimentară cu parametrii, atunci se recomandă efectuarea conexiunii în cerere, acest lucru va grăbi raportul.

În lumina viitoarei versiuni 8.2.14, voi încerca să descriu câteva dintre noile caracteristici ale sistemului de compoziție a datelor.

Deschidem diagrama compoziției datelor, de preferință într-un raport extern, astfel încât să fie mai ușor de editat.

Adăugați un set de date de interogare de tip și scrieți manual sau utilizând designerul de interogări, cea mai simplă interogare:

1. Configurați solicitarea în ACS.

2. Configuram câmpurile calculate în SKD

3. Efectuați configurarea compoziției datelor în fila setări

4. Lansați 1C Enterprise 8.2.14. Deschideți raportul. Formăm, obținem.

Descrierea noilor funcții în sine:

1. Data actuală ()

Returnează data sistemului. Atunci când compunem un aspect în toate expresiile care sunt prezente în aspect, funcția CurrentDate () este înlocuită de valoarea datei curente.

2. CALCULĂ EXPRESIUNEA ()

sintaxa:

Calculați expresia (,)

Descriere:

Funcția este proiectată pentru a evalua expresia în contextul unor grupări.

Funcția ține cont de selecția grupărilor, dar nu ia în considerare selecțiile ierarhice.

Funcția nu poate fi aplicată la o grupare în selecția grupului a acestei grupări. De exemplu, în selectarea grupării Nomenclator, nu puteți utiliza expresia Calculați expresia („Suma (AmountTurnover)”, „TotalTotal”)\u003e 1000. Dar o astfel de expresie poate fi folosită în selecția ierarhică.

Dacă înregistrarea finală precede cea inițială, atunci se consideră că nu există înregistrări pentru calcularea datelor detaliate și pentru calcularea funcțiilor agregate.

Când se calculează expresiile de intervale pentru total (parametrul Gruparea are valoarea TotalTotal), se consideră că nu există înregistrări pentru calcularea datelor detaliate și pentru calcularea funcțiilor agregate.

Generator de machete la generarea unei expresii de funcții Calculați expresia, dacă expresia de comandă conține câmpuri care nu pot fi utilizate în grupare, înlocuiește funcția Calculați expresia   pe NULL.

parametrii

tip: rând. Expresia de evaluat.

tip: rând. Conține numele grupării în contextul în care expresia trebuie evaluată. Dacă se folosește un șir gol ca nume de grupare, calculul va fi efectuat în contextul grupării curente. Dacă linia GeneralTotal este utilizată ca nume de grupare, calculul va fi efectuat în contextul rezultatului total. În alte cazuri, calculul va fi efectuat în contextul grupului părinte cu același nume.

De exemplu:

Suma (Vânzări. Suma; Cifra de afaceri) / Calcul ("Suma (Vânzări. Suma; Cifra de afaceri)"; "TotalTotal")

În acest exemplu, rezultatul este raportul sumei peste câmp Prodazhi.SummaOborot   gruparea înregistrărilor la suma aceluiași câmp în întregul aspect;

tip: rând. Parametrul poate lua următoarele valori:

· Rezultat general   - expresia va fi calculată pentru toate intrările de grupare.

· ierarhie   - expresia va fi calculată pentru înregistrarea ierarhică părinte, dacă există, și pentru întreaga grupare, dacă înregistrarea ierarhică părinte nu este disponibilă.

· grup   - expresia va fi calculată pentru înregistrarea curentă a grupului.

· Gruparea nu a resurselor   - la calcularea unei funcții pentru o înregistrare de grup pe resurse, expresia va fi calculată pentru prima înregistrare de grup a grupării originale.

La calcularea unei funcții Expresie calculată ()   cu valoare Gruparea nu a resurselor   pentru înregistrările de grup care nu sunt grupări de resurse, funcția este calculată în același mod în care ar fi calculată dacă valoarea parametrului ar fi egală cu valoarea grup.

Atunci când se generează aspectul compoziției de date atunci când aspectul compoziției de date este afișat în aspect, câmpul de resurse utilizat pentru grupare este introdus în aspect de expresia calculată folosind funcția Expresie calculată () , indicând parametrul Gruparea nu a resurselor. Pentru alte resurse din gruparea resurselor, sunt plasate expresii regulate ale resurselor.

tip: rând. Indică cu ce înregistrare să pornească fragmentul în care să se calculeze funcțiile agregate ale expresiei și din ce înregistrare pentru a obține valorile câmpului în afara funcțiilor agregate. Valoarea poate fi una dintre următoarele:

· Prima (Prima)

· Ultima (Ultima)

· Înapoi (Înapoi)

· Următorul (Next)

· Current (Curent)

· Valoarea limită   (BoundaryValue) Valoarea limită

tip: rând. Indică ce înregistrare să continue fragmentul în care să calculeze funcțiile agregate ale expresiei. Valoarea poate fi una dintre următoarele:

· Prima (Prima). Trebuie să obțineți prima intrare în grupare. După cuvântul dintre paranteze, puteți specifica expresia, al cărei rezultat va fi folosit ca compensare de la începutul grupării. Valoarea rezultată trebuie să fie un număr mai mare decât zero. De exemplu, First (3) - obținerea celei de-a treia înregistrări de la începutul grupării.

Dacă prima înregistrare depășește gruparea, atunci se consideră că nu există înregistrări. De exemplu, dacă există 3 înregistrări, dar trebuie să obțineți Prima (4), atunci se consideră că nu există înregistrări.

· Ultima (Ultima). Trebuie să obțineți cea mai recentă înregistrare în grup. După cuvântul dintre paranteze, puteți specifica expresia, al cărei rezultat va fi folosit ca compensare de la sfârșitul grupării. Valoarea rezultată trebuie să fie un număr mai mare decât zero. De exemplu, Last (3) - obținerea celei de-a treia înregistrări de la sfârșitul grupării.

Dacă ultima înregistrare depășește gruparea, atunci se consideră că nu există înregistrări. De exemplu, dacă există 3 înregistrări, dar doriți să obțineți Ultima (4), atunci se consideră că nu există înregistrări.

· Înapoi (Înapoi). Trebuie să obțineți înregistrarea anterioară de grupare. După cuvântul dintre paranteze, puteți specifica expresia, al cărei rezultat va fi folosit ca o compensare înapoi din înregistrarea de grupare curentă. De exemplu, anterior (2) - obținerea precedentului din înregistrarea anterioară.

Dacă înregistrarea anterioară depășește gruparea (de exemplu, pentru a doua înregistrare de grupare trebuie să obțineți precedent (3), atunci se obține prima înregistrare de grupare.

La primirea înregistrării anterioare pentru totalul pentru grupare, se consideră că prima înregistrare este obținută.

· Următorul (Next). Trebuie să obțineți următoarea intrare în grup. După cuvântul dintre paranteze, puteți specifica o expresie, al cărei rezultat va fi utilizat ca o compensare înainte din înregistrarea de grupare curentă. De exemplu, Next (2) - obținerea următoarei înregistrări.

Dacă următoarea înregistrare se află în afara grupării, atunci se consideră că nu există înregistrări. De exemplu, dacă înregistrările 3 și pentru a treia înregistrare primesc Next (), atunci se consideră că nu există înregistrări.

La primirea următoarei înregistrări pentru totalul pentru grupare, se consideră că nu există nicio înregistrare.

· Current (Curent). Trebuie să obțineți înregistrarea curentă.

La primirea totalului pentru grupare, se obține prima înregistrare.

· Valoarea limită   (BoundaryValue). Necesitatea obținerii unei înregistrări la valoarea specificată. După cuvânt Valoarea limită între paranteze trebuie să specificați expresia de la a cărei valoare doriți să porniți fragmentul primului câmp de comandă.

Ca înregistrare, se va obține prima înregistrare, valoarea câmpului de comandă pentru care este mai mare sau egală cu valoarea specificată. De exemplu, dacă câmpul Perioadă este utilizat ca câmp de comandă și acesta are valori 01/01/2010, 02/01/2010, 01/01/2010 și doriți să obțineți Valoarea de limitare (DataTime (2010, 1, 15)), atunci se va primi o intrare cu data 01.02.2010.

tip: rând. Listează expresiile separate prin virgulă care descriu regulile de comandă. Dacă nu este specificat, comanda se efectuează, precum și gruparea pentru care este calculată expresia. După fiecare expresie, puteți specifica un cuvânt cheie asc   (pentru a sorta în ordine crescătoare), descendent   (pentru a sorta în ordine descrescătoare) și Sortare automată   (pentru a organiza câmpurile de referință după câmpurile prin care doriți să comandați obiectul către care este făcută legătura). Cuvântul Sortare automată   poate fi folosit ca în cazul cuvântului ascla fel și cu cuvântul descendent.

tip: rând. Similar cu sortare. Este folosit pentru organizarea înregistrărilor ierarhice. Dacă nu este specificat, linkerul de layout generează comanda în conformitate cu comanda specificată în parametru sortare.

tip: rând. Specifică regula pentru determinarea înregistrării anterioare sau următoare dacă există mai multe înregistrări cu aceeași valoare de comandă:

· Separat (separat)   indică faptul că o secvență de înregistrări ordonate este utilizată pentru a determina înregistrările anterioare și următoare. Valoarea implicită.

· Împreună (Împreună)   indică faptul că intrările anterioare și următoare sunt determinate pe baza valorilor expresiilor de comandă.

De exemplu, dacă secvența rezultată este ordonată după data:

data Numele complet valoare
1 01 ianuarie 2001

Ivanov M.

10
2 02 ianuarie 2001 Petrov S. 20
3 03 ianuarie 2001 Sidorov R. 30
4 4 ianuarie 2001 Petrov S. 40

separatapoi:

§ Înregistrarea anterioară pentru înregistrarea 3 va fi înregistrarea 2.

Curent, curent   (în consecință, parametrii început   și Sfârșitul), apoi pentru înregistrarea 2 acest fragment va consta dintr-o înregistrare 2. Expresia va fi egală cu 20.

Dacă valoarea parametrului este egală împreunăapoi:

§ înregistrarea anterioară pentru înregistrarea 3 va fi înregistrarea 1.

§ dacă fragmentul calculat este definit ca fiind Curent, curent   (în consecință, parametrii început   și Sfârșitul), apoi pentru înregistrarea 2 acest fragment va consta din înregistrările 2 și 3. Expresia Calculați expresia („Suma (valoare)”, curent, curent)   va fi egal cu 50.

Când se specifică o valoare egală cu împreunăîn parametri început   și Sfârșitul   nu puteți specifica o compensare pentru elementele rând Mai întâi, ultimul, anterior, următorul.

Calculați expresia („Suma (AmountTurnover)”, „First”, „Current”)

Dacă doriți să obțineți valoarea de grupare în linia anterioară, atunci puteți utiliza următoarea expresie:

Calculați expresia („Curs”, „Anterior”)

listă nou   funcţii:

Calculare grupă expresie grupată(,) -

Funcția returnează un tablou, fiecare element conținând rezultatul evaluării expresiei pentru grupare după câmpul specificat.

Calculați expresia cu gruparea(,) -

Funcția returnează o tabelă de valori, fiecare rând conținând rezultatul evaluării expresiilor pentru grupare după câmpul specificat

Valoare completată() - Returnează True dacă valoarea este diferită de valoarea implicită a acestui tip, diferită de NULL, diferită de o referință goală, diferită de Nedefinit. Pentru valorile booleane, se verifică o valoare NULL. Pentru șiruri, verificați caracterele care nu sunt în spațiul alb

format(,) - Obțineți șirul formatat al valorii trecute. Șirul de format este setat în conformitate cu șirul de format al sistemului 1C: Enterprise.

subșir(,,) - Această funcție este destinată să selecteze o subcadere dintr-un șir.

Lungimea șirurilor() - Funcția este proiectată pentru a determina lungimea șirului. Parametru - Expresie tip șir

rând() - Dacă un tablou este trecut ca parametru, funcția returnează o șir care conține reprezentări ale tuturor elementelor din tablă, separate prin caractere ";". Dacă o tabelă de valori este trecută ca parametru, funcția returnează un șir care conține reprezentări ale tuturor rândurilor tabelului de valori, în plus, reprezentările celulelor fiecărui rând sunt separate prin ";", iar liniile sunt reprezentate de caracterul de alimentare al liniei. Dacă o reprezentare a șirului este goală pentru orice element, atunci în locul reprezentării sale este afișat un șir.

Distribuie asta