1c som i forespørselen om å spesifisere perioden.

Eiendommen 01.01.2020

Svært ofte i 1C-forespørsler må du jobbe med datoer. Spesielt når spørringen bygges for metadataobjekter som inneholder periodisk informasjon. Som regel er dette registre (informasjon, akkumulering, beregning, regnskap). La oss vurdere de mest brukte funksjonene i 1C-spørringsspråket for å jobbe med datoer. Vi bygger eksempler basert på informasjonsregisteret AnsatteOrganisasjoner ZUP-konfigurasjonsrevisjon 2.5.

  • DATO TID

    Lar deg få datoen i forespørselen (med eller uten tid) ved å spesifisere år, måned, dag, time, minutt, sekund.
    Syntaks:
    DATO TID (år, måned, dag, time, minutt, sekund)
    Vanligvis er ikke time, minutt og sekund spesifisert. La oss gi et lite eksempel. Skriv inn følgende tekst i søkekonsollen:

    VELG DATATID (2016, 1, 1)

    Som et resultat av å utføre forespørselen får vi datoen - 01.01.2016
    Det er faktisk vanskelig å forestille seg en situasjon der datoen vil bli angitt i forespørselen på denne måten. Når alt kommer til alt, når du trenger å spesifisere perioden, brukes parametere. Men det er et tilfelle når denne funksjonen er av spesiell verdi. Dette er når vi trenger å spesifisere en tom dato i feltene eller i spørringsforholdene. La meg minne deg om at for 1C-språket, ser den tomme datoen ut som - 0001.01.01. Dermed er det nok å spesifisere for å få en tom dato i forespørselen DATO TID (1, 1, 1)... La oss som et eksempel velge fra informasjonsregisteret AnsatteOrganisasjoner poster som ikke er fylt ut Fullføringsperiode:

    VELG ansatte i organisasjoner. Periode, ansatte i organisasjoner. Ansatt, ansatte i organisasjoner. Stilling, ansatte i organisasjoner. Underavdeling av en organisasjon FRA informasjonsregisteret. Ansatte i organisasjoner AS ansatte i organisasjoner der ansatte i organisasjoner, 1 ÅR, 1

  • BEGYNNELSE AV PERIODEN

    Returnerer begynnelsen av perioden den tilhører for den angitte datoen.
    Syntaks:
    PERIODESTART (dato, periodetype)
    PeriodType kan ta følgende verdier: MINUTT, TIMER, DAG, UKE, MÅNED, KVARTAL, ÅR, DECADE, HALVÅRIG
    I spørrekonsollen skriver du inn:

    VELG PERIODES START (DATO TID (2016, 1, 15), MÅNED)

    Forespørselen kommer tilbake - 01.01.2016
    Nå for et eksempel. Som du vet frekvensen i registeret AnsatteOrganisasjoner en dag. La oss komponere et spørsmål der datoen for begynnelsen av måneden vises i stedet for den gyldige perioden med poster.

    VELG BEGYNNELSE AV PERIODEN (Ansatte i organisasjoner. Periode, MÅNED) SOM begynnelsen av måneden, Ansatte i organisasjoner. Ansatt, Ansatte i organisasjoner. Stilling, Ansatte i organisasjoner. En underavdeling av en organisasjon FRA informasjonsregistre. Ansatte i organisasjoner. .

  • PERIODENS SLUTT

    Syntaksen er den samme som for begynnelsen av perioden. Og som navnet tilsier, returnerer den slutten av perioden etter dato og periodetype. Vi vil ikke vurdere i detalj. La oss begrense oss til et lite eksempel.
    Be om:

    VELG PERIODENS SLUTT (DATO TID (2016, 1, 15), MÅNED)

    Returnerer 1/31/2016 23:59:59
    Som du kan se, blir verdien returnert nøyaktig til den andre.

  • TILLEGG

    Legger til det angitte antall tidsintervaller til datoen.
    Syntaks:
    ADDEDDATE (dato, periodetype, antall)
    PeriodType tar de samme verdiene som for funksjonen BEGYNNELSE AV PERIODEN
    La oss ta en februar-dato som et eksempel:

    VELG LEGG TIL DATO (DATETID (2016, 2, 15), MÅNED, 2)

    Vi får datoen 15.04.2016 0:00:00 Til tross for at februar er en kort måned, er dagen for mottatt dato den samme som originalen. Det er veldig praktisk at du ikke trenger å tenke på antall dager i måneder.
    Antallet kan være negativt. Deretter telles intervallet i motsatt retning.

  • FORSKJELL

    Beregner forskjellen mellom to datoer i de angitte enhetene.
    Syntaks:
    DATE DIFFERENCE (Start Date, End Date, PeriodType)
    Periodetypen kan ta følgende verdier: ANDRE, MINUTT, TIMER, DAG, MÅNED, KVARTAL, ÅR
    For eksempel:

    VELG DATOFORSKJELL (DATO TID (2016, 2, 15), DATO TID (2016, 3, 1), DAG)

    returnerer 15

De hyppigst brukte funksjonene i 1C-spørringsspråket ble vurdert her. Resten brukes sjelden. Om nødvendig kan du finne eksempler på å jobbe med dem i hjelpen innebygd i 1C-plattformen.

"Date" -typen i 1C er en av de fire hoveddatatypene, sammen med nummer, streng og boolsk. Datoer er allestedsnærværende i konfigurasjoner - det er umulig å unngå å jobbe med denne datatypen under utviklingen. Derfor er det bedre å begynne å skrive spørsmål, og allerede forstå hvordan man skal håndtere datoer, hva er mulighetene for å jobbe med dem, hvordan de lagres. La oss se på eksempler på alle nyansene ved å skrive forespørsler med forskjellige datoer.

Eksempler på å jobbe med datoer i 1C-forespørsler

Først og fremst må du få datoen i forespørselen inn ønsket format - med eller uten tid. Det er flere måter å utføre denne oppgaven på:

  1. Gå gjennom en parameter. Du kan få den gjeldende øktdatoen bare etter denne metoden;
  2. Få datoen i forespørselen fra valgfeltet;
  3. Konverter fra numeriske verdier ved hjelp av DATE TIME () -funksjonen.

Den vanligste oppgaven når du arbeider med dokumenter er å se etter en tom dato i en 1C-forespørsel. I dette tilfellet er det enklest å sammenligne en variabel eller et felt med en tom dato, som er oppnådd med DATO TID (1,1,1) -funksjonen:

DATO TID (1, 1, 1)

En lignende kommando kan få en vilkårlig dato og tid i en forespørsel. Samtidig kan de spesifiseres med en nøyaktighet på et sekund ved å spesifisere 6 tall som parametere. Hvis bare 3 tall brukes, vil timer, minutter og sekunder settes til 0 (begynnelsen av dagen). For eksempel må vi velge dokumenter de første ti dagene i januar 2018 i forespørselen:

VELG Mottak til oppgjørskonto.Ref AS-lenke fra dokument.Velg til oppgjørskonto som mottak til avregningskonto. , 10

I et spørsmål på det innebygde 1C-språket kan du ikke bare velge forskjellige felt og få parametere. Det er mange funksjoner som gjør det enkelt å formatere datoen for en bestemt oppgave. Hvis du ofte jobber med datoer i et spørsmål, bør du kjenne til disse kommandoene:

  • BEGYNNELSE AV PERIODEN. Som parametere er dato og tidsintervall angitt, i den sammenheng det er nødvendig å få begynnelsen på datoen. Brukes til å konvertere en dato til et tidløst format. For dette er det nødvendig å sette den andre parameteren - "DAG";
PERIODESTART (,) PERIOD START (& Date, DAY) periode\u003e dato\u003e
  • PERIODENS SLUTT. En lignende kommando som returnerer den siste datoen når det gjelder enhetene som er spesifisert i parameterne;
  • TILLEGG. Lar deg få en dato som er større enn et spesifisert antall spesifiserte tidsenheter. Funksjonsparametrene er dato, tidsenhet og nummer;
ADDEDDATE (,) ADDEDDATE (& Date, DAY, 10) count\u003e type\u003e date\u003e
  • FORSKJELL Får forskjellen mellom datoer i de angitte enhetene;
DATE DIFFERENCE (,) DATE DIFFERENCE (& Date1, & Date2, DAY) type\u003e date2\u003e date1\u003e
  • UKENS DAG. Returnerer ordinært nummer på en av ukedagene.

Ved å bruke disse funksjonene riktig, kan utvikleren løse ganske ikke trivielle oppgaver. For eksempel å få navnet på dagen i uken til den gjeldende datoen i en spørring som en streng:

VELG NÅR DAGSUKE (& CurrentDate) \u003d 1 SÅ "Mandag" NÅR DAG UKE (& CurrentDate) \u003d 2 DAN "Tirsdag" NÅR DAG UKE (& CurrentDate) \u003d 3 SÅ "Wednesday" NÅR DAG UKE Current (& CurrentDate) \u003d 4 SÅ "DAG" og torsdag \u003d 5 DAN "Fredag" NÅR DAG UKE (& CurrentDate) \u003d 6 DAN "Lørdag" ELSKEN "Søndag" SLUTT

Å konvertere typer i en 1C-spørring fra et tall eller en streng til en dato er en møysommelig oppgave. Fra tall kan du få en dato ved hjelp av DATE TIME-funksjonen, fra en streng - ved å kombinere SUBSTRING-funksjonen og SELECT WHEN THEN ELSE-konstruksjonen. Basert på dette foretrekker utviklere å hente datoen fra andre typer i modulen og sende den til forespørselen ved hjelp av en parameter. Dessverre er dette ikke alltid mulig, så du må endre datoformatet i forespørselen.

Det er mulig å spesifisere datoen i 1C-forespørselen som en parameter for å hente data fra virtuelle registertabeller. Alle de ovennevnte funksjonene kan også brukes i denne rollen. Men her er det viktig å ikke la den tomme datoen i 1C-forespørselen påvirke det endelige resultatet av kodeutførelsen, så det er viktig å sjekke.

I 1C-forespørsler, så vel som i det innebygde språket til 1C: Enterprise-plattformen, er det funksjoner for å jobbe med datoer. De hjelper til med å forenkle datakonvertering i spørsmål, unngå å bruke et stort antall parametere. La oss ta en titt på disse funksjonene.

Hvordan sette datoen i 1C-forespørsler som en konstant

DATO TID (år, måned, dag, time, minutt, sekund)... Alternativer År, månedog Dagkreves, andre ikke. Hvis du ikke spesifiserer klokkeslettet, vil systemet sette starten på dagen.

Be om. Tekst \u003d "PLUKKE UT
DATO TID (2016,09,28,12,22,00) "
; // Resultat: 28. september 2016 12:22:00

I tillegg kan bare eksplisitte tall spesifiseres som parametere for denne funksjonen. Du kan ikke spesifisere verdiene til andre funksjoner som parametere. For eksempel vil en slik konstruksjon ikke fungere:

Be om. Tekst \u003d "PLUKKE UT
DATO TID (år (kilde. Dato), 09,28,12,22,00)
Fra referanse. Source AS Source "
;

Hvordan få begynnelsen eller slutten av et år, et halvt år, kvartal, måned, tiår, uke, dag, time, minutt i 1C-spørsmål

For dette brukes følgende funksjoner:

  • Begynnelse av periode (dato, periode)
  • Slutten av perioden (dato, periode)

Som parameter Dato verdi med type overføres Dato. Parameter Periode .

Be om. Tekst \u003d "PLUKKE UT
Begynnelsen av perioden (DATO TID (2016,09,28,12,22,00), DECADE) "
; // Resultat: 21. september 2016 0:00:00

Be om. Tekst \u003d "PLUKKE UT
Periodens slutt (DATO TID (2016,09,28,12,22,00), KVARTAL) "
; // Resultat: 30. september 2016 23:59:59

Som du kan se fra eksemplene, kan du bruke andre, nestede funksjoner i disse funksjonene.

Hvordan få år, dag i året, kvartal, måned, uke, ukedag, dag, time, minutt, sekund fra datoen i 1C-forespørsler

For å gjøre dette er det tilsvarende funksjoner som du trenger for å sende datoen som parameter.

  • Funksjon ÅR (dato)- returnerer årstallet;
  • Funksjon ÅRET (dato)- antall årsdager øker;
  • Funksjon KVARTAL (dato) - returnerer kvartalet
  • Funksjon MÅNED (dato) - returnerer månedens nummer;
  • Funksjon UKE (dato) - returnerer ukenummeret til året;
  • Funksjon UKENS DAG (dato) - returnerer nummeret på dagen i uken (mandag - 1, søndag - 7);
  • Funksjon DAG (dato) - returnerer nummeret på dagen i måneden;
  • Funksjon HOUR (Date) - returnerer timen;
  • Funksjon MINUTE (dato) - returnerer minutter;
  • Funksjon SECOND (dato) - returnerer sekunder.

Be om. Tekst \u003d "PLUKKE UT
ÅR (DATO TID (2016.09,28,12,22,00)) "
; // Resultat: 2016

Be om. Tekst \u003d "PLUKKE UT
UKE (DATO (2016,09,28,12,22,00)) "
; // Resultat: 40

Be om. Tekst \u003d "PLUKKE UT
UKENS DAG (DATO TID (2016.09,28,12,22,00)) "
; // Resultat: 3

Be om. Tekst \u003d "PLUKKE UT
DAG I ÅRET (DATO TID (2016,09,28,12,22,00)) "
; // Resultat: 272

Be om. Tekst \u003d "PLUKKE UT
DAG (DATO TID (2016,09,28,12,22,00)) "
; // Resultat: 28

Hvordan legge til et år, et halvt år, et kvart, en måned, et tiår, en uke, en dag, en time, et minutt, et sekund til eller fra en dato i 1C-spørsmål

For å gjøre dette, bruk funksjonen Legg til dato (dato, periode, verdi).

Som parameter Dato verdi med type overføres Dato. Parameter Periode kan ta en av følgende verdier: SEKUND, MINUTT, HOUR, DAY, UKE, DECADE, MONTH, KVARTAL, HALVÅRIG, ÅR.

Parameter Verdiviser antall tilføyde perioder. Hvis perioden må trekkes fra, er parameteren Verdimå være negativ.

Be om. Tekst \u003d "PLUKKE UT
Legg til dato (DATO TID (2016, 9, 28, 12, 22, 0), HALVÅRIG, 1) "
; // Resultat: 28. mars 2017 12:22:00

Be om. Tekst \u003d "PLUKKE UT
Legg til KDate (DATE TIME (2016, 9, 28, 12, 22, 0), DECAD, -1) "
; // Resultat: 18. september 2016 12:22:00

Hvordan beregne forskjellen i datoer i 1C-forespørsler

For å gjøre dette, bruk funksjonen DifferenceDates (Date1, Date2, Period).

Parameter Dato1Er datoen som skal trekkes fra.

Parameter Dato2 -dato å trekke fra.

Parameter Periode kan ta en av følgende verdier: SEKUND, MINUTT, TIMER, DAG, MÅNED, KVARTAL, ÅR... Det viser i hvilke enheter vi ønsker å få resultatet.

Be om. Tekst \u003d "PLUKKE UT
DifferenceDate (DATE TIME (2016, 9, 28, 12, 22, 0), DATE TIME (2017, 9, 28, 12, 22, 0), KVARTAL) "
; // Resultat: 4

Be om. Tekst \u003d "PLUKKE UT
DifferenceDate (DATE TIME (2016, 9, 28, 12, 22, 0), DATE TIME (2017, 9, 28, 12, 22, 0), Second) "
; // Resultat: 31.536.000

I alle funksjoner unntatt funksjonen DATO TID, som parameter Dato ikke bare den spesifikke datoverdien (konstant eller spørringsparameter) kan brukes, men også feltene i kildetabellen.

I denne artikkelen vil vi diskutere alt med deg 1c spørsmålsspråkfunksjoner, og spørrespråk konstruerer... Hva er forskjellen mellom en funksjon og en konstruksjon? Funksjonen kalles med parenteser og mulige parametere i dem, og konstruksjonen er skrevet uten parentes. Sikkert alle konstruksjoner og funksjoner i 1c-spørringsspråket gjøre datainnsamlingsprosessen fleksibel og multifunksjonell. Disse funksjonene og konstruksjonene gjelder for søkefelt, og noen gjelder også under forhold.

1c spørsmålsspråkfunksjoner

Siden den klare beskrivelsen 1c spørsmålsspråkfunksjoner er mye mindre vanlig enn beskrivelsen av konstruksjoner, bestemte vi oss for å begynne å vurdere funksjoner. La oss nå se på hver enkelt, og beskrive formålet, syntaksen og brukseksemplet, så:

1. Funksjon DATO TID - denne funksjonen skaper et konstant felt av typen "Date".

Syntaks: DATO TID(<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

Brukseksempel:

2. FORSKJELL-funksjon - returnerer forskjellen mellom to datoer i en av dimensjonene (år, måned, dag, time, minutt, sekund). Målingen sendes i en parameter.

Syntaks: FORSKJELL (<Дата1>, <Дата2>, <Тип>)

Brukseksempel:

Query.Text \u003d "VELG | FORSKJELL AV DATO (DATO TID (2015, 4, 17), DATO TID (2015, 2, 1), DAG) | SOM antall dager";

3. Funksjon VERDI - setter et konstant felt med en forhåndsdefinert post fra databasen, du kan også få en tom lenke av hvilken som helst type.

Syntaks: VALUE (<Имя>)

Brukseksempel:

Request.Text \u003d "VELG // forhåndsdefinert element | VALUE (Directory.Currency.Dollar) AS Dollar, // tom lenke | VALUE (Document.Incoming of GoodsServices.EmptyLink) AS Inngående, // oppregningsverdi | VALUE (Enumeration Legal person. Individuell) AS Individuell, // forhåndsdefinert konto | VERDI (Kontoplan. Selvbærende. Materialer) AS Konto_10 ";

4. VELG-funksjon - før oss er en analog av IF-konstruksjonen som brukes i koden, brukes bare denne i 1C-forespørsler.

Syntaks: VELG NÅR<Выражение> DERETTER<Выражение> ELLERS<Выражение> SLUTT

Brukseksempel:

Request.Text \u003d // hvis beløpet er mer enn 7500, bør det være en rabatt på 300 rubler, // så hvis tilstanden utløses, returnerer funksjonen // beløpet - 300 // ellers vil forespørselen bare returner summen "VELG | VELG | NÅR TCH-kvitteringer. Beløp\u003e 7500 | DA PM-kvitteringer. Beløp - 300 | ELSE PM-kvitteringer. Beløp | SLUT AS Beløp Rabatt | FRA | Dokument. Mottak av GoodsServices. Varer AS PM-kvitteringer";

5. EXPRESS-funksjon - lar deg uttrykke et konstant felt med en bestemt type.

Syntaks: UTTRYKK (feltnavn som type navn)

Brukseksempel:

Query.Text \u003d "VELG FORSKELLIG | Salg.Registrar.Nummer, | VELG | NÅR Salg.Registrar LINK Dokument. Faktura | DAN UTTRYK (Salg.Registrar AS Dokument. Utgifter) | ELSER VALG | NÅR Salg.Registrator KOBLER. DAN UTTRYK ( Sales.Registrator AS Document.Realization) | END | ... | END AS Number | FROM | Akkumuleringsregister.Kjøp AS kjøp ";

Det er også en variant av å bruke EXPRESS-funksjonen i felt av blandede typer, hvor finnes de? Det enkleste eksemplet er "Registrar" for ethvert register. Så hvorfor trenger vi å spesifisere typen i registraren? La oss vurdere situasjonen når vi velger "Nummer" -feltet fra registratoren, fra hvilken tabell vil nummeret bli valgt? Riktig svar av alle! Derfor, for at spørringen vår skal fungere raskt, bør du spesifisere en eksplisitt type ved hjelp av EXPRESS-funksjonen

Brukseksempel:

Query.Text \u003d "SELECT | EXPRESS (Nomenclature.Comment AS Line (300)) AS Comment, | EXPRESS (Nomenclature.Sum AS Number (15,2)) AS Beløp | FRA | Reference.Nomenclature AS Nomenclature";

6. ISNULL-funksjon (alternativ stavemåte ER NULL) - hvis feltet er av typen NULL, erstattes det med funksjonens andre parameter.

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

Brukseksempel:

Vær også oppmerksom på at det er tilrådelig å ALLTID erstatte NULL-typen med noe verdi, siden sammenligning med type NULL evalueres alltid til FALSE selv om du sammenligner NULL med NULL. Oftest dannes NULL-verdier som et resultat av sammenføyningstabeller (alle typer sammenføyninger unntatt interne).

Request.Text \u003d // Velg hele elementet og dets saldoer // hvis det ikke er noen saldo i noe element, vil det være et felt // NULL som vil bli erstattet med verdien 0 "VELG | Nom.Ref, | IS NULL (Varer i varehus. Saldo. Lager, 0) AS-saldo | FRA | Katalog.Nomenklatur AS-nomenklatur | VENSTRE TILKOBLING Akkumuleringsregister.Produkter I varehus.

7. PRESENTASJON-funksjon - lar deg se på forespørselfeltet.

Syntaks: REPRESENTASJON(<НаименованиеПоля>)

Brukseksempel:

Query.Text \u003d "VELG | REPRESENTASJON (Fri saldi. Saldo. Nomenklatur) AS Nomenklatur, | PRESENTASJON (Saldo. Saldo. Lager) AS Lager, | Fri saldo. Rester. Tilgjengelig. Saldo | FRA | Registrerte. Lager."

Konstruerer i 1c spørringsspråk

Ovenfor har vi vurdert med deg 1c spørsmålsspråkfunksjoner, nå er det på tide å vurdere konstruksjoner i 1c spørrespråk, de er ikke mindre viktige og nyttige, la oss komme i gang.

1. Konstruksjonsreferanse - er en logisk operatør for å sjekke en referansetype. Vanligst når du sjekker et komplekst typefelt for en bestemt type. Syntaks: LINK<Имя таблицы>

Brukseksempel:

Request.Text \u003d // hvis verditypen til registraren er et dokument som mottar, // så vil forespørselen returnere "Varemottak", ellers "Salg av varer" "VELG | VELG | NÅR Saldoer. Registrar LINK Dokument. Varemottak av tjenester | SÅ "" Ankomst "" | ELSE "" Forbruk "" | SLUTT Slags bevegelse | FRA | Akkumuleringsregister.Godsbalanser i lager AS Balanser ";

2. Konstruksjon MELLOM - denne operatøren sjekker om verdien er i det angitte området.

Syntaks: MELLOM<Выражение> OG<Выражение>

Brukseksempel:

Request.Text \u003d // få all nomenklaturen, hvis kode ligger i området fra 1 til 100 "SELECT | Nomenclature.Ref | FRA | Reference.Nomenclature AS Nomenclature | WHERE | Nomenclature.Code MELLOM 1 OG 100";

3. Konstruksjon B og B HIERARCHY - sjekk om verdien er i den overførte listen (matriser, verditabeller osv. kan sendes som en liste). Operatøren IN HIERARCHY lar deg se hierarkiet (eksempel på bruk av kontoplan).

Syntaks: I(<СписокЗначений>), I HIERARKIET (<СписокЗначений>)

Brukseksempel:

Request.Text \u003d // velg alle underkontoer til kontoen "VELG | Selvstøttende.Link AS-konto | FRA | Kontoplan. Selvbærende AS Selvbærende | HVOR | Selvbærende. Referanse I HIERARCHY VERDI ( Plan for kontoer. Selvbærende.Gods) ";

4. Bygg som - denne funksjonen lar oss sammenligne en streng mot et strengmønster.

Syntaks: SOM "<ТекстШаблона>"

Alternativer for strengmønster:

% er en sekvens som inneholder et hvilket som helst antall vilkårlige tegn.

En vilkårlig karakter.

[...] - et enkelt tegn, eller en sekvens av tegn som er oppført i parentes. Områder kan spesifiseres i oppregningen, for eksempel a-z, som betegner et vilkårlig tegn som er inkludert i området, inkludert endene av området.

[^ ...] - ethvert enkelt tegn, eller en sekvens av tegn fra de som er oppført i hakeparenteser, unntatt de som er oppført etter negasjonstegnet.

Brukseksempel:

Request.Text \u003d // finn all nomenklaturen som inneholder roten TABUR og begynner // enten med en liten bokstav eller stor bokstav t "SELECT | Nomenclature.Ref | FRA | Directory.Nomenclature AS Nomenclature | WHERE | Products. Name LIKE" " [TT] abur% "" ";

5. Design TILLATT - denne operatøren lar deg bare velge de postene fra databasen som den som ringer har rett til å lese. Disse rettighetene er konfigurert på postnivå (RLS).

Syntaks: TILLATT er skrevet etter nøkkelord PLUKKE UT

Brukseksempel:

Request.Text \u003d "VELG TILLATT | Contractors.Link | FRA | Directory.Contractors AS Contractors";

6. Konstruksjon FORSKELLIG - lar deg velge poster der det ikke er gjentatte poster.

Syntaks: DIFFERENT er skrevet etter nøkkelordet SELECT

Brukseksempel:

Request.Text \u003d // velger poster som leseren har rettigheter til "VELG FORSKJELLIG | Contractors.Name | FRA | Directory.Contractors AS Contractors";

Dessuten kan Construction VARIOUS brukes med den TILLATTE operatøren og andre operatører.

Brukseksempel:

Request.Text \u003d // velger forskjellige poster som leseren har rettighetene til "VELG TILLATT ANDRE | Entreprenører. Navn | FRA | Directory.Contractors AS Contractors";

7. Bygging FØRST - velger antall poster som er spesifisert i parameteren fra søkeresultatet.

Syntaks: FIRST<число>

Brukseksempel:

Request.Text \u003d // velg de første 4 GTD-numrene fra katalogen "SELECT FIRST 4 | GTD numbers.Link | FROM | Reference.GTD numbers AS GTD numbers";

8. DESIGN TIL ENDRING - lar deg låse et bord, fungerer bare i transaksjoner (kun relevant for automatiske låser).

Syntaks: FOR ENDRING<НаименованиеТаблицы>

Brukseksempel:

Query.Text \u003d "VELG | Fri saldi. Saldo. Nomenklatur, | Saldo. Saldo. Lager, | Saldo. Saldo. På lager. Saldo | FRA | Akkumuleringsregister. Gratis. Saldo. Forblir AS. Gratis | FOR FJERNING. "

9. Design BESTIL BY - bestiller data etter et bestemt felt. Hvis feltet er en lenke, når du setter flagget AUTO BESTILLING sorteringen vil bli utført av koblingspresentasjonen. Hvis flagget er av, blir koblingene sortert etter prioriteten til lenkeadressen i minnet.

Syntaks: SORTER ETTER<НаименованиеПоля> AUTO BESTILLING

Brukseksempel:

Query.Text \u003d "VELG | Fri saldoer

10. Struktur LAD BY - brukes til å gruppere søkestrenger etter bestemte felt. Numeriske felt må brukes med en hvilken som helst samlet funksjon.

Syntaks: LAST BY<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Brukseksempel:

Request.Text \u003d "VELG | Produkter I lager. Nomenklatur AS Nomenklatur, | Produkter I lager. Lager, | BELOPP (Varer I lager. På lager) AS Lager | FRA | Akkumuleringsregister.

11. DESIGN HAR - lar deg bruke en samlet funksjon på en datavalgstilstand, lik WHERE-konstruksjonen.

Syntaks: HAR<агрегатная функция с условием>

Brukseksempel:

Query.Text \u003d // velger grupperte poster der feltet er større enn 3 "VELG | ProductsIn Warehouses. Nomenclature AS Nomenclature, | ProductsIn Warehouses. Warehouse, | SUM (ItemsIn Warehouses. In Stock) AS Stock | FRA | Inventory. Inventory | GoodsIn Warehouses.Nomenclature, | GoodsIn Warehouses.Warehouse | | HAVING | BELØP (GoodsIn Warehouses. På lager)\u003e 3 ";

12. Bygg INDEKS BY - brukes til indeksering av søkefeltet. Det tar lengre tid å fullføre et indeksert spørsmål, men gir raskere søk på indekserte felt. Kan bare brukes på virtuelle bord.

Syntaks: INDEKS AV<Поле1, ... , ПолеN>

Brukseksempel:

Request.Text \u003d "VELG | Tz.Name OS, | Tz.Antall mappen, | Tz.code, | Tz.Term, | Tz.Type | POST Data .KodOS";

13. Konstruksjon HVOR - lar deg innføre vilkår for valgfelt. Bare poster som oppfyller vilkåret vil bli inkludert i resultatet.

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

Brukseksempel:

Request.Text \u003d // velger alle poster som gjenstår kompensasjon<> 0 og // SummaDlyaRaschKompOstatok\u003e 100 "SELECT | KompensatsiyaRPOstatki.Kontragent, | KompensatsiyaRPOstatki.Rebenok, | KompensatsiyaRPOstatki.KompensatsiyaOstatok, | KompensatsiyaRPOstatki.SummaDlyaRaschKompOstatok | PUT DannyeTz | FRA | RegistrNakopleniya.KompensatsiyaRP.Ostatki KompensatsiyaRPOstatki HVORDAN | HVOR | KompensatsiyaRPOstatki.KompensatsiyaOstatok<> 0 | Og kompensasjon RPOstatki.SummaForReschCompOstatok\u003e 100 ";

14. Byggeresultater ... GENERELT - det brukes til å beregne totaler, designen spesifiserer feltene som totalene skal beregnes med, og samlede funksjoner brukes på de totale feltene. Når du bruker totaler for hvert felt som følger TOTAL-konstruksjonen, blir dataene gruppert. Det er en valgfri GENEREL konstruksjon, som også gir ekstra gruppering. Du vil se et eksempel på søkeresultatet nedenfor.

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

Brukseksempel:

Request.Text \u003d "VELG | Oppgjør.Kontraktøravtale. Type avtale AS Type avtale, | Oppgjør.Kontraktøravtale AS kontrakt, | Oppgjør.Kontraktør, | Oppgjør. Gjensidig avregningsbeløp. Balanse AS-saldo | FRA | Register over BEREGNINGER. | PÅ | GENERELT, | Type avtale ";

I figuren sirkles grupperingene som ble dannet under utførelsen av spørringen, den øverste tilhører seksjonen GENERELT og den andre til feltet ContractorAgreementContractType.

Vi anbefaler å lese

Opp