Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • telefon Windows
  • Shprehja në parametrat e skd 1s 8.2. Gjuha e shprehjes së sistemit të përbërjes së të dhënave (1Cv8)

Shprehja në parametrat e skd 1s 8.2. Gjuha e shprehjes së sistemit të përbërjes së të dhënave (1Cv8)

Në këtë shënim të shkurtër, unë dua të tregoj se si mund të përmbledhni vlerat në nivele të ndryshme grupimi në një raport duke përdorur një sistem të përbërjes së të dhënave.
Siç tregohet në imazh, vetëm në nivelin e grupimit "Grupet e artikujve", burimi "Porosi" llogaritet, ai tregon se sa duhet porositur për grupin aktual të artikujve bazuar në kushte të caktuara:


Kjo vlerë mund të llogaritet vetëm në këtë nivel grupimi, sepse, sipër ose poshtë, nuk ka vlera për t'u llogaritur. Për shembull, në nivelin e regjistrimeve të detajuara, nuk ka të dhëna për numrin maksimal në një grup, sepse këto të dhëna janë të vërteta vetëm për grupin në tërësi, dhe jo për përbërësit e tij individualë.

Prandaj, tani është e nevojshme të llogariten totalet për grupimet më të larta ("Depot", "Llojet e magazinës") dhe totali.
Për këtë përdoret funksioni Llogaritni shprehjen me grup të grupuar:
VLERËSOJE SHPREHJEN E GRUPIMIT TË ARRAIT (EVALEXPRESSIONWITHGROUPARRAY)
Sintaksë:
ComputeExpressionGroupedArray(,)
Përshkrim:
Funksioni kthen një grup, çdo element i të cilit përmban rezultatin e vlerësimit të shprehjes për grupim sipas fushës së specifikuar.
Ndërtuesi i paraqitjes, kur gjeneron një paraqitje, i konverton parametrat e funksionit në termat e fushave të paraqitjes së paraqitjes së të dhënave. Për shembull, fusha e llogarisë do të konvertohet në grup të dhënash.
Ndërtuesi i layout, kur gjeneron shprehje për shfaqjen e një fushe të personalizuar, shprehja e së cilës përmban vetëm funksionin CalculateArrayWithGroupArray(), gjeneron shprehjen dalëse në atë mënyrë që informacioni dalës të renditet. Për shembull, për një fushë të personalizuar me një shprehje:

Llogaritni ExpressionWith GroupingArray ("Shuma(ShumaTurnover)", "Counterparty")
Ndërtuesi i paraqitjes do të gjenerojë shprehjen e mëposhtme për dalje:

ConcatenateStrings(Array(Order(CalculateGroup ExpressionValueTable("Shiko(Shuma(DataSet.AmountTurnover)),Amount(DataSet.AmountTurnover)","DataSet.Counterparty"),"2")))

Opsione:

Lloji: String. Shprehja që do të vlerësohet. Një varg, për shembull, Amount(AmountTurnover).

Lloji: String. Grupimi i shprehjeve të fushës – grupimi i shprehjeve të fushës të ndara me presje. Për shembull, Kontraktori, Pala.

Lloji: String. Një shprehje që përshkruan filtrin e aplikuar në regjistrimet e detajuara. Funksionet e përgjithshme nuk mbështeten në një shprehje. Për shembull, DeletionMark = False.

Lloji: String. Një shprehje që përshkruan filtrin e aplikuar në regjistrimet e grupit. Për shembull, Shuma (Shuma e qarkullimit) > &Parametri1.
Shembull:

Maksimumi (Llogaritni shprehjen me GroupingArray ("Shuma(ShumaTurnover)", "Kontraparta"));

Një përshkrim i hollësishëm i sintaksës së funksionit mund të gjendet në http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Tani për llogaritjen, do të kopjojmë fushën "Order", me vlera të ndryshme të "Llogarit nga ...", duke përdorur shprehjet e mëposhtme, vini re se në çdo nivel më të lartë, vlerat e niveleve të nivelit të ulët përdoren grupime.

Si rezultat, marrim ndërtimin e mëposhtëm:

përmbajtja
1 Gjuha e shprehjes së sistemit të përbërjes së të dhënave
2 Fjalë për fjalë
2.1 Linja
2.2 Numri
2.3 Data
2.4 Boolean
2.5 Kuptimi
3 Veprime me numra
3.1 Unary -
3.2 Unary +
3.3 Binar -
3.4 Binar +
3.5 Vepra artistike
3.6 Divizioni
3.7 Mbetja
4 Operacionet në vargje
4.1 Lidhja (Binar +)
4.2 Të ngjashme
5 Operacione krahasimi
5.1 E barabartë
5.2 Jo i barabartë
5.3 Më pak
5.4 Më shumë
5.5 Më pak se ose e barabartë
5.6 Më e madhe ose e barabartë
5.7 Operacioni B
5.8 Operacioni i kontrollit të pranisë së një vlere në një grup të dhënash
5.9 Operacioni testues NULL
5.10 Operacioni testues NULL
6 Operacione Boolean
6.1 Operacioni JO
6.2 Operimi DHE
6.3 OSE funksionimi
7 Funksionet agregate
7.1 Shuma
7.2 Sasia
7.3 Numri i të ndryshmeve
7.4 Maksimumi
7.5 Minimumi
7.6 Mesatare
8 Operacione të tjera
8.1 Operacioni SELECT
9 Rregulla për krahasimin e dy vlerave
10 Duke punuar me null
11 Prioritetet operative
12 Funksionet e gjuhës së shprehjes së sistemit të përbërjes së të dhënave
12.1 Llogaritni
12.2 Niveli
12.3 Numri i sekuencës
12.4 NumberInOrderInGroup
12.5 Formati
12.6 Periudha e fillimit
12.7 Fundi i periudhës
12.8 Shto Data
12.9 Data e ndryshimit
12.10 Nënvarg
12.11 Gjatësia e vargut
12.12 Viti
12.13 tremujori
12.14 Muaj
12.15 Dita e Vitit
12.16 Dita
12.17 Java
12.18 Dita e javës
ora 12.19
12.20 minuta
12.21 sekondë
12.22 Express
12.23 Po Jo
12.24 Funksionet e përgjithshme të modulit

Gjuha e shprehjes së sistemit të përbërjes së të dhënave

Gjuha e shprehjes së sistemit të përbërjes së të dhënave është krijuar për të regjistruar shprehjet e përdorura në pjesë të ndryshme të sistemit.

Shprehjet përdoren në nënsistemet e mëposhtme:

  • Skema e përbërjes së të dhënave - për përshkrimin e fushave të llogaritura, fushave totale, shprehjeve të lidhjeve, etj.;
  • cilësimet e përbërjes së të dhënave - për të përshkruar shprehjet e fushës me porosi;
  • faqosja e përbërjes së të dhënave - për përshkrimin e shprehjeve të lidhjes së të dhënave, përshkrimin e parametrave të paraqitjes, etj.

Literale

Shprehja mund të përmbajë fjalë për fjalë. Literale të mundshme të llojeve të mëposhtme:

  • Linjë;
  • Numri;
  • Data;
  • Boolean.

Linjë

Një varg literal shkruhet me karakteret """, për shembull:

"String fjalë për fjalë"


Nëse duhet të përdorni karakterin """ brenda vargut literal, duhet të përdorni dy karaktere të tilla.

Për shembull:

"fjalë për fjalë ""në thonjëza""

Numri

Numri shkruhet pa hapësira, në format dhjetor. Pjesa e pjesshme ndahet me karakterin ".". Për shembull:

Data

Një fjalë për fjalë e llojit të datës shkruhet duke përdorur tastin DATETIME. Pas kësaj fjale kyçe, në kllapa, të ndara me presje, renditen viti, muaji, dita, orët, minutat, sekondat. Tregimi i kohës nuk kërkohet.

Për shembull:
DATETIME(1975, 1, 06) - 6 janar 1975
DATETIME(2006, 12, 2, 23, 56, 57) - 2 dhjetor 2006, 23:56:57, 23:56:57

logjike

Vlerat Boolean mund të shkruhen duke përdorur fjalë për fjalë True (True), False (False).

Kuptimi

Për të specifikuar literale të llojeve të tjera (numërime të sistemit, të dhëna të paracaktuara), përdoret fjala kyçe Vlera, e ndjekur nga emri i fjalëpërfjalshëm në kllapa.
Vlera (Lloji i llogarisë. Aktiv)

Veprimet në numra

Unar -

Ky operacion është krijuar për të kthyer shenjën e një numri. Për shembull:
-Shitjet.Sasia

Unary +

Ky operacion nuk kryen asnjë operacion në numër. Për shembull:
+Shitjet.Sasia

Binar -

Ky operacion është krijuar për të llogaritur diferencën e dy numrave. Për shembull:
RemainsAndTurnovers.InitialRemainder - RemainsAndTurnovers.EndRemaining
Mbetjet dhe qarkullimet.Remainder fillestar - 100
400 – 357

Binar +

Ky operacion është krijuar për të llogaritur shumën e dy numrave. Për shembull:
Bilancet DHE Qarkullimet Bilanci fillestar + Bilancet DHE Qarkullimet Qarkullimi
RemainsAnd Turnovers.InitialRemainder + 100
400 + 357

Puna

Ky operacion është krijuar për të llogaritur prodhimin e dy numrave. Për shembull:
Nomenklatura.Çmimi * 1.2
2 * 3.14

Divizioni

Ky operacion është krijuar për të marrë rezultatin e pjesëtimit të një operand me një tjetër. Për shembull:
Nomenklatura.Çmimi / 1.2
2 / 3.14

Pjesa e mbetur e ndarjes

Ky operacion është krijuar për të marrë pjesën e mbetur të ndarjes së një operandi me një tjetër. Për shembull:
Nomenklatura.Çmimi % 1.2
2 % 3.14

Operacionet në vargje

Lidhja (binare +)

Ky operacion është krijuar për të lidhur dy vargje. Për shembull:
Nomenklatura.Neni + “: ”+ Nomenklatura.Emri

si

Ky operacion kontrollon nëse një varg përputhet me modelin e dhënë.

Vlera e operatorit LIKE është TRUE nëse vlera<Выражения>përputhet me modelin, dhe FALSE ndryshe.

Personazhet e mëposhtëm në<Строке_шаблона>kanë një kuptim të ndryshëm nga një karakter tjetër në varg:

  • % - përqindje: një sekuencë që përmban zero ose më shumë karaktere arbitrare;
  • _ - nënvizon: një karakter arbitrar;
  • […] - një ose më shumë karaktere në kllapa katrore: një karakter, cilido nga ato të listuara brenda kllapave katrore. Një numërim mund të përmbajë vargje, të tilla si a-z, që do të thotë çdo karakter brenda intervalit, duke përfshirë skajet e diapazonit;
  • [^…] - në kllapa katrore një ikonë mohimi e ndjekur nga një ose më shumë karaktere: çdo karakter përveç atyre të listuara pas ikonës së mohimit;

Çdo simbol tjetër nënkupton vetveten dhe nuk mbart ndonjë ngarkesë shtesë. Nëse është e nevojshme të shkruhet një nga personazhet e listuar si vetë, atëherë duhet të paraprihet<Спецсимвол>E specifikuar pas fjalës kyçe ESCAPE.

Për shembull, shabllon
“%ABC[abc]\_abc%” KARAKTER I VEÇANTË “\”

nënkupton një nënvarg që përbëhet nga një sekuencë karakteresh: shkronjat A; shkronjat B; shkronjat B; një shifër; një nga shkronjat a, b, c ose d; karakter nënvizues; shkronjat a; shkronjat b; letra në. Për më tepër, kjo sekuencë mund të vendoset duke filluar nga një pozicion arbitrar në varg.

Operacionet e krahasimit

Të barabartë

Ky operacion është krijuar për të krahasuar dy operandë për barazi. Për shembull:
Sales.Counterparty = Sales.NomenclatureFurnizuesi Kryesor

Jo të barabartë

Ky operacion është krijuar për të krahasuar dy operandë për pabarazi. Për shembull:
Shitjet.Shitjet nga kunderpartia.Nomenklatura Furnizuesi Kryesor

Më pak

Ky operacion është krijuar për të kontrolluar nëse operandi i parë është më i vogël se i dyti. Për shembull:
ShitjetAktuale.Shuma

Më shumë

Ky operacion është krijuar për të kontrolluar nëse operandi i parë është më i madh se i dyti. Për shembull:
SalesCurrent.Amount > SalesPast.Amount

Më pak ose e barabartë

Ky operacion është krijuar për të kontrolluar nëse operandi i parë është më i vogël ose i barabartë me i dyti. Për shembull:
ShitjetAktuale.Shuma

Më shumë ose e barabartë

Ky operacion është krijuar për të kontrolluar nëse operandi i parë është më i madh ose i barabartë me të dytin. Për shembull:
SalesCurrent.Sasia >= SalesPast.Shuma

Operacioni B

Ky operacion kontrollon praninë e një vlere në listën e kaluar të vlerave. Rezultati i operacionit është True nëse gjendet vlera, ose False ndryshe. Për shembull:
Artikulli B (&Artikulli 1, &Artikulli 2)

Operacioni për të kontrolluar nëse një vlerë ekziston në një grup të dhënash

Operacioni kontrollon praninë e një vlere në grupin e specifikuar të të dhënave. Të dhënat e vërtetimit duhet të përmbajë një fushë. Për shembull:
Shitjet Kontraktori Tek Kontraktorët

Operacioni i kontrollit NULL

Ky operacion kthen True nëse vlera është NULL. Për shembull:
Shitjet.Kontraktori ËSHTË NULL

Operacioni i kontrollit të një vlere për jo-NULL

Ky operacion kthen True nëse vlera nuk është NULL. Për shembull:
Shitjet.Kontraktori NUK ËSHTË NULL

Operacionet Boolean

Operacionet logjike pranojnë si operand shprehje të tipit Boolean.

Operacioni JO

Operatori NOT kthen True nëse operandi i tij është False dhe kthen False nëse operandi i tij është True. Për shembull:
NOT Document.Marrës = Dokument.Dërguesi

Operacioni DHE

Operacioni AND kthen True nëse të dy operandët janë True, dhe kthen False nëse njëri prej operandëve është False. Për shembull:
Dokumenti. Marrësi = Dokumenti. Dërguesi DHE Dokumenti. Marrësi = & Kontraktori

OSE operacion

Operacioni OR kthen True nëse njëri prej operandëve është True, dhe False nëse të dy operandët janë False. Për shembull:
Dokumenti. Marrësi = Dokumenti. Dërguesi OSE Dokumenti. Marrësi = &Kontraktori

Funksionet agregate

Funksionet agregate kryejnë disa veprime në një grup të dhënash.

Shuma

Funksioni Sum agregat llogarit shumën e vlerave të shprehjeve që i janë transmetuar si një argument për të gjitha regjistrimet e detajeve. Për shembull:
Shuma (Shitjet. Shuma e qarkullimit)

sasi

Funksioni Count numëron numrin e vlerave jo-nul. Për shembull:
Sasia (Shitjet. Kontraktori)

Numri i të ndryshmeve

Ky funksion numëron numrin e vlerave të dallueshme. Për shembull:
Sasia (Shitje të ndryshme. Kontraktor)

Maksimumi

Funksioni merr vlerën maksimale. Për shembull:
Maksimumi (Të mbeturat. Sasia)

Minimumi

Funksioni merr vlerën minimale. Për shembull:
Minimumi (Bilanci. Sasia)

Mesatare

Funksioni merr mesataren për vlerat jo-nul. Për shembull:
Mesatare (të mbetura. Sasia)

Operacione të tjera

Operacioni SELECT

Operacioni Select është krijuar për të zgjedhur një nga disa vlera në kushte të caktuara. Për shembull:
Zgjidhni Kur shuma > 1000 Pastaj Shuma tjetër 0 Fund

Rregullat për krahasimin e dy vlerave

Nëse llojet e vlerave të krahasuara ndryshojnë nga njëri-tjetri, atëherë marrëdhënia midis vlerave përcaktohet në bazë të përparësisë së llojeve:
NULL (më e ulëta);
boolean;
Numri;
Data;
Linjë;
Llojet e referencës

Marrëdhëniet midis llojeve të ndryshme të referencës përcaktohen bazuar në numrat e referencës së tabelave që korrespondojnë me një lloj të caktuar.

Nëse llojet e të dhënave përputhen, atëherë vlerat krahasohen sipas rregullave të mëposhtme:
tipi Boolean TRUE është më i madh se FALSE;
lloji Number ka rregullat e zakonshme të krahasimit për numrat;
për llojin Date, datat e mëparshme janë më të vogla se ato të mëvonshme;
për llojin String - krahasimet e vargjeve në përputhje me veçoritë kombëtare të përcaktuara të bazës së të dhënave;
Llojet e referencës krahasohen në bazë të vlerave të tyre (numri i rekordit, etj.).

Duke punuar me NULL

Çdo operacion në të cilin vlera e njërit prej operandëve është NULL do të prodhojë një rezultat NULL.

Ka përjashtime:
operacioni AND do të kthejë NULL vetëm nëse asnjë nga operandët nuk është False;
operacioni OR do të kthejë NULL vetëm nëse asnjë nga operandët nuk është True.

Prioritetet e Operacionit

Operacionet kanë prioritetet e mëposhtme (rreshti i parë ka prioritetin më të ulët):
OSE;
DHE;
JO;
B, ËSHTË NULL, NUK ËSHTË NULL;
=, <>, <=, <, >=, >;
Binare +, Binare – ;
*, /, %;
Unary +, Unary -.

Funksionet e gjuhës së shprehjes së sistemit të përbërjes së të dhënave

Llogaritni

Funksioni Calculate është krijuar për të llogaritur një shprehje në kontekstin e disa grupimeve. Funksioni ka parametrat e mëposhtëm:
Shprehje. Lloji String. Përmban një shprehje të llogaritur;
Grupimi. Lloji String. Përmban emrin e grupimit në kontekstin e të cilit do të vlerësohet shprehja. Nëse një varg bosh përdoret si emër grupimi, llogaritja do të kryhet në kontekstin e grupimit aktual. Nëse vargu GrandTotal përdoret si emër grupimi, llogaritja do të kryhet në kontekstin e totalit të përgjithshëm. Përndryshe, llogaritja do të kryhet në kontekstin e grupimit mëmë me atë emër. Për shembull:
Shuma(Shitjet.ShumaTurnover) / Llogaritni("Shuma(Shitjet.ShumaTurnover)", "TotalTotal")

Në këtë shembull, rezultati do të jetë raporti i shumës në fushën "Sales.AmountTurnover" të rekordit të grupimit me shumën e së njëjtës fushë në të gjithë paraqitjen.

Niveli

Funksioni është krijuar për të marrë nivelin aktual të regjistrimit.

Shembull:
Niveli ()

NumberInOrder

Merrni numrin vijues të radhës.

Shembull:
Numri i porosisë ()

NumberIn OrderInGrouping

Rikthen numrin vijues të radhës në grupimin aktual.

Shembull:
NumberInOrderInGroup()

Formati

Merrni vargun e formatuar të vlerës së kaluar.

Vargu i formatit është vendosur në përputhje me vargun e formatit 1C: Enterprise.

Opsione:
Kuptimi;
Formatoni vargun.

Shembull:
Formati (Faturat e shpenzimeve. AmountDoc, "NPV=2")

Fillimi i periudhës

Opsione:

    • Minuta;
    • Dita;
    • Nje jave;
    • Muaj;
    • tremujori;
    • Dekada;
    • Gjysem viti.

Shembull:
Fillimi i periudhës (DataKoha (2002, 10, 12, 10, 15, 34), "Muaji")

Rezultati:

01.10.2002 0:00:00

Periudha e Fundit

Funksioni është krijuar për të nxjerrë një datë specifike nga një datë e caktuar.

Opsione:

  • Data. Lloji Data. Data e dhënë;
  • Lloji i periudhës. Lloji String. Përmban një nga vlerat e mëposhtme:
    • Minuta;
    • Dita;
    • Nje jave;
    • Muaj;
    • tremujori;
    • Dekada;
    • Gjysem viti.

Shembull:
Periudha e Fundit (DataKoha (2002, 10, 12, 10, 15, 34), "Java")

Rezultati:

13.10.2002 23:59:59

AddDate

Funksioni është krijuar për t'i shtuar pak vlerë datës.

Opsione:

  • Lloji i zmadhimit. Lloji String. Përmban një nga vlerat e mëposhtme:
    • Minuta;
    • Dita;
    • Nje jave;
    • Muaj;
    • tremujori;
    • Dekada;
    • Gjysem viti.
Vlera - me sa dëshironi të rrisni datën. Lloji Numri. Pjesa e pjesshme shpërfillet.

Shembull:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Month", 1)

Rezultati:

12.11.2002 10:15:34

DifferenceDate

Funksioni është krijuar për të marrë diferencën midis dy datave.

Opsione:

  • Shprehje. Lloji Data. data origjinale;
  • Shprehje. Lloji Data. Data e zbritur;
  • Lloji i ndryshimit. Lloji String. Përmban një nga vlerat e mëposhtme:
    • E dyta;
    • Minuta;
    • Dita;
    • Muaj;
    • tremujori;

Shembull:
DIFERENCA E DATAVE(DATATIME(2002, 10, 12, 10, 15, 34),
DATETIME (2002, 10, 14, 9, 18, 06), "DITA")

Rezultati:

Nënstring

Ky funksion është krijuar për të zgjedhur një nënvarg nga një varg.

Opsione:

  • Linjë. Lloji String. Vargu nga i cili nxirret nënvargu;
  • Pozicioni. Lloji Numri. Pozicioni i karakterit nga i cili fillon nënvargu që do të nxirret nga vargu;
  • Gjatësia. Lloji Numri. Gjatësia e nënvargut të zgjedhur.

Shembull:
SUBSTRING (Llogaritë. Adresa, 1, 4)

Gjatësia e vargut

Funksioni është krijuar për të përcaktuar gjatësinë e një vargu.

Parametri:
Linjë. Lloji String. Vargu gjatësia e të cilit po përcaktohet.

Shembull:
String (Llogaritë. Adresa)

Ky funksion është krijuar për të nxjerrë vitin nga një vlerë e tipit Date.

Parametri:
Data. Lloji Data. Data me të cilën përcaktohet viti.

YEAR (përfshirë datën)

lagje

Ky funksion është krijuar për të nxjerrë numrin e tremujorit nga vlera e tipit Date. Numri i bllokut normalisht varion nga 1 në 4.

Parametri
Data. Lloji Data. Data në të cilën përcaktohet tremujori

QARTER (Faturë.Data)

Muaj

Ky funksion është krijuar për të nxjerrë numrin e muajit nga një vlerë e tipit Date. Numri i muajit është normalisht në rangun nga 1 në 12.
Data. Lloji Data. Data me të cilën përcaktohet muaji.
MUAJ (Faturë.Data)

Dita e Vitit

Ky funksion është krijuar për të marrë ditën e vitit nga një vlerë e tipit Date. Dita e vitit normalisht varion nga 1 në 365 (366).
Data. Lloji Data. Data me të cilën përcaktohet dita e vitit.
DITA E VITIT (Data e skadimit)

Dita

Ky funksion është krijuar për të marrë ditën e muajit nga një vlerë e tipit Date. Dita e muajit normalisht varion nga 1 deri në 31.
Data. Lloji Data. Data me të cilën përcaktohen ditët e muajit.
DITA (Data e skadimit)

Nje jave

Ky funksion është krijuar për të marrë numrin e javës së vitit nga një vlerë e tipit Date. Javët e vitit numërohen duke filluar nga 1.
Data. Lloji Data. Data në të cilën përcaktohen numrat e javës.
JAVA (Data e skadimit)

Ditë të javës

Ky funksion është krijuar për të marrë ditën e javës nga një vlerë e tipit Date. Dita e javës zakonisht varion nga 1 (e hënë) deri në 7 (e diel).
Data. Lloji Data. Data me të cilën përcaktohet dita e javës.
DITA E JAVËS (Data e skadimit)

Ky funksion është krijuar për të marrë orën e ditës nga një vlerë e tipit Date. Ora e ditës varion nga 0 në 23.
Data. Lloji Data. Data me të cilën përcaktohet ora e ditës.
HOUR (Data e skadimit)

Minuta

Ky funksion është krijuar për të marrë minutën e orës nga një vlerë e tipit Data. Minuta e orës varion nga 0 në 59.
Data. Lloji Data. Data me të cilën përcaktohet minuta e orës.
MINUTE (Data e skadimit)

Së dyti

Ky funksion është krijuar për të marrë sekondën e minutës nga një vlerë e tipit Data. Sekonda e një minutë varion nga 0 në 59.
Data. Lloji Data. Data në të cilën përcaktohen sekondat e minutës.
SEC (Data e skadimit)

shprehin

Ky funksion është krijuar për të nxjerrë një lloj nga një shprehje që mund të përmbajë një tip të përbërë. Nëse shprehja përmban një lloj të ndryshëm nga lloji i kërkuar, NULL do të kthehet.

Opsione:
Shprehja që do të konvertohet;
Treguesi i llojit. Lloji String. Përmban një varg tipi. Për shembull, "Numri", "String", etj. Përveç llojeve primitive, ky varg mund të përmbajë emrin e një tabele. Në këtë rast, do të bëhet një përpjekje për t'u shprehur në një referencë në tabelën e specifikuar.

Shembull:
Express(Të dhënat.Atributi1, "Numri(10,3)")

I pavlefshëm

Ky funksion kthen vlerën e parametrit të dytë nëse vlera e parametrit të parë është NULL.

Përndryshe, vlera e parametrit të parë do të kthehet.

Shembull:
IsNULL (Shuma (Shitjet. Shuma e qarkullimit), 0)

Funksionet e zakonshme të modulit

Shprehja e motorit të përbërjes së të dhënave mund të përmbajë thirrje funksionesh në modulet e konfigurimit të përbashkët global. Asnjë sintaksë shtesë nuk kërkohet për të thirrur funksione të tilla.

Shembull:
Emri i shkurtuar (Dokumentet.Lidhja, Dokumentet.Data, Dokumentet.Numri)

Në këtë shembull, funksioni "ShortName" do të thirret nga moduli i konfigurimit të përgjithshëm.

Vini re se përdorimi i funksioneve të modulit të përbashkët lejohet vetëm kur specifikohet opsioni përkatës i procesorit të përbërjes së të dhënave.

Gjithashtu, funksionet e zakonshme të modulit nuk mund të përdoren në shprehjet e fushës me porosi.

[Duhet të regjistroheni për të parë lidhjen]

Gjuha e shprehjes së sistemit të përbërjes së të dhënave

Gjuha e shprehjes së sistemit të përbërjes së të dhënave është krijuar për të regjistruar shprehjet e përdorura në pjesë të ndryshme të sistemit.

Shprehjet përdoren në nënsistemet e mëposhtme:

  • Skema e përbërjes së të dhënave - për përshkrimin e fushave të llogaritura, fushave totale, shprehjeve të lidhjeve, etj.;
  • cilësimet e përbërjes së të dhënave - për të përshkruar shprehjet e fushës me porosi;
  • faqosja e përbërjes së të dhënave - për përshkrimin e shprehjeve të lidhjes së të dhënave, përshkrimin e parametrave të paraqitjes, etj.

Literale

Shprehja mund të përmbajë fjalë për fjalë. Literale të mundshme të llojeve të mëposhtme:

  • Linjë;
  • Numri;
  • Data;
  • Boolean.

Linjë

Një varg literal shkruhet me karakteret """, për shembull:

"String fjalë për fjalë"

Nëse duhet të përdorni karakterin """ brenda vargut literal, duhet të përdorni dy karaktere të tilla.

Për shembull:

"fjalë për fjalë ""në thonjëza""

Numri

Numri shkruhet pa hapësira, në format dhjetor. Pjesa e pjesshme ndahet me karakterin ".". Për shembull:

10.5 200

Data

Një fjalë për fjalë e llojit të datës shkruhet duke përdorur tastin DATETIME. Pas kësaj fjale kyçe, në kllapa, të ndara me presje, renditen viti, muaji, dita, orët, minutat, sekondat. Tregimi i kohës nuk kërkohet.

Për shembull:

DATETIME(1975, 1, 06) - 6 janar 1975 DATETIME(2006, 12, 2, 23, 56, 57) - 2 dhjetor 2006, 23:56:57 sekonda, 23:56:57 sekonda

logjike

Vlerat Boolean mund të shkruhen duke përdorur fjalë për fjalë True (True), False (False).

Kuptimi

Për të specifikuar literale të llojeve të tjera (numërime të sistemit, të dhëna të paracaktuara), përdoret fjala kyçe Vlera, e ndjekur nga emri i fjalëpërfjalshëm në kllapa.

Vlera (Lloji i llogarisë. Aktiv)

Veprimet në numra

Unar -

Ky operacion është krijuar për të kthyer shenjën e një numri. Për shembull:

Shitjet.Sasia

Unary +

Ky operacion nuk kryen asnjë operacion në numër. Për shembull:

Shitjet.Sasia

Binar -

Ky operacion është krijuar për të llogaritur diferencën e dy numrave. Për shembull:

BalancesAndTurnovers.InitialBalance - BalancesAndTurnovers.EndBalance BalancesAndTurnovers.InitialBalance - 100 400 - 357

Binar +

Ky operacion është krijuar për të llogaritur shumën e dy numrave. Për shembull:

BilancetDheTurnovers.InitialBalance + BalancesAndTurnovers.Turnover BalancesAndTurnovers.InitialBalance + 100 400 + 357

Puna

Ky operacion është krijuar për të llogaritur prodhimin e dy numrave. Për shembull:

Nomenklatura.Çmimi * 1.2 2 * 3.14

Divizioni

Ky operacion është krijuar për të marrë rezultatin e pjesëtimit të një operand me një tjetër. Për shembull:

Nomenklatura.Çmimi / 1.2 2 / 3.14

Pjesa e mbetur e ndarjes

Ky operacion është krijuar për të marrë pjesën e mbetur të ndarjes së një operandi me një tjetër. Për shembull:

Nomenklatura.Çmimi % 1.2 2 % 3.14

Operacionet në vargje

Lidhja (binare +)

Ky operacion është krijuar për të lidhur dy vargje. Për shembull:

Nomenklatura.Neni + “: ”+ Nomenklatura.Emri

si

Ky operacion kontrollon nëse një varg përputhet me modelin e dhënë.

Vlera e operatorit LIKE është TRUE nëse vlera<Выражения>përputhet me modelin, dhe FALSE ndryshe.

Personazhet e mëposhtëm në<Строке_шаблона>kanë një kuptim të ndryshëm nga një karakter tjetër në varg:

  • % - përqindje: një sekuencë që përmban zero ose më shumë karaktere arbitrare;
  • _ - nënvizon: një karakter arbitrar;
  • […] - një ose më shumë karaktere në kllapa katrore: një karakter, cilido nga ato të listuara brenda kllapave katrore. Një numërim mund të përmbajë vargje, të tilla si a-z, që do të thotë çdo karakter brenda intervalit, duke përfshirë skajet e diapazonit;
  • [^…] - në kllapa katrore një ikonë mohimi e ndjekur nga një ose më shumë karaktere: çdo karakter përveç atyre të listuara pas ikonës së mohimit;

Çdo simbol tjetër nënkupton vetveten dhe nuk mbart ndonjë ngarkesë shtesë. Nëse është e nevojshme të shkruhet një nga personazhet e listuar si vetë, atëherë duhet të paraprihet<Спецсимвол>E specifikuar pas fjalës kyçe ESCAPE.

Për shembull, shabllon

“%ABC[abc]\_abc%” KARAKTER I VEÇANTË “\”

nënkupton një nënvarg që përbëhet nga një sekuencë karakteresh: shkronjat A; shkronjat B; shkronjat B; një shifër; një nga shkronjat a, b, c ose d; karakter nënvizues; shkronjat a; shkronjat b; letra në. Për më tepër, kjo sekuencë mund të vendoset duke filluar nga një pozicion arbitrar në varg.

Operacionet e krahasimit

Të barabartë

Ky operacion është krijuar për të krahasuar dy operandë për barazi. Për shembull:

Sales.Counterparty = Sales.NomenclatureFurnizuesi Kryesor

Jo të barabartë

Ky operacion është krijuar për të krahasuar dy operandë për pabarazi. Për shembull:

Shitjet.Kontraktori<>Shitjet.Nomenklatura Furnizuesi Kryesor

Më pak

Ky operacion është krijuar për të kontrolluar nëse operandi i parë është më i vogël se i dyti. Për shembull:

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

Më shumë

Ky operacion është krijuar për të kontrolluar nëse operandi i parë është më i madh se i dyti. Për shembull:

SalesCurrent.Amount > SalesPast.Amount

Më pak ose e barabartë

Ky operacion është krijuar për të kontrolluar nëse operandi i parë është më i vogël ose i barabartë me i dyti. Për shembull:

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

Më shumë ose e barabartë

Ky operacion është krijuar për të kontrolluar nëse operandi i parë është më i madh ose i barabartë me të dytin. Për shembull:

SalesCurrent.Sasia >= SalesPast.Shuma

Operacioni B

Ky operacion kontrollon praninë e një vlere në listën e kaluar të vlerave. Rezultati i operacionit është True nëse gjendet vlera, ose False ndryshe. Për shembull:

Artikulli B (&Artikulli 1, &Artikulli 2)

Operacioni për të kontrolluar nëse një vlerë ekziston në një grup të dhënash

Operacioni kontrollon praninë e një vlere në grupin e specifikuar të të dhënave. Të dhënat e vërtetimit duhet të përmbajë një fushë. Për shembull:

Shitjet Kontraktori Tek Kontraktorët

Operacioni i kontrollit NULL

Ky operacion kthen True nëse vlera është NULL. Për shembull:

Shitjet.Kontraktori ËSHTË NULL

Operacioni i kontrollit të një vlere për jo-NULL

Ky operacion kthen True nëse vlera nuk është NULL. Për shembull:

Shitjet.Kontraktori NUK ËSHTË NULL

Operacionet Boolean

Operacionet logjike pranojnë si operand shprehje të tipit Boolean.

Operacioni JO

Operatori NOT kthen True nëse operandi i tij është False dhe kthen False nëse operandi i tij është True. Për shembull:

NOT Document.Marrës = Dokument.Dërguesi

Operacioni DHE

Operacioni AND kthen True nëse të dy operandët janë True, dhe kthen False nëse njëri prej operandëve është False. Për shembull:

Dokumenti. Marrësi = Dokumenti. Dërguesi DHE Dokumenti. Marrësi = & Kontraktori

OSE operacion

Operacioni OR kthen True nëse njëri prej operandëve është True, dhe False nëse të dy operandët janë False. Për shembull:

Dokumenti. Marrësi = Dokumenti. Dërguesi OSE Dokumenti. Marrësi = &Kontraktori

Funksionet agregate

Funksionet agregate kryejnë disa veprime në një grup të dhënash.

Shuma

Funksioni Sum agregat llogarit shumën e vlerave të shprehjeve që i janë transmetuar si një argument për të gjitha regjistrimet e detajeve. Për shembull:

Shuma (Shitjet. Shuma e qarkullimit)

sasi

Funksioni Count numëron numrin e vlerave jo-nul. Për shembull:

Sasia (Shitjet. Kontraktori)

Numri i të ndryshmeve

Ky funksion numëron numrin e vlerave të dallueshme. Për shembull:

Sasia (Shitje të ndryshme. Kontraktor)

Maksimumi

Funksioni merr vlerën maksimale. Për shembull:

Maksimumi (Të mbeturat. Sasia)

Minimumi

Funksioni merr vlerën minimale. Për shembull:

Minimumi (Bilanci. Sasia)

Mesatare

Funksioni merr mesataren për vlerat jo-nul. Për shembull:

Mesatare (të mbetura. Sasia)

Operacione të tjera

Operacioni SELECT

Operacioni Select është krijuar për të zgjedhur një nga disa vlera në kushte të caktuara. Për shembull:

Zgjidhni Kur shuma > 1000 Pastaj Shuma tjetër 0 Fund

Rregullat për krahasimin e dy vlerave

Nëse llojet e vlerave të krahasuara ndryshojnë nga njëri-tjetri, atëherë marrëdhënia midis vlerave përcaktohet në bazë të përparësisë së llojeve:

  • NULL (më e ulëta);
  • boolean;
  • Numri;
  • Data;
  • Linjë;
  • Llojet e referencës

Marrëdhëniet midis llojeve të ndryshme të referencës përcaktohen bazuar në numrat e referencës së tabelave që korrespondojnë me një lloj të caktuar.

Nëse llojet e të dhënave përputhen, atëherë vlerat krahasohen sipas rregullave të mëposhtme:

  • tipi Boolean TRUE është më i madh se FALSE;
  • lloji Number ka rregullat e zakonshme të krahasimit për numrat;
  • për llojin Date, datat e mëparshme janë më të vogla se ato të mëvonshme;
  • për llojin String - krahasimet e vargjeve në përputhje me veçoritë kombëtare të përcaktuara të bazës së të dhënave;
  • Llojet e referencës krahasohen në bazë të vlerave të tyre (numri i rekordit, etj.).

Duke punuar me NULL

Çdo operacion në të cilin vlera e njërit prej operandëve është NULL do të prodhojë një rezultat NULL.

Ka përjashtime:

  • operacioni AND do të kthejë NULL vetëm nëse asnjë nga operandët nuk është False;
  • operacioni OR do të kthejë NULL vetëm nëse asnjë nga operandët nuk është True.

Prioritetet e Operacionit

Operacionet kanë prioritetet e mëposhtme (rreshti i parë ka prioritetin më të ulët):

  • B, ËSHTË NULL, NUK ËSHTË NULL;
  • =, <>, <=, <, >=, >;
  • Binare +, Binare – ;
  • *, /, %;
  • Unary +, Unary -.

Funksionet e gjuhës së shprehjes së sistemit të përbërjes së të dhënave

Llogaritni

Funksioni Calculate është krijuar për të llogaritur një shprehje në kontekstin e disa grupimeve. Funksioni ka parametrat e mëposhtëm:

  • Shprehje. Lloji String. Përmban një shprehje të llogaritur;
  • Grupimi. Lloji String. Përmban emrin e grupimit në kontekstin e të cilit do të vlerësohet shprehja. Nëse një varg bosh përdoret si emër grupimi, llogaritja do të kryhet në kontekstin e grupimit aktual. Nëse vargu GrandTotal përdoret si emër grupimi, llogaritja do të kryhet në kontekstin e totalit të përgjithshëm. Përndryshe, llogaritja do të kryhet në kontekstin e grupimit mëmë me atë emër. Për shembull:
Shuma(Shitjet.ShumaTurnover) / Llogaritni("Shuma(Shitjet.ShumaTurnover)", "TotalTotal")

Në këtë shembull, rezultati do të jetë raporti i shumës në fushën "Sales.AmountTurnover" të rekordit të grupimit me shumën e së njëjtës fushë në të gjithë paraqitjen.

Niveli

Funksioni është krijuar për të marrë nivelin aktual të regjistrimit.

Niveli ()

NumberInOrder

Merrni numrin vijues të radhës.

Numri i porosisë ()

NumberIn OrderInGrouping

Rikthen numrin vijues të radhës në grupimin aktual.

NumberInOrderInGroup()

Formati

Merrni vargun e formatuar të vlerës së kaluar.

Vargu i formatit është vendosur në përputhje me vargun e formatit 1C: Enterprise.

Opsione:

  • Kuptimi;
  • Formatoni vargun.

Formati (Faturat e shpenzimeve. AmountDoc, "NPV=2")

Fillimi i periudhës

Opsione:

    • Minuta;
    • Dita;
    • Nje jave;
    • Muaj;
    • tremujori;
    • Dekada;
    • Gjysem viti.

Fillimi i periudhës (DataKoha (2002, 10, 12, 10, 15, 34), "Muaji")

Rezultati:

01.10.2002 0:00:00

Periudha e Fundit

Funksioni është krijuar për të nxjerrë një datë specifike nga një datë e caktuar.

Opsione:

  • Data. Lloji Data. Data e dhënë;
  • Lloji i periudhës. Lloji String. Përmban një nga vlerat e mëposhtme:
    • Minuta;
    • Dita;
    • Nje jave;
    • Muaj;
    • tremujori;
    • Dekada;
    • Gjysem viti.

Periudha e Fundit (DataKoha (2002, 10, 12, 10, 15, 34), "Java")

Rezultati:

13.10.2002 23:59:59

AddDate

Funksioni është krijuar për t'i shtuar pak vlerë datës.

Opsione:

  • Lloji i zmadhimit. Lloji String. Përmban një nga vlerat e mëposhtme:
    • Minuta;
    • Dita;
    • Nje jave;
    • Muaj;
    • tremujori;
    • Dekada;
    • Gjysem viti.
  • Vlera - me sa dëshironi të rrisni datën. Lloji Numri. Pjesa e pjesshme shpërfillet.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Month", 1)

Rezultati:

12.11.2002 10:15:34

DifferenceDate

Funksioni është krijuar për të marrë diferencën midis dy datave.

Opsione:

  • Shprehje. Lloji Data. data origjinale;
  • Shprehje. Lloji Data. Data e zbritur;
  • Lloji i ndryshimit. Lloji String. Përmban një nga vlerat e mëposhtme:
    • E dyta;
    • Minuta;
    • Dita;
    • Muaj;
    • tremujori;

DATEDIFF(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME (2002, 10, 14, 9, 18, 06), "DITA")

Rezultati:

Nënstring

Ky funksion është krijuar për të zgjedhur një nënvarg nga një varg.

Opsione:

  • Linjë. Lloji String. Vargu nga i cili nxirret nënvargu;
  • Pozicioni. Lloji Numri. Pozicioni i karakterit nga i cili fillon nënvargu që do të nxirret nga vargu;
  • Gjatësia. Lloji Numri. Gjatësia e nënvargut të zgjedhur.

SUBSTRING (Llogaritë. Adresa, 1, 4)

Gjatësia e vargut

Funksioni është krijuar për të përcaktuar gjatësinë e një vargu.

Parametri:

  • Linjë. Lloji String. Vargu gjatësia e të cilit po përcaktohet.

String (Llogaritë. Adresa)

viti

Ky funksion është krijuar për të nxjerrë vitin nga një vlerë e tipit Date.

Parametri:

  • Data. Lloji Data. Data me të cilën përcaktohet viti.

YEAR (përfshirë datën)

lagje

Ky funksion është krijuar për të nxjerrë numrin e tremujorit nga vlera e tipit Date. Numri i bllokut normalisht varion nga 1 në 4.

Parametri

  • Data. Lloji Data. Data në të cilën përcaktohet tremujori
QARTER (Faturë.Data)

Muaj

Ky funksion është krijuar për të nxjerrë numrin e muajit nga një vlerë e tipit Date. Numri i muajit është normalisht në rangun nga 1 në 12.

  • Data. Lloji Data. Data me të cilën përcaktohet muaji.
MUAJ (Faturë.Data)

Dita e Vitit

Ky funksion është krijuar për të marrë ditën e vitit nga një vlerë e tipit Date. Dita e vitit normalisht varion nga 1 në 365 (366).

  • Data. Lloji Data. Data me të cilën përcaktohet dita e vitit.
DITA E VITIT (Data e skadimit)

Dita

Ky funksion është krijuar për të marrë ditën e muajit nga një vlerë e tipit Date. Dita e muajit normalisht varion nga 1 deri në 31.

  • Data. Lloji Data. Data me të cilën përcaktohen ditët e muajit.
DITA (Data e skadimit)

Nje jave

Ky funksion është krijuar për të marrë numrin e javës së vitit nga një vlerë e tipit Date. Javët e vitit numërohen duke filluar nga 1.

  • Data. Lloji Data. Data në të cilën përcaktohen numrat e javës.
JAVA (Data e skadimit)

Ditë të javës

Ky funksion është krijuar për të marrë ditën e javës nga një vlerë e tipit Date. Dita e javës zakonisht varion nga 1 (e hënë) deri në 7 (e diel).

  • Data. Lloji Data. Data me të cilën përcaktohet dita e javës.
DITA E JAVËS (Data e skadimit)

Ora

Ky funksion është krijuar për të marrë orën e ditës nga një vlerë e tipit Date. Ora e ditës varion nga 0 në 23.

  • Data. Lloji Data. Data me të cilën përcaktohet ora e ditës.
HOUR (Data e skadimit)

Minuta

Ky funksion është krijuar për të marrë minutën e orës nga një vlerë e tipit Data. Minuta e orës varion nga 0 në 59.

  • Data. Lloji Data. Data me të cilën përcaktohet minuta e orës.
MINUTE (Data e skadimit)

Së dyti

Ky funksion është krijuar për të marrë sekondën e minutës nga një vlerë e tipit Data. Sekonda e një minutë varion nga 0 në 59.

  • Data. Lloji Data. Data në të cilën përcaktohen sekondat e minutës.
SEC (Data e skadimit)

shprehin

Ky funksion është krijuar për të nxjerrë një lloj nga një shprehje që mund të përmbajë një tip të përbërë. Nëse shprehja përmban një lloj të ndryshëm nga lloji i kërkuar, NULL do të kthehet.

Opsione:

  • Shprehja që do të konvertohet;
  • Treguesi i llojit. Lloji String. Përmban një varg tipi. Për shembull, "Numri", "String", etj. Përveç llojeve primitive, ky varg mund të përmbajë emrin e një tabele. Në këtë rast, do të bëhet një përpjekje për t'u shprehur në një referencë në tabelën e specifikuar.

Express(Të dhënat.Atributi1, "Numri(10,3)")

I pavlefshëm

Ky funksion kthen vlerën e parametrit të dytë nëse vlera e parametrit të parë është NULL.

Përndryshe, vlera e parametrit të parë do të kthehet.

IsNULL (Shuma (Shitjet. Shuma e qarkullimit), 0)

Funksionet e zakonshme të modulit

Shprehja e motorit të përbërjes së të dhënave mund të përmbajë thirrje funksionesh në modulet e konfigurimit të përbashkët global. Asnjë sintaksë shtesë nuk kërkohet për të thirrur funksione të tilla.

Në këtë shembull, funksioni "ShortName" do të thirret nga moduli i konfigurimit të përgjithshëm.

Vini re se përdorimi i funksioneve të modulit të përbashkët lejohet vetëm kur specifikohet opsioni përkatës i procesorit të përbërjes së të dhënave.

Gjithashtu, funksionet e zakonshme të modulit nuk mund të përdoren në shprehjet e fushës me porosi.

Një nga fushat më të rëndësishme të softuerit të biznesit është raportimi. Sa e lehtë është të personalizosh një raport ekzistues me nevojat në ndryshim të biznesit (dhe legjislacionit) ose të bësh një të ri mund të varet (dhe jo në kuptimin figurativ!) Fati i biznesit, nëse është një raport për zyrën e taksave. ose një diagramë të varësisë së kërkesës për mallra nga stina dhe faktorë të tjerë. Një sistem raportimi i fuqishëm dhe fleksibël që ju lejon të nxirrni lehtësisht të dhënat e duhura nga sistemi, t'i paraqisni ato në një formë të kuptueshme, duke i lejuar përdoruesit fundor të rikonfigurojë raportin standard për t'i parë të dhënat në një dritë të re - ky është ideali që çdo sistemi i biznesit duhet të përpiqet për.

Në platformën 1C: Enterprise, një mekanizëm i quajtur Sistemi i Përbërjes së të Dhënave (shkurt ACS) është përgjegjës për gjenerimin e raporteve. Në këtë artikull, ne do të përpiqemi të japim një përshkrim të shkurtër të idesë dhe arkitekturës së mekanizmit ACS dhe aftësive të tij.


ACS është një mekanizëm i bazuar në përshkrimin deklarativ të raporteve. ACS është krijuar për të krijuar raporte dhe për të shfaqur informacione që kanë një strukturë komplekse. Nga rruga, përveç zhvillimit të raporteve, mekanizmi ACS përdoret gjithashtu në 1C: Enterprise në një listë dinamike, një mjet për shfaqjen e informacionit të listës me funksionalitet të pasur (shfaqja e listave të sheshta dhe hierarkike, formatimi i rreshtave të kushtëzuar, grupimi, etj.) .

Pak histori

Në versionin e parë të platformës 1C:Enterprise 8, versioni 8.0, raportet u bënë si më poshtë:
  1. Një ose më shumë pyetje janë shkruar në gjuhën e pyetjeve 1C (gjuhë e ngjashme me SQL, më shumë rreth saj më poshtë).
  2. U shkrua kod që transferoi rezultatet e pyetjeve të ekzekutuara në një dokument ose grafik të fletëllogaritëse. Kodi mund të bëjë gjithashtu punë që nuk mund të bëhet në një pyetje - për shembull, ai llogarit vlerat duke përdorur gjuhën e integruar 1C.
Qasja është e drejtpërdrejtë, por jo më e përshtatshme - ka një minimum cilësimesh vizuale, gjithçka duhet të programohet dorë më dorë. Dhe një nga kartat atu në atë kohë të platformës krejtësisht të re 1C: Enterprise 8 ishte minimizimi i sasisë së kodit në zgjidhjen e aplikacionit që duhet të shkruhet manualisht, veçanërisht për shkak të dizajnit vizual. Do të ishte logjike të ndiqni të njëjtën rrugë në mekanizmin e raportimit. Kjo u bë duke zhvilluar një mekanizëm të ri - Sistemi i Përbërjes së të Dhënave.

Një nga idetë që formoi bazën e ACS ishte fleksibiliteti dhe personalizimi i raporteve, i cili është i disponueshëm si për zhvilluesin ashtu edhe për përdoruesin përfundimtar. Në mënyrë ideale, ne do të dëshironim t'i jepnim përdoruesit fundor akses në të njëjtin grup mjetesh për hartimin e raporteve si zhvilluesi. Do të ishte logjike të vihej në dispozicion një grup i vetëm mjetesh për të gjithë. Epo, meqenëse mjetet përfshijnë pjesëmarrjen e përdoruesit përfundimtar, do të thotë që përdorimi i programimit në to duhet të hiqet në minimum (më e mira nga të gjitha, të eliminohet plotësisht), dhe cilësimet vizuale duhet të përdoren në maksimum.

Formulimi i problemit

Detyra para ekipit të zhvillimit ishte kjo - të krijonte një sistem raportimi të bazuar jo në një algoritmi (dmth. përmes shkrimit të kodit), por në një qasje deklarative për krijimin e raporteve. Dhe ne besojmë se problemi është zgjidhur me sukses. Në përvojën tonë, rreth 80% e raportimit të kërkuar mund të zbatohet duke përdorur ACS pa një rresht të vetëm kodi (përveç shkrimit të formulave për fushat e llogaritura), në pjesën më të madhe - përmes cilësimeve vizuale.
Zhvillimi i versionit të parë të ACS zgjati rreth 5 vjet njerëz.

Dy gjuhë

Dy gjuhë janë të përfshira në krijimin e raporteve. Njëra është gjuha e pyetjes e përdorur për të marrë të dhënat. E dyta është gjuha e shprehjes së përbërjes së të dhënave, e krijuar për të shkruar shprehje të përdorura në pjesë të ndryshme të sistemit, për shembull, në cilësimet e përbërjes së të dhënave, për të përshkruar shprehjet e fushës me porosi.

Gjuha e pyetjes

Gjuha e pyetjes bazohet në SQL dhe zotërohet lehtësisht nga ata që e njohin SQL. Shembulli i kerkeses:

Është e lehtë të shikosh analoge të seksioneve standarde të pyetjeve SQL - SELECT, FROM, GROUP BY, ORDER BY.

Në të njëjtën kohë, gjuha e pyetjes përmban një numër të konsiderueshëm zgjerimesh që synojnë të pasqyrojnë specifikat e detyrave financiare dhe ekonomike dhe në uljen maksimale të përpjekjeve për të zhvilluar zgjidhje të aplikuara:

  • Referencimi i fushave përmes një pike. Nëse fushat e çdo tabele janë të një lloji referimi (ato ruajnë lidhje me objektet e një tabele tjetër), zhvilluesi mund t'u referohet atyre në tekstin e pyetjes përmes ".", ndërsa numri i niveleve të foleve të lidhjeve të tilla nuk kufizohet nga sistemi (për shembull, Urdhri i Klientit. Marrëveshja. Organizimi. Telefoni).
  • Formimi shumëdimensional dhe shumënivelësh i rezultateve. Totalet dhe nëntotalet formohen duke marrë parasysh grupimin dhe hierarkinë, nivelet mund të anashkalohen në një mënyrë arbitrare me përmbledhjen e nëntotaleve, sigurohet ndërtimi i saktë i totaleve sipas dimensioneve kohore.
  • Mbështetje për tabelat virtuale. Tabelat virtuale të ofruara nga sistemi ju lejojnë të merrni të dhëna pothuajse të gatshme për shumicën e detyrave të aplikacionit pa pasur nevojë të shkruani pyetje komplekse. Kështu, një tabelë virtuale mund të sigurojë të dhëna për bilancin e mallrave në kontekstin e periudhave në një moment të caktuar kohor. Në të njëjtën kohë, tabelat virtuale shfrytëzojnë sa më shumë informacionin e ruajtur, për shembull, totalet e llogaritura më parë, etj.
  • Tavolina të përkohshme. Gjuha e pyetjeve ju lejon të përdorni tabela të përkohshme në pyetje. Me ndihmën e tyre, ju mund të përmirësoni performancën e pyetjeve, në disa raste të zvogëloni numrin e bllokimeve dhe ta bëni tekstin e pyetjes më të lehtë për t'u lexuar.
  • kërkesat e grupit. Për punë më të përshtatshme me tabela të përkohshme, gjuha e pyetjes mbështet punën me pyetjet e grupit - kështu, krijimi i një tabele të përkohshme dhe përdorimi i saj vendosen në një pyetje. Një kërkesë grupi është një sekuencë kërkesash të ndara me një pikëpresje (";"). Kërkesat në grup ekzekutohen njëra pas tjetrës. Rezultati i ekzekutimit të një pyetjeje grupi, në varësi të metodës së përdorur, do të jetë ose rezultati i kthyer nga pyetja e fundit e grupit, ose një grup i rezultateve të të gjitha kërkesave të grupit në rendin në të cilin ndjekin kërkesat në grup. .
  • Marrja e pamjeve të fushës së referencës. Çdo tabelë objekti (në të cilën ruhet një direktori ose dokument) ka një fushë virtuale - "Përfaqësimi". Kjo fushë përmban një paraqitje tekstuale të objektit dhe lehtëson punën e reporterit. Pra, për një dokument, kjo fushë përmban të gjitha informacionet kryesore - emrin e llojit të dokumentit, numrin dhe datën e tij (për shembull, "Shitje 000000003 nga 07/06/2017 17:49:14"), duke kursyer zhvilluesin nga duke shkruar një fushë të llogaritur.
  • dhe etj.
Motori i pyetjeve modifikon automatikisht pyetjen, duke marrë parasysh rolet e përdoruesit në emër të të cilit është ekzekutuar pyetja (d.m.th., përdoruesi do të shohë vetëm të dhënat që ai ka të drejtë të shohë) dhe opsionet funksionale (d.m.th., në përputhje me ai i konfiguruar në funksionalitetin e zgjidhjes së aplikacionit).

Ekzistojnë gjithashtu shtesa të veçanta të gjuhës së pyetjeve për SKD. Zgjerimi kryhet duke përdorur udhëzime të veçanta sintaksore të mbyllura në kllapa kaçurrelë dhe të vendosura drejtpërdrejt në tekstin e kërkesës. Me ndihmën e shtesave, zhvilluesi përcakton se cilat operacione do të jetë në gjendje të kryejë përdoruesi përfundimtar duke personalizuar raportin.

Për shembull:

  • ZGJIDHNI. Kjo fjali përshkruan fushat që përdoruesi do të jetë në gjendje të zgjedhë për dalje. Pas kësaj fjale kyçe, pseudonimet e fushave nga lista kryesore e përzgjedhjes së pyetjeve, të cilat do të jenë të disponueshme për personalizim, renditen të ndara me presje. Shembull: (Nomenklatura SELECT, Magazina)
  • KU. Përshkruan fushat në të cilat përdoruesi mund të aplikojë përzgjedhjen. Ky propozim përdor fushat e tabelës. Përdorimi i pseudonimeve të fushave të listës së përzgjedhur nuk lejohet. Çdo pjesë bashkimi mund të përmbajë elementin e vet WHERE. Shembuj: (WHERE Nomenklature.*, Warehouse ), (WHERE Document.Date >= &StartDate, Document.Date<= &ДатаКонца}
  • dhe etj.
Një shembull i përdorimit të shtesave:

Gjuha e shprehjes së përbërjes së të dhënave

Gjuha e shprehjes së përbërjes së të dhënave është krijuar për të shkruar shprehjet e përdorura, në veçanti, për të përshkruar shprehjet e fushës me porosi. ACS ju lejon të përcaktoni fushat e personalizuara në një raport duke përdorur ose shprehjet tuaja ose grupe opsionesh me kushte për zgjedhjen e tyre (analoge me CASE në SQL). Fushat e personalizuara janë analoge me fushat e llogaritura. Ato mund të vendosen si në konfigurues ashtu edhe në modalitetin 1C: Enterprise, por funksionet e moduleve të zakonshme nuk mund të përdoren në shprehjet e fushës me porosi. Prandaj, fushat e personalizuara janë më shumë për përdoruesin sesa për zhvilluesin.

Shembull:

Procesi i krijimit të një raporti mbi ACS

Kur krijojmë një raport, duhet të krijojmë një plan urbanistik që përcakton se si do të shfaqen të dhënat në raport. Ju mund të krijoni një plan urbanistik bazuar në një skemë të përbërjes së të dhënave. Skema e përbërjes së të dhënave përshkruan thelbin e të dhënave që i jepen raportit (nga mund t'i merrni të dhënat dhe si mund ta kontrolloni përbërjen e tij). Skema e përbërjes së të dhënave është baza mbi të cilën mund të gjenerohen të gjitha llojet e raporteve. Skema e përbërjes së të dhënave mund të përmbajë:
  • teksti i kërkesës me udhëzimet e sistemit të përbërjes së të dhënave;
  • përshkrimi i disa grupeve të të dhënave;
  • një përshkrim të detajuar të fushave të disponueshme;
  • përshkrimi i marrëdhënieve ndërmjet disa grupeve të të dhënave;
  • përshkrimi i parametrave të marrjes së të dhënave;
  • përshkrimi i paraqitjeve dhe grupimeve të fushave;
  • dhe etj.

Për shembull, mund të shtoni një pyetje në skemën e përbërjes së të dhënave si një grup të dhënash dhe të telefononi konstruktorin e pyetjes, i cili ju lejon të hartoni grafikisht një pyetje me kompleksitet arbitrar:

Rezultati i ekzekutimit të ndërtuesit të pyetjeve do të jetë teksti i pyetjes (në gjuhën e pyetjes 1C: Enterprise). Ky tekst mund të rregullohet manualisht nëse është e nevojshme:

Mund të ketë disa grupe të dhënash në një skemë të përbërjes së të dhënave, grupet e të dhënave mund të lidhen në një plan urbanistik në një mënyrë arbitrare, mund të shtohen fushat e llogaritura, mund të vendosen parametrat e raportit, etj. Vlen të përmendet një veçori interesante e mekanizmit të pyetjeve në 1C: Enterprise. Pyetjet përfundimisht përkthehen në një dialekt të SQL specifike për DBMS me të cilin aplikacioni punon drejtpërdrejt. Në përgjithësi, ne përpiqemi të përdorim në maksimum aftësitë e serverëve DBMS (jemi të kufizuar nga fakti se përdorim vetëm ato aftësi që janë të disponueshme njëkohësisht në të gjitha DBMS të mbështetura nga platforma 1C: Enterprise - MS SQL, Oracle, IBM DB2 , PostgreSQL). Kështu, në nivelin e pyetjes në fushat e llogaritura, ne mund të përdorim vetëm ato funksione që përkthehen në SQL.

Por në nivelin e skemës së përbërjes së të dhënave, ne tashmë mund të shtojmë fusha të personalizuara dhe të përdorim funksione në to në gjuhën e integruar të zhvillimit 1C (përfshirë ato të shkruara nga ne), gjë që zgjeron shumë aftësitë e raporteve. Teknikisht, duket kështu - gjithçka që mund të përkthehet në SQL përkthehet në SQL, pyetja ekzekutohet në nivelin DBMS, rezultatet e pyetjes vendosen në kujtesën e serverit të aplikacionit 1C dhe ACS llogarit vlerat të fushave të llogaritura për çdo rekord, formulat e të cilit janë shkruar në gjuhën 1C.


Shtimi i fushave të personalizuara

Ju mund të shtoni çdo numër tabelash dhe grafikësh në raport:


Projektuesi i raportit


Raportoni në kohën e ekzekutimit

Me ndihmën e ACS, përdoruesi mund të shtojë zgjedhje komplekse në raport (të cilat do t'i shtohen pyetjes në vendet e duhura), dizajn të kushtëzuar (që ju lejon të formatoni ndryshe - fontin, ngjyrën, etj. - fushat e daljes në varësi të tyre vlerat) dhe shumë më tepër.

Përshkruani shkurtimisht procesin e ndërtimit dhe gjenerimit të një raporti si më poshtë:

  • Zhvilluesi në kohën e projektimit me ndihmën e projektuesit (ose në kohën e ekzekutimit me ndihmën e kodit) përcakton skemën e paraqitjes së të dhënave:
    • Teksti i kërkesës/kërkesave
    • Përshkrimi i fushave të llogaritura
    • Marrëdhëniet ndërmjet pyetjeve (nëse ka më shumë se një)
    • Opsionet e raportit
    • Cilësimet e parazgjedhura
    • etj.
  • Cilësimet e mësipërme ruhen në paraqitje
  • Përdoruesi hap një raport
    • Mundësisht bën cilësime shtesë (për shembull, ndryshon vlerat e parametrave)
    • Shtyp butonin "Generate".
  • Cilësimet e përdoruesit zbatohen për skemën e përbërjes së të dhënave të përcaktuar nga zhvilluesi.
  • Formohet një plan urbanistik i ndërmjetëm i përbërjes së të dhënave, që përmban udhëzime se nga mund të merren të dhënat. Në veçanti, pyetjet e specifikuara në paraqitje korrigjohen. Pra, fushat që nuk përdoren në raport hiqen nga kërkesa (kjo bëhet për të minimizuar sasinë e të dhënave të marra). Të gjitha fushat që përdoren në formulat e llogaritura të fushave i shtohen pyetjes.
  • Përpunuesi i përbërjes së të dhënave është përfshirë në rast. Procesori i paraqitjes ekzekuton pyetje, lidh grupet e të dhënave, llogarit vlerat e fushave dhe burimeve të llogaritura, kryen grupimin. Me një fjalë, ai bën të gjitha llogaritjet që nuk janë kryer në nivel DBMS.
  • Procesori i daljes së të dhënave lëshon një kërkesë për ekzekutim dhe nxjerr të dhënat e marra në një dokument spreadsheet, grafik, etj.


Procesi i gjenerimit të një raporti nga mekanizmi ACS

Ne përpiqemi të minimizojmë sasinë e të dhënave raportuese të transferuara nga serveri në aplikacionin e klientit. Kur shfaqim të dhëna në një dokument spreadsheet, kur hapim një dokument spreadsheet, ne transferojmë nga serveri vetëm ato rreshta që përdoruesi sheh në fillim të dokumentit. Ndërsa përdoruesi lëviz përgjatë vijave të dokumentit, të dhënat që mungojnë shkarkohen nga serveri te klienti.

Cilësimet e përdoruesit

Të gjitha mjetet ACS janë të disponueshme si për zhvilluesin ashtu edhe për përdoruesin përfundimtar. Por praktika ka treguar se përdoruesi përfundimtar shpesh është i frikësuar nga bollëku i aftësive të veglave. Për më tepër, në shumicën e rasteve, përdoruesi përfundimtar nuk ka nevojë për të gjithë fuqinë e cilësimeve - mjafton që ai të ketë qasje të shpejtë në vendosjen e një ose dy parametrave të raportit (për shembull, periudhën dhe palën tjetër). Duke filluar me një version të caktuar të platformës, zhvilluesi i raportit ka mundësinë të shënojë se cilat cilësime të raportit janë në dispozicion të përdoruesit. Kjo bëhet duke përdorur kutinë e kontrollit "Përfshi në cilësimet e përdoruesit". Gjithashtu, cilësimet e raportit tani kanë një flamur "Modaliteti i ekranit" që merr një nga tre vlerat:
  • Qasje e shpejtë. Cilësimi do të shfaqet drejtpërdrejt në krye të dritares së raportit.
  • E zakonshme. Cilësimi do të jetë i disponueshëm përmes butonit "Cilësimet".
  • I padisponueshem. Cilësimi nuk do të jetë i disponueshëm për përdoruesin përfundimtar.


Vendosja e modalitetit të shfaqjes në kohën e projektimit


Shfaqni cilësimin në modalitetin e Qasjes së Shpejtë në kohën e ekzekutimit (nën butonin Generate)

Planet e zhvillimit

Një nga prioritetet në zhvillimin e ACS për ne është thjeshtimi i cilësimeve të përdoruesit. Përvoja jonë tregon se për disa përdorues të fundit, puna me cilësimet e përdoruesit është ende një punë serioze. Ne e kemi parasysh këtë dhe punojmë në këtë drejtim. Prandaj, do të bëhet gjithashtu më e lehtë për zhvilluesit të punojnë me ACS, sepse ne, si më parë, duam të ofrojmë një paketë të vetme mjetesh për konfigurimin e raporteve si për zhvilluesin ashtu edhe për përdoruesin përfundimtar.

Përshëndetje, lexuesit e mi të dashur! Le të vazhdojmë me bazat e sistemit të paraqitjes. Në këtë seri artikujsh, mësuat ndryshimet midis një grupi të dhënash - një pyetje kundrejt një pyetjeje të rregullt. Ju shikoni gjithashtu parametrat e tabelave virtuale dhe jeni njohur me zgjerimin e gjuhës së pyetjes. Tani hidhini një sy përmbajtjes që do të mësoni këtu. Paç fat!

Funksionet e gjuhës së shprehjes SKD.

Kur një pyetje ndërtohet në paraqitje, funksionet e rregullta të gjuhës së pyetjes përdoren brenda saj. Por ACS ju lejon të përcaktoni funksione shtesë. Disa funksione janë të ngjashme me ato në gjuhën e pyetjes, por përdorin një sintaksë të ndryshme. Për shembull, funksioni "Periudha e fillimit":

Fillimi i periudhës (DataKoha (2002, 10, 12, 10, 15, 34), "Muaji")

Ky funksion ndryshon nga funksioni i gjuhës së pyetjes në parametrin e dytë. Këtu përdoret vargu "Month", ndërsa në funksionin e gjuhës së pyetjes përdoret fjalë për fjalë MUAJ.

Përshkrimi i funksioneve mund të gjendet duke hapur Konfiguratorin: Ndihmë -> Përmbajtja -> Sistemi i përbërjes së të dhënave -> Gjuha e shprehjes së sistemit të përbërjes së të dhënave -> Funksionet e gjuhës së shprehjes së sistemit të përbërjes së të dhënave.

Ku mund t'i përdor funksionet e gjuhës së shprehjes SKD nëse ato nuk mund të përdoren në gjuhën e pyetjes?

  • Në një skedë në kolonën Expression.
  • Në skedën "Parametrat" ​​në kolonën "Shprehje".
  • Në skedën "Cilësimet" në kolonën "Fushat e personalizuara". Përdoruesi mund të krijojë fushat e tij dhe të shkruajë shprehje në to.
  • Në skedën "Setet e të dhënave", në kolonat Shiko shprehjet dhe renditja e shprehjeve.
    Këto janë shprehje që krijojnë fushat e përbërjes së të dhënave.

Karakteristikat e SKD.

Kur përdorni një pyetje të të dhënave, shfaqen një sërë veçorish
kur optimizoni SKD.

  • Kërkesa që rezulton reduktohet sipas cilësimeve të variantit të raportit,
    sepse disa fusha hiqen në pyetjen që rezulton.
  • Përveç kësaj, tabelat gjithashtu mund të fshihen nga pyetja që rezulton nëse tabelat e përkohshme përshkruhen në pyetje dhe ato nuk përdoren askund tjetër.
  • E njëjta gjë vlen edhe për grupet e të dhënave, nëse kemi përshkruar shumë grupe të dhënash në skemë, por përdorim vetëm disa prej tyre, atëherë sistemi do të marrë informacion vetëm për grupet e të dhënave të përdorura dhe pjesa tjetër e grupeve të të dhënave do të hiqet nga faqosja e përbërjes së të dhënave që rezulton.

A mund të kenë këto veçori ndonjë pasojë negative? Po, pasi në disa raste kërkesa që kemi kërkuar nuk do të bëhet. Prandaj, duhet t'i merrni parasysh këto veçori kur ndërtoni pyetje komplekse.

Cilësimet bazë për fushat ACS.

Në skedën "Grupet e të dhënave", kur krijoni një grup të dhënash të llojit të pyetjes, fushat e paraqitjes plotësohen automatikisht. Siç mund ta shihni, fushat përmbajnë një numër të madh cilësimesh.

Kolona "fusha" përmban emrin e fushës, e cila merret nga infobaza (IB).
Një vlerë e pandryshueshme që lidhet me kërkesën. Përputhet me pseudonimin e kërkesës.

Por ka një veçori. Nëse ndryshojmë pseudonimin, për shembull, "Nomenklatura", në Ndërtuesin e pyetjeve, në skedën "Combinations / Aliases" në kolonën "Emri i fushës", në "Produkt", atëherë një fushë e re "Produkt" do të shfaqet në skeda "Setet e të dhënave" të paraqitjes, por në të njëjtën kohë mbetet fusha "Nomenklatura". Kjo për shkak se është vendosur flamuri "AutoComplete". Me këtë cilësim, sistemi nuk mund të kuptojë se fusha "Produkt" është e njëjtë me fushën "Nomenklatura", kështu që, për çdo rast, fusha shtohet dy herë.

A mund të dëmtojë një dizajn i tillë përvojën e përdoruesit? Po. Në fund të fundit, dy fusha "Produkt" dhe "Nomenklatura" do të shfaqen në cilësimet e variantit të raportit. Nuk do të jetë e qartë për përdoruesin se si ndryshojnë ato, megjithëse këto zgjedhje janë identike.

Edhe pse mund të përjashtoni paraqitjen e fushës "Nomenklatura" duke kontrolluar kutitë "Kufizimi i fushës" - "Kushti" dhe "Kufizimi i atributeve" - ​​"Kushti" në skedën "Grupet e të dhënave" në cilësimet e fushës. Përveç kësaj, mund të zgjidhni flamurin "Autocomplete" dhe të plotësoni të gjitha fushat në Query Builder në skedën "Data Composition".

Kolona "Rrugë" specifikon se si do t'i referohemi fushës në të gjitha skedat e përbërjes së të dhënave. Një vlerë që mund ta ndryshoni sipas dëshirës tuaj. Hapësirat lejohen në emrin e shtegut, por një emër i tillë është i mbyllur në kllapa katrore. Por është më mirë që shtegu të jetë pa hapësira, pasi kjo është një fushë shërbimi. Është më mirë të ndryshoni titullin duke kontrolluar kutinë në kolonën "Titulli".

Pse ishte e nevojshme të krijoheshin dy fusha të ndryshme "Fusha" dhe "Rruga", nëse emrat e tyre janë pothuajse gjithmonë të njëjtë? Sepse përdoren shumë grupe të dhënash. Për shembull, nëse grupi i dytë i të dhënave do të jetë një bashkim, atëherë në mënyrë që të përputhen me fushat duhet të keni të njëjtat shtigje. Në raste të tjera, shtigjet mund të lihen të pandryshuara nëse emrat e tyre janë të qartë.

Ju mund të përdorni metodën e mëposhtme për të punuar me kolonën "Shtegu". Duke specifikuar një shteg, mund të krijoni atribute të elementit virtual të mbivendosur. Për shembull, le të vendosim atributin "Cilësi" brenda atributit "Produkt". Le të ndryshojmë fushën "Rruga" e atributit "Cilësi" në "Produkt.Cilësi". Tani në skedën "Cilësimet" në skedën "Fushat e zgjedhura", nuk do të gjejmë fushën "Cilësia", por ajo do të shfaqet brenda fushës "Produkt".

Le të hedhim një vështrim më të afërt në cilësimet e kufizimit të aksesit. Siç mund ta shihni, ekzistojnë dy rreshta për të kufizuar aksesin në kolona "Limiti i fushës" dhe "Kufizimi i rekuizitave".

Kolonat që kufizojnë fushat SKD

Kolona "Kufizimi i fushës" do të thotë se kufizimet do të vendosen në vetë fushën. Kolona "Kufizimi i detajeve" do të thotë se do të vendosen kufizime në detajet e ndërlidhura të kësaj fushe, nëse fusha i përket një lloji kompleks të dhënash, si p.sh. një kërkim ose dokument.

Çdo rresht është i ndarë në katër kolona të tjera. Nëse një flamur është vendosur për një fushë ose atribute të kësaj fushe:

  • Fusha, atëherë ato nuk do të jenë të disponueshme për zgjedhje në skedën "Cilësimet" në skedën "Fushat e zgjedhura".
  • gjendja, atëherë ato nuk do të jenë të disponueshme si kusht në skedën "Cilësimet" në skedën "Zgjedhja".
  • Grupi, atëherë grupimi sipas tyre nuk do të jetë i disponueshëm në skedën "Cilësimet" kur krijoni një grupim të ri.
  • duke porositur, atëherë ato nuk do të jenë të disponueshme për porositje në skedën "Cilësimet" në skedën "Rendit".

Kolona "Shiko shprehjen" nevojiten për të ndryshuar përfaqësimin e fushës si rezultat i raportit. Për shembull, duhet të shfaqni jo vetëm emrin e produktit, por edhe artikullin e tij. Prandaj, në këtë kolonë mund të shkruani sa vijon:

Produkt. Artikull + "-" + Mallra. Emri

Në këtë fushë, ne mund të përdorim të gjitha mundësitë e gjuhës ACS dhe të aksesojmë funksionet e moduleve të zakonshme.

Nëse konfigurimi përmban një modul të përbashkët të quajtur "ForSKD" dhe ky modul përcakton një funksion të përbashkët (me fjalën kyçe "Eksport") "GetView" me parametrin "Reference", atëherë në fushën "Shiko shprehjen" do të shkruajmë:

Për SKD. Merr Përfaqësimin (Artikulli)

Por ju duhet ta përdorni këtë veçori me kujdes, veçanërisht nëse funksioni i modulit të përbashkët hyn në bazën e të dhënave, pasi kjo qasje ndodh pasi të jenë marrë të gjitha të dhënat për raportin. Në fakt, për çdo rresht, pyetja do të ekzekutohet përsëri.

Kolona "Shprehja e rendit" nevojshme për të përcaktuar një lloj të personalizuar. Këtu mund të përdorni të njëjtat ndërtime si në fushën "Shiko shprehjen".

Epo, ai tha gjithçka, siç premtoi. Nëse keni pyetje, atëherë shkruani ato në komente. Në mënyrë që materiali të jetë i fiksuar në mendjen tuaj, unë do të përgatis një test.

Artikujt kryesorë të lidhur