Cum să obțineți tipul (tipul) unui document într-o solicitare? Verificarea tipului valorii într-o cerere 1s 8.3

Cerere . Text = "ALEGE | StorageUnits.Link |DIN | Directory.usStorageUnits CUM se folosescStorageUnits // Exemplul 1: comparație cu o valoare booleană goală: |UNDE | StorageUnits.AllowSelectionFromReserveZone = Fals // Exemplul 2. dar dacă acest boolean este definit, atunci este mai bine așa: // condiție pentru un boolean negativ: |UNDE | NU unități de depozitare. Permiteți selecția din zona de rezervă // Exemplul 3. selecție bazată pe condiția unui câmp gol care are tipul „director de un anumit tip” |UNDE | StorageUnits.ActiveSelectionArea = VALUE(Directory.usSelectionArea.EmptyRef) // Exemplul 3a. selecție bazată pe condiția unui câmp gol având tipul „document de un anumit tip” |UNDE | OurInformationRegister.Document = VALUE(Document.OurDocument.EmptyLink) // Exemplul 3b. selecție bazată pe condiția unui câmp gol având tipul „documente de diferite tipuri” ( câmp compozit) |UNDE | (OurInformationRegister.Document = VALUE(Document.OurDocument1.EmptyLink) | SAU OurInformationRegister.Document = VALUE(Document.OurDocument2.EmptyLink) | SAU... (etc. - listăm secvenţial condiţiile pentru toate tipurile posibile ale acestui câmp compus) ) // Exemplul 4. sau invers, dacă trebuie să selectați o valoare completată de tipul „șir”, atunci condiția va ajuta: |UNDE | Unitate de stocare.Nume > """" // Exemplul 5. dacă trebuie să selectați documente de un anumit tip, cu un tip de date compus, de exemplu, în registrul „RunningTasks”, resursa „Task” are un tip compozit, printre valorile cărora documentul „Selectare” este posibil |UNDE | EXPRESS(Informații RegisterExecutedTasks.Task AS Document.Selection) LINK Document.Selection // Exemplul 5a. Un alt exemplu similar când trebuie să selectați documente de un anumit tip | ALEGEREA | CÂND SE EXPRIMĂ (ag Corespondența documentelor. DocumentBU AS Document. Recepția Bunurilor și Serviciilor) LINK Document. Recepția Bunurilor și Serviciilor | ATUNCI ""Recepția de bunuri și servicii"" | CÂND SE EXPRIMĂ (ag Corespondența documentelor. DocumentBU AS Document. Vânzări de bunuri și servicii) LINK Document. Vânzări de bunuri și servicii | APOI ""Vânzări de bunuri și servicii"" | ELSE """" | END AS Document View // Exemplul 6. selectarea după condiție a unei valori nedefinite: |UNDE | SavedSettings.User = NEDEFINIT // Exemplul 7. selectarea după tipul de mișcare „Intrare” a registrului de acumulare, „Cheltuieli” - similar): |UNDE | RegProductsInRetail.MovementType = VALUE(MovementTypeAccumulation.Incoming) // Exemplul 8. Cum să indicați într-o solicitare că nu este nevoie să executați cererea (de exemplu, trebuie să returnați în mod programatic, în funcție de o anumită condiție, un rezultat al cererii necompletate - Request.Text = StrReplace(Request.Text, „UNDE Doc.Link = &DocumentLink” , „UNDE E MINCIUNEA”);). Pentru a face acest lucru, trebuie doar să adăugați condiția „Unde este fals”. Apropo, indiferent de volumul de date solicitat în eșantion, o astfel de solicitare va fi executată instantaneu. |UNDE E MINCIUNA // Exemplul 9. Verificarea dacă rezultatul interogării conține date: Dacă nuCerere.A executa().Gol() Apoi // Exemplul 10. selecție bazată pe o dată goală: |UNDE | tbStrings.CancellationDate = DATETIME(1, 1, 1)

43
NULL – valori lipsă. A nu se confunda cu valoarea zero! NULL nu este un număr, nu este egal cu un spațiu, o referință goală sau nedefinit. NULL este o valoare de formare a tipului, adică există un tip NULL și o singură valoare de acest tip. NUL... 26
Pentru a genera și executa interogări către tabelele bazei de date în platforma 1C, este utilizat un obiect special al limbajului de programare Query. Acest obiect este creat prin apelarea constructului New Request. Cerere convenabilă... 18
Articolul oferă tehnici utile atunci când lucrați cu interogări 1C v.8.2, precum și informații care nu sunt atât de bine cunoscute despre limbajul de interogare. Nu încerc să ofer o descriere completă a limbajului de interogare, dar vreau să mă opresc doar asupra... 13
LIKE - Operator pentru verificarea asemănării unui șir cu un model. Analog de LIKE în SQL. Operatorul SIMILAR vă permite să comparați valoarea expresiei specificate în stânga acesteia cu șirul de model specificat în dreapta. Sensul expresiei...

În acest articol vom analiza posibilitățile de conversie de tip în limbajul de interogare 1C, care sunt oferite de funcția „Express”.
Să ne uităm la câteva opțiuni pentru utilizarea acestei funcții.
Și prima opțiune este rotunjirea numerelor.

Pentru a face acest lucru, trebuie să utilizați funcția Express în următorul format:

Expres(<Число>ca număr(<ДлинаЧисла>,<Точность>))

Unde:
Număr— câmpul care trebuie rotunjit
LungimeNumere— lungimea maximă a numărului
Precizie— precizia rotunjirii numerelor

Parametrii atât lungimea cât și precizia trebuie să fie numere întregi pozitive.
Vedeți cum funcționează această funcție în imaginea de mai jos.

Al doilea caz de utilizare este turnarea cu coarde. Foarte des, configurațiile folosesc șiruri de lungime nelimitată, ceea ce impune anumite restricții. De exemplu, nu putem compara șiruri de lungime nelimitată.
În interogarea de mai jos, câmpul FullName este de tip șir de lungime nelimitată, iar această interogare nu va funcționa.

Pentru ca acesta să funcționeze, este necesar să convertiți un câmp de lungime nelimitată într-un șir cu o anumită lungime; acest lucru se face folosind funcția Express în următorul format:

Expres(<Строка>ca șir (<ДлинаСтроки>)

Unde
Lungimea liniei– lungimea maximă la care va fi redusă sfoara.
Să reluăm interogarea: în condiția vom converti un șir nelimitat într-un șir cu o anumită lungime. Atunci nu vor fi erori.

Să luăm în considerare ultima și, aș spune, cea mai importantă opțiune pentru aplicarea acesteia: atunci când lucrați cu câmpuri de tip compozit.
Mai jos sunt două interogări care folosesc câmpuri compuse. Prima este greșită, iar a doua este corectă.

Acestea. Când trebuie să obțineți un câmp de un tip complex, obțineți întotdeauna valoarea acestui câmp numai după turnarea tipului folosind funcția Express. În acest caz, documentele și cărțile de referință vor avea următorul format:

Expres(<Документ>ca document.<ИмяТаблицы>)
Expres(<Справочник>ca Director.< ИмяТаблицы >)
.

Unde
TableName— numele obiectului în .

Utilizați întotdeauna funcția expres atunci când lucrați cu tipuri compozite, aceasta optimizează foarte mult interogarea.

Dacă încă „înoți” în construcțiile limbajului de interogări și chiar și cele mai simple interogări vă provoacă dificultăți, atunci vă recomand cursul meu „Interogări în 1C de la începător la profesionist”. Unde acestea și multe alte probleme sunt discutate mai detaliat.

Ce este special la acest curs:
Cursul este conceput pentru cei care nu sunt familiarizați cu limbajul de interogare în 1C;
Materialul educațional este bine aranjat și ușor de învățat;
Câteva zeci de lecții;
Exemple practice utile;
Toate lecțiile sunt prezentate într-un limbaj clar și simplu

Pentru cititorii mei, cupon de reducere de 25%: hrW0rl9Nnx

Încerc să lansez diverse articole gratuite interesante și tutoriale video cât mai des posibil. Prin urmare, voi fi foarte bucuros dacă îmi susțineți proiectul transferând orice sumă:

Puteți transfera orice sumă direct:
Yandex.Bani - 410012882996301
Web Money - R955262494655

Alăturați-vă grupurilor mele.

1C vă permite să simplificați semnificativ contabilitatea sau pur și simplu să gestionați orice organizație, fie că este vorba de un magazin mic sau de o întreprindere mare. Programul este un sistem mare de gestionare a bazelor de date. Pentru a nu fi confuz în toate acestea, trebuie să fiți capabil să efectuați diverse acțiuni simple și să înțelegeți esența. În continuare, veți înțelege cum să verificați tipul de valoare dintr-o solicitare în 1C, precum și care sunt acestea în general, precum și cum să faceți distincția între ele.

Tipuri de valori

1C: Întreprinderea a inclus o funcție specială în versiunile noi (platforma 8.2). Folosind-o, puteți adăuga orice parametri speciali la orice nume sau elemente ale sistemului de date. Acest lucru a fost făcut pentru a face sistemul mai ușor de editat și pentru a adăuga elemente noi. Această funcție se numește „Tip de valoare”.

De fapt, acesta este unul dintre conceptele de bază pe care le conțin majoritatea limbajelor de programare. Folosind-o, puteți clasifica diverse date. De exemplu: date, numere, șiruri, link-uri. Acestea sunt doar clasificări de bază. S-ar putea să fie mai mulți dintre ei. Să presupunem că, dacă introduceți informații despre orașe în sistemul dvs., puteți utiliza: continent, țară, regiune etc.

Examinare

Puteți verifica un anumit câmp folosind un limbaj de interogare. Sau mai degrabă funcțiile sale: TYPE VALUE. Adică, dacă vrem să aflăm ce tip de informații conține celula de interes, trebuie să folosim comanda.

VALOARE TYPE(Valoare) = TYPE(Șir)

În exemplul de mai sus, am definit cel mai simplu tip folosind comanda. Un alt exemplu de validare a cererii:

Documentație

Există destul de multe tipuri; utilizatorii se pot descurca cu cele inițiale sau pot introduce propriile lor pentru a îmbunătăți baza de informații. Aici sunt câțiva dintre ei.

  • DocumentLink. Este folosit pentru stocarea convenabilă a referințelor la diferite obiecte din alte părți ale sistemului.
  • DocumentObject - editarea documentelor.
  • DocumentSelection - sortarea obiectelor din baza de date.

În plus, există termeni speciali care caracterizează orice date:

  • formă;
  • linia;
  • boolean;
  • număr;
  • data de;
  • matrice;
  • Caseta de bifat;
  • imagine.

Acestea sunt doar câteva dintre ele. Orice obiect poate fi doar ceva din această listă. Booleanul este un parametru special care ia două valori: adevărat sau fals. Există, de asemenea, etichete speciale care vă permit să ajustați cererea: când, unde, cum, altfel, etc. Ele setează algoritmul de comportament al programului. 1C se distinge prin faptul că aceste cuvinte aici, ca orice altceva, pot fi introduse în rusă.

Este important să înțelegem că toate acestea vor fi percepute de începători și non-profesioniști ca alfabetizare chineză. Pentru a înțelege despre ce vorbim și pentru a utiliza eficient 1C, trebuie să cunoașteți elementele de bază ale programării. În general, verificarea tipului unei cereri în programul 1C va fi destul de ușoară în comparație cu alte acțiuni.

În acest articol dorim să discutăm totul cu tine Funcții de limbaj de interogare 1C, și constructele limbajului de interogare. Care este diferența dintre funcție și design? Funcția este apelată cu paranteze și posibili parametri în ele, iar constructul este scris fără paranteze. Fara indoiala toate structurile și funcțiile limbajului de interogare 1C face procesul de achiziție a datelor flexibil și multifuncțional. Aceste funcții și constructe se aplică câmpurilor de solicitare, iar unele se aplică și condițiilor.

1C Funcții limbaj de interogare

Pentru că o descriere clară Funcții de limbaj de interogare 1C este mult mai puțin frecventă decât descrierile structurilor, am decis să începem să ne uităm la funcții. Acum să ne uităm la fiecare separat, descriindu-i scopul, sintaxa și exemplul de utilizare, deci:

1. Funcţie DATA ORA- această funcție creează un câmp constant cu tipul „Date”.

Sintaxă: DATA ORA(<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

Exemplu de utilizare:

2. Funcția DATE DIFERENTĂ- returnează diferența dintre două date într-unul dintre dimensiuni (an, lună, zi, oră, minut, secundă). Măsurarea este trecută ca parametru.

Sintaxă: DIFERENCEDATE(<Дата1>, <Дата2>, <Тип>)

Exemplu de utilizare:

Query.Text = „SELECT | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | AS Qty.Days”;

3. Funcția VALUE- setează un câmp constant cu o înregistrare predefinită din baza de date; puteți obține și un link gol de orice tip.

Sintaxă: VALUE(<Имя>)

Exemplu de utilizare:

Request.Text = „SELECT //element predefinit | VALUE(Directory.Currencies.Dollar) AS Dollar, //link gol | VALUE(Document.Receipt of Goods and Services.EmptyLink) AS Receipt, //transfer value | VALUE(Transfer . Persoană fizică juridică. Persoană fizică) AS Persoană fizică, //cont predefinit | VALUE(Planul de conturi. Autoportant. Materiale) AS Account_10" ;

4. Funcția SELECT- avem în fața noastră un analog al construcției IF, care este folosit în cod, doar acesta este folosit în interogările 1C.

Sintaxă: ALEGERE CÂND<Выражение>APOI<Выражение>IN CAZ CONTRAR<Выражение>Sfârşit

Exemplu de utilizare:

Solicitare.Text = //dacă suma este mai mare de 7500, atunci ar trebui să existe o reducere de 300 de ruble, //deci dacă condiția este declanșată, atunci funcția //returnează Suma - 300 //în caz contrar, cererea va returna pur și simplu Suma „SELECT | SELECT | WHEN TTCReceipts.Amount > 7500 | THEN TTCReceipts.Amount - 300 | ELSE TTCReceipts.Amount | END AS AmountWithDiscount |FROM | Document.Receipt of GoodsServices.Goods AS TTCReceipts”;

5. Funcția EXPRESS- vă permite să exprimați un câmp constant cu un anumit tip.

Sintaxă: EXPRESS(FieldName AS TypeName)

Exemplu de utilizare:

Query.Text = "SELECT VARIOUS | Sales.Registrar.Number, | SELECT | WHEN Sales.Registrar LINK Document.Expense | THEN EXPRESS(Sales.Registrar AS Document.Expense) | ELSE SELECT | WHEN Sales.Registrar LINK Document.Implementare | THEN EXPRESS(Sales.Registrar AS Document.Implementation) | END | ... | END AS Număr | FROM | RegisterAcumulations.Purchases AS Purchase";

Există o altă opțiune pentru utilizarea funcției EXPRESS în câmpuri de tipuri mixte, unde apar acestea? Cel mai simplu exemplu este „Registrul” pentru orice registru. Deci, de ce ar trebui să calificăm tipul în registrator? Să luăm în considerare situația când selectăm câmpul „Număr” de la registrator, din ce tabel va fi selectat numărul? Răspunsul corect al tuturor! Prin urmare, pentru ca interogarea noastră să funcționeze rapid, ar trebui să specificăm un tip explicit folosind funcția EXPRESS

Exemplu de utilizare:

Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Directory.Nomenclature AS Nomenclature";

6. Funcția ISNULL(ortografie alternativă ISNULL) - dacă câmpul este de tip NULL, atunci se înlocuiește cu al doilea parametru al funcției.

Sintaxă: ISNULL(<Поле>, <ПодставляемоеЗначение>)

Exemplu de utilizare:

De asemenea, rețineți că este recomandabil să înlocuiți ÎNTOTDEAUNA tipul NULL cu o anumită valoare, deoarece comparația cu tipul NULL returnează întotdeauna FALSE chiar dacă comparați NULL cu NULL. Cel mai adesea, valorile NULL sunt formate ca urmare a îmbinării tabelelor (toate tipurile de îmbinări, cu excepția celor interne).

Query.Text = //Selectați întregul articol și soldurile acestuia //dacă nu există sold într-un articol, atunci va exista un câmp //NULL care va fi înlocuit cu valoarea 0 "SELECT | No. Link, | ISNULL (ProductsInStockRemains.InStockRemaining, 0) AS Rest | FROM | Directory.Nomenclature AS Nr. | LEFT CONNECTION Înregistrați acumulări. BunuriÎnDepozite. Rămășite AS BunuriÎnDepoziteRemains | ON (GoodsInWarehousesRemains. Nomenclatură)"; = No.

7. Funcția REPREZENTARE- vă permite să obțineți o reprezentare a câmpului de solicitare.

Sintaxă: PERFORMANŢĂ(<НаименованиеПоля>)

Exemplu de utilizare:

Query.Text = "SELECT | REPRESENTATION(FreeRemainingRemains.Nomenclature) AS Nomenclature, | REPRESENTATION(FreeRemainingRemaining.Warehouse) AS Warehouse, | FreeRemainingRemaining.InStockRemaining |FROM |Acumulation Register.FreeRemaining AS FreeRemaining;Remaining"

Construcții în limbajul de interogare 1C

Am discutat cu tine mai sus Funcții de limbaj de interogare 1C, acum este timpul să luați în considerare constructe în limbajul de interogare 1C, nu sunt mai puțin importante și utile, să începem.

1. Constructii LINK- este un operator logic pentru verificarea unui tip de referință. Cel mai des întâlnit la verificarea unui câmp de tip complex cu un anumit tip. Sintaxă: LEGĂTURĂ<Имя таблицы>

Exemplu de utilizare:

Solicitare.Text = //dacă tipul de valoare înregistrator este document Recepție, //atunci interogarea va returna „Recepție de mărfuri”, în caz contrar, „Vânzări de mărfuri” „SELECT | SELECT | WHEN Remainings.Registrar LINK Document.Receipt of Goods and Servicii | ATUNCI ""Chitare"" | ALTA ""Consum"" | END AS Tip de miscare | DIN | Registrul de acumulare. Produse ramase in depozite AS Resturi" ;

2. Design INTRE- acest operator verifică dacă valoarea se află în intervalul specificat.

Sintaxă: ÎNTRE<Выражение>ȘI<Выражение>

Exemplu de utilizare:

Request.Text = //obține întreaga nomenclatură al cărei cod este în intervalul de la 1 la 100 "SELECT | Nomenclature.Link |FROM | Directory.Nomenclature AS Nomenclature |WHERE | Nomenclature.Code BETWEEN 1 AND 100" ;

3. Construcția B și B IERARHIE- verificați dacă valoarea se află în lista transferată (matricele, tabelele de valori etc. pot fi transferate ca listă). Operatorul ÎN IERARHIE vă permite să vizualizați ierarhia (un exemplu de utilizare a Planului de conturi).

Sintaxă: ÎN(<СписокЗначений>), ÎN IERARHIE(<СписокЗначений>)

Exemplu de utilizare:

Solicitare.Text = //selectați toate subconturile contului „SELECT | Auto-susținut. Link AS Account | FROM | Plan de conturi. Auto-susținut AS Auto-susținut | WHERE | Auto-susținător. Link ÎN VALOAREA IERARHIEI (Graficul de Conturi. Autoportante. Bunuri)";

4. Design similar- Această funcție ne permite să comparăm un șir cu un model de șir.

Sintaxă: LIKE "<ТекстШаблона>"

Opțiuni de model de rând:

% - o secvență care conține orice număr de caractere arbitrare.

Un personaj arbitrar.

[...] - orice caracter unic sau secvență de caractere enumerate între paranteze drepte. Enumerarea poate specifica intervale, de exemplu a-z, adică un caracter arbitrar inclus în interval, inclusiv capetele intervalului.

[^...] - orice caracter unic sau secvență de caractere enumerate între paranteze drepte, cu excepția celor enumerate după semnul de negație.

Exemplu de utilizare:

Interogare.Text = //găsiți întreaga nomenclatură care conține rădăcina TABUR și începe //fie cu litera mică sau majusculă t „SELECT | Nomenclatură. Link | FROM | Director. Nomenclatura AS Nomenclatură | WHERE | Produse. Nume LIKE "" [Tt ]abur%""" ;

5. Design PERMIS- acest operator vă permite să selectați doar acele înregistrări din baza de date pentru care apelantul are permisiunea de citire. Aceste drepturi sunt configurate la nivel de înregistrare (RLS).

Sintaxă: ALLOWED este scris după cuvântul cheie SELECT

Exemplu de utilizare:

Request.Text = "SELECTARE PERMIS | Contrapartide. Link | DIN | Director. Contrapartide AS Contrapartide";

6. Design DIVERSE- vă permite să selectați înregistrări în care nu există înregistrări duplicat.

Sintaxă: VARIOUS este scris după cuvântul cheie SELECT

Exemplu de utilizare:

Request.Text = //selectează înregistrările la care cititorul are drepturi „SELECT VARIOUS | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties” ;

De asemenea, construcția VARIOUS poate fi folosită cu operatorul PERMIS și alți operatori.

Exemplu de utilizare:

Request.Text = //selectează diverse înregistrări la care cititorul are drepturi „SELECT ALLOWED VARIOUS | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties”;

7. Design FIRST- selectează numărul de înregistrări specificat în parametru din rezultatul interogării.

Sintaxă: FIRST<число>

Exemplu de utilizare:

Solicitare.Text = //selectați primele 4 numere CCD din directorul "SELECT FIRST 4 | Numere CCD. Link | FROM | Director. Numere CCD AS Numere CCD";

8. Design PENTRU SCHIMBARE- vă permite să blocați un tabel, funcționează numai în tranzacții (relevant doar pentru blocările automate).

Sintaxă: PENTRU SCHIMBARE<НаименованиеТаблицы>

Exemplu de utilizare:

Query.Text = "SELECT | Resturi libere. Nomenclator, | Resturi libere. Depozit, | Resturi libere. În stoc rămase | DIN | Registrul acumulărilor. Resturi libere. Rămășii ca resturi libere | PENTRU SCHIMBARE | Registrul acumulărilor. . Resturi libere. Resturi";

9. Design COMANDA DE- organizează datele după un anumit câmp. Dacă câmpul este un link, atunci când setați steag COMANDĂ AUTOMATĂ Sortarea va avea loc prin reprezentarea link-ului; dacă steag-ul este dezactivat, atunci link-urile sunt sortate după vechimea adresei link-ului din memorie.

Sintaxă: FILTREAZĂ DUPĂ<НаименованиеПоля>COMANDĂ AUTOMATĂ

Exemplu de utilizare:

Query.Text = "SELECT | Resturi libere. Nomenclator AS Nomenclator, | Resturi libere. Depozit AS Depozit, | Resturi libere. În stoc rămas | DIN | Înregistrați acumulări. Resturi libere. Rămase AS Resturi libere rămase BY | | Nomenclator | AUTO COMANDA VANIE";

10. Design GROUP BY- folosit pentru gruparea șirurilor de interogări după anumite câmpuri. Câmpurile numerice trebuie utilizate cu orice funcție de agregare.

Sintaxă: A SE GRUPA CU<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Exemplu de utilizare:

Query.text = "SELECT | itemsInwarehouses.nomenclature as nomenclature, | itemSInwarehouses.warehouse, | sum (articolesInWarehouses.Instock) ca instank | de la | RegisterAccumulations.Itemsinwarehouses ca articolesInwarehouses | ;

11. Design AVÂND- vă permite să aplicați o funcție agregată unei condiții de selecție a datelor, similară construcției WHERE.

Sintaxă: AVÂND<агрегатная функция с условием>

Exemplu de utilizare:

Query.Text = //selectează înregistrările grupate în care câmpul InStock este mai mare de 3 "SELECT | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK |FROM | RegisterAccumulations.Stocks AS | ItemsInStocks AS | GROUP BY | ProductsInWarehouses.Nomenclature, | ProductsInWarehouses.Warehouse | | DISPONIBIL | SUMĂ(ProductsInWarehouses.InStock) > 3" ;

12. Constructii INDEX BY- folosit pentru indexarea câmpului de interogare. O interogare cu indexare durează mai mult, dar accelerează căutarea prin câmpurile indexate. Poate fi folosit doar în mesele virtuale.

Sintaxă: INDEX PRIN<Поле1, ... , ПолеN>

Exemplu de utilizare:

Query.Text = „SELECT | Ts.NameOS, | Ts.FolderNumber, | Ts.CodeOS, | Ts.Term, | Ts.Type | PLACE DataTs | FROM | &Ts AS Ts | | INDEX BY | Ts.NameOS, | Ts .CodeOS";

13. Design UNDE- vă permite să impuneți o condiție oricăror câmpuri de selecție. Rezultatul va include numai înregistrările care îndeplinesc condiția.

Sintaxă: UNDE<Условие1 ОператорЛогСоединения УсловиеN>

Exemplu de utilizare:

Query.Text = //toate înregistrările cu CompensationRemaining sunt selectate<>0 și //AmountForCalcCompRemaining > 100 "SELECT | CompensationRPORemains.Counterparty, |CompensationRPORemains.Child, | CompensationRPORemains.CompensationRemaining, | CompensationRPORemains.AmountForCalcCompRemains |Place Data Compensation.RPORemains.WHRemains.RPORemains.RP | ERE |CompensationRPORremaining.CompensationRemaining<>0 | Și CompensationRPORemains.AmountForCalcCompRemaining> 100" ;

14. Design REZULTATE... GENERAL- folosit pentru calcularea totalurilor; proiectul specifică câmpurile prin care vor fi calculate totalurile și funcțiile de agregare aplicate câmpurilor totale. Când se folosesc totaluri pentru fiecare câmp după construcția TOTAL, datele sunt grupate. Există o construcție GENERAL opțională; utilizarea sa oferă și grupări suplimentare. Veți vedea un exemplu de rezultat al cererii mai jos.

Sintaxă: REZULTATE<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>DE<ОБЩИЕ> <Поле1, ... , ПолеN>

Exemplu de utilizare:

Solicitare.Text = "SELECTARE | Calcule. Contract de contrapartidă. Tip de acord AS Tip de contract, | Calcule. Contract de contraparte AS Contract, | Calcule. Contraparte, | Calcule. Valoarea soldului decontării reciproce AS Sold | FROM | Registrul de acumulări. Mutual Decontare CU Contrapărțile. Solduri AS Calcule | TOTAL | SUMA (Sold) |Software | GENERAL, | Tip de acord";

Figura conturează grupările care s-au format în timpul executării cererii, cea de sus se referă la secțiunea GENERAL, iar cea de-a doua la câmpul Counterparty Agreement Agreement Type.