Fushat e llogaritura në SKD. Gjuha e shprehjes së sistemit të përbërjes së të dhënave (1Cv8)

Përshëndetje, lexues i dashur! Kemi një mësim tjetër mbi bazat e sistemit të paraqitjes. Në të u njohët me funksionet e gjuhës së shprehjes SKD, patë veçoritë e sistemit të paraqitjes dhe gjithashtu kuptove cilësimet bazë të fushave të paraqitjes. Tani do të shikojmë materialin e ri. Shkoni!

Cilësimet shtesë për fushat ACS.

Kolona "Lloji i vlerës" Ju lejon të specifikoni llojin e të dhënave për fushën e paraqitjes. Pse të specifikoni llojin, për shembull, për fushën "Nomenklatura", nëse tashmë e dini se çfarë lloji është? Kjo është e nevojshme nëse fusha e paraqitjes është e një lloji të përbërë. Ju mund të zgjidhni një lloj specifik, pastaj kur zgjidhni nga kjo fushë, do të zgjidhen vlerat e këtij lloji.

Kolona "Vlerat e disponueshme" ju lejon të specifikoni vlerat e disponueshme për përzgjedhje dhe të kufizoni zgjedhjen e përdoruesit në kufij të caktuar.

Kolona "Dekor" ju lejon të specifikoni dizajnin e një fushe paraqitjeje pa përdorur paraqitje. Ju mund të specifikoni ngjyrën e shkronjave, ngjyrën e kornizës, orientimin e tekstit, etj.

Kolona "Opsionet e redaktimit" Ju lejon të specifikoni se si të redaktoni fushën e paraqitjes. Për shembull, mund të specifikoni një përzgjedhje të shpejtë të elementeve nga një listë në një përzgjedhje. Si parazgjedhje, një fushë e paraqitjes trashëgon të gjitha opsionet e redaktimit nga objekti i meta të dhënave.

Fushat e llogaritura

Në skedën "Fushat e llogaritura" të përbërjes së të dhënave, mund të krijoni fushat tuaja të llogaritura.

Pse keni nevojë për fushat e llogaritura kur mund t'i krijoni ato në nivelin e pyetjes? Jo të gjitha fushat mund të përshkruhen duke përdorur një pyetje. Nëse keni nevojë të krijoni një fushë komplekse nga grupe të ndryshme të dhënash, për shembull, një pyetje dhe një objekt, atëherë nuk mund të bëni pa fusha të llogaritura. Ju nuk mund të shtoni një fushë të përbërjes së të dhënave nëse burimi i të dhënave është një pyetje dhe plotësimi automatik është i aktivizuar, por duke përdorur fushat e llogaritura mund të shtoni sa më shumë fusha që dëshironi.

Në kolonën "Shprehje" të fushës së llogaritur, duhet të shkruani një shprehje arbitrare që përdor fushat e përbërjes së të dhënave, duke hyrë në rrugën e tyre (kolona "Shtegu" në skedën "Grupet e të dhënave"). Ose mund të përdorni funksionet e transformimit matematik ose të përdorni funksionet e moduleve të zakonshme. Për shembull, le të shkruajmë në kolonën "Rruga e të dhënave" emrin e fushës së llogaritur "Devijim" dhe në fushën "Shprehje" si më poshtë.

Në dritën e publikimit të ardhshëm të 8.2.14, do të përpiqem të përshkruaj disa funksione të reja të sistemit të përbërjes së të dhënave.

Hapni diagramin e paraqitjes së të dhënave, mundësisht në një raport të jashtëm, për ta bërë më të lehtë modifikimin.

Ne shtojmë një grup të dhënash të llojit të pyetjes dhe shkruajmë, me dorë ose duke përdorur projektuesin e pyetjes, një pyetje të thjeshtë:

1. Vendosni një kërkesë në sistemin e kontrollit të aksesit.

2. Vendosni fushat e llogaritura në sistemin e kontrollit të aksesit

3. Konfiguroni paraqitjen e të dhënave në skedën e cilësimeve

4. Nisni 1C Enterprise 8.2.14. Hapni raportin. Ne formojmë, marrim.

Përshkrimi i vetë funksioneve të reja:

1. Data aktuale ()

Kthen datën e sistemit. Gjatë kompozimit të një faqosjeje, në të gjitha shprehjet që janë të pranishme në paraqitje, funksioni CurrentDate() zëvendësohet me vlerën e datës aktuale.

2. COMPUTEEXPRESSION()

Sintaksë:

CalculateExpression(,)

Përshkrim:

Funksioni është krijuar për të vlerësuar një shprehje në kontekstin e disa grupimeve.

Funksioni merr parasysh përzgjedhjen e grupimeve, por nuk merr parasysh zgjedhjet hierarkike.

Funksioni nuk mund të zbatohet për një grupim në përzgjedhjen e grupit të atij grupimi. Për shembull, në zgjedhjen e grupimit të Nomenklaturës, nuk mund të përdorni shprehjen CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. Por një shprehje e tillë mund të përdoret në përzgjedhjen hierarkike.

Nëse rekordi i fundit i paraprin regjistrimit të fillimit, atëherë konsiderohet se nuk ka të dhëna për llogaritjen e të dhënave të detajuara dhe llogaritjen e funksioneve agregate.

Gjatë llogaritjes së shprehjeve të intervalit për një total total (parametri i grupimit vendoset në GrandTotal), supozohet se nuk ka të dhëna për llogaritjen e të dhënave të detajuara dhe llogaritjen e funksioneve të përgjithshme.

Lidhësi i paraqitjes kur gjeneron një shprehje funksioni CalculateExpression, nëse shprehja e renditjes përmban fusha që nuk mund të përdoren në grupim, zëvendëson funksionin CalculateExpressionI PAVLEFSHËM.

Opsione

Lloji: Linjë. Shprehja që do të vlerësohet.

Lloji: Linjë. Përmban emrin e grupimit në kontekstin e të cilit duhet 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 GeneralTotal përdoret si emër i grupit, llogaritja do të kryhet në kontekstin e totalit të përgjithshëm. Përndryshe, llogaritja do të kryhet në kontekstin e grupit mëmë me të njëjtin emër.

Për shembull:

Shuma (Sales.SumTurnover)/Llogarit ("Sum(Sales.SumTurnover)", "Total")

Në këtë shembull, rezultati do të jetë raporti i shumës sipas fushës Shitjet.Shuma Qarkullim grupimi i të dhënave në shumën e së njëjtës fushë në të gjithë paraqitjen;

Lloji: Linjë. Parametri mund të marrë vlerat e mëposhtme:

· Total i madh— shprehja do të llogaritet për të gjitha regjistrimet e grupimit.

· Hierarkia— shprehja do të vlerësohet për rekordin hierarkik prind, nëse ka një të tillë, dhe për të gjithë grupimin, nëse nuk ka rekord hierarkik prind.

· Grupimi— shprehja do të vlerësohet për rekordin aktual të grupimit të grupit.

· Grupimi JoResurs— kur llogaritet një funksion për një rekord grup sipas burimeve, shprehja do të llogaritet për regjistrimin e grupit të parë të grupimit origjinal.

Gjatë llogaritjes së një funksioni CalculateExpression() me kuptim Grupimi JoResurs për regjistrimet e grupit që nuk janë grupuar sipas burimeve, funksioni llogaritet në të njëjtën mënyrë siç do të llogaritej nëse vlera e parametrit do të ishte e barabartë me vlerën Grupimi.

Ndërtuesi i paraqitjes së përbërjes së të dhënave, kur gjeneron një paraqitje të përbërjes së të dhënave kur nxjerr një fushë burimi me anë të së cilës kryhet grupimi në paraqitje, vendos një shprehje në paraqitjen që llogaritet duke përdorur funksionin CalculateExpression() , duke treguar parametrin Grupimi JoResurs. Për burimet e tjera, shprehjet e zakonshme të burimeve vendosen në grupimin e burimeve.

Lloji: Linjë. Tregon se nga cili regjistrim duhet të fillojë fragmenti, në të cilin duhet të llogariten funksionet e shprehjes agregate dhe nga cili rekorde të merren vlerat e fushës jashtë funksioneve të agregatit. Vlera mund të jetë një nga sa vijon:

· Së pari

· E fundit (e fundit)

· E mëparshme

· Tjetra (Tjetër)

· Aktuale

· Vlera Kufizuese(BoundaryValue) Vlera Kufizuese

Lloji: Linjë. Tregon se në cilin regjistrim duhet të vazhdohet fragmenti, në të cilin duhet të llogariten funksionet e përgjithshme të shprehjes. Vlera mund të jetë një nga sa vijon:

· Së pari. Është e nevojshme të merret rekordi i parë i grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si kompensim që nga fillimi i grupimit. Vlera që rezulton duhet të jetë një numër i plotë më i madh se zero. Për shembull, First(3) - marrja e rekordit të tretë nga fillimi i grupimit.

Nëse rekordi i parë është jashtë grupimit, atëherë konsiderohet se nuk ka regjistrime. Për shembull, nëse ka 3 regjistrime, dhe ju dëshironi të merrni First(4), atëherë konsiderohet se nuk ka të dhëna.

· E fundit (e fundit). Ju duhet të merrni rekordin e fundit të grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si një kompensim nga fundi i grupimit. Vlera që rezulton duhet të jetë një numër i plotë më i madh se zero. Për shembull, Last(3) - marrja e rekordit të tretë nga fundi i grupit.

Nëse rekordi i fundit është jashtë grupimit, atëherë konsiderohet se nuk ka të dhëna. Për shembull, nëse ka 3 regjistrime, dhe ju dëshironi të merrni Last(4), atëherë konsiderohet se nuk ka regjistrime.

· E mëparshme. Ju duhet të merrni rekordin e mëparshëm të grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si një zhvendosje nga rekordi aktual i grupimit. Për shembull, Previous(2) - duke marrë të mëparshmen nga rekordi i mëparshëm.

Nëse rekordi i mëparshëm shkon përtej grupimit (për shembull, për rekordin e dytë të grupimit duhet të merrni Previous(3)), atëherë merret rekordi i parë i grupimit.

Kur merret rekordi i mëparshëm për një total grupimi, konsiderohet se është marrë rekordi i parë.

· Tjetra (Tjetër). Ju duhet të merrni rekordin tjetër të grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si një zhvendosje përpara nga rekordi aktual i grupimit. Për shembull, Next(2) - marrja e radhës nga rekordi tjetër.

Nëse rekordi tjetër shkon përtej grupimit, atëherë konsiderohet se nuk ka regjistrime. Për shembull, nëse ka 3 hyrje dhe hyrja e tretë merr Next() , atëherë konsiderohet se nuk ka hyrje.

Kur merret rekordi i radhës për totalin e grupimit, konsiderohet se nuk ka regjistrim.

· Aktuale. Ju duhet të merrni rekordin aktual.

Kur merret për një total grupimi, merret rekordi i parë.

· Vlera Kufizuese(BoundaryValue). Nevoja për të marrë një rekord sipas vlerës së specifikuar. Pas fjalës Vlera Kufizuese në kllapa duhet të tregoni shprehjen me vlerën e së cilës dëshironi të filloni fragmentin, fushën e parë të renditjes.

Rekordi i parë vlera e fushës së renditjes së të cilit është më e madhe ose e barabartë me vlerën e specifikuar do të kthehet si rekord. Për shembull, nëse fusha Periudha përdoret si fushë e porositjes, dhe ajo ka vlerat 01/01/2010, 02/01/2010, 03/01/2010, dhe ju dëshironi të merrni LimitingValue(DataKoha (2010, 1, 15)), atëherë do të merret një procesverbal me datën 02/01/2010.

Lloji: Linjë. Liston shprehjet, të ndara me presje, që përshkruajnë rregullat e renditjes. Nëse nuk specifikohet, atëherë renditja kryhet në të njëjtën mënyrë si për grupimin për të cilin vlerësohet shprehja. Pas çdo shprehjeje mund të specifikoni një fjalë kyçe Mosha(për renditjen në rend rritës), Duke zbritur(për renditjen në rend zbritës) dhe Porosit automatik(për të renditur fushat e referencës sipas fushave me të cilat dëshironi të renditni objektin e referuar). fjalë Porosit automatik mund të përdoret si me fjalën Mosha, kështu me fjalën Duke zbritur.

Lloji: Linjë. Njësoj si parametri Renditja. Përdoret për të organizuar të dhënat hierarkike. Nëse nuk specifikohet, ndërtuesi i paraqitjes gjeneron renditjen sipas renditjes së specifikuar në parametrin Renditja.

Lloji: Linjë. Përcakton rregullin për përcaktimin e rekordit të mëparshëm ose të ardhshëm në rast se ka disa rekorde me të njëjtën vlerë renditjeje:

· Veçmas tregon se një sekuencë regjistrimesh të renditura përdoret për të përcaktuar regjistrimet e mëparshme dhe të ardhshme. Vlera e paracaktuar.

· Së bashku tregon se regjistrimet e mëparshme dhe të ardhshme përcaktohen në bazë të vlerave të shprehjeve të renditjes.

Për shembull, nëse sekuenca që rezulton renditet sipas datës:

datë Emri i plotë Kuptimi
1 01 janar 2001

Ivanov M.

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

Veçmas, Se:

§ hyrja e mëparshme në hyrjen 3 do të jetë hyrja 2.

Aktuale, Aktuale(përkatësisht parametrat Filloni Dhe fund), atëherë për rekordin 2 ky fragment do të përbëhet nga një rekord 2. Shprehja do të jetë e barabartë me 20.

Nëse vlera e parametrit është Së bashku, Se:

§ hyrja e mëparshme në hyrjen 3 do të jetë hyrja 1.

§ nëse fragmenti i llogaritjes përcaktohet si Aktuale, Aktuale(përkatësisht parametrat Filloni Dhe fund), atëherë për regjistrimin 2 ky fragment do të përbëhet nga regjistrimet 2 dhe 3. Shprehje CalculateExpression("Sum(Vlera)", Aktuale, Aktuale) do të jetë e barabartë me 50.

Kur specifikoni një vlerë parametri të barabartë me Së bashku, në parametra Filloni Dhe fund nuk mund të specifikoni një kompensim për pozicionet E para, e fundit, e mëparshme, e ardhshme.

CalculateExpression ("Sum(SumTurnover)", "First", "Current")

Nëse dëshironi të merrni vlerën e grupimit në rreshtin e mëparshëm, mund të përdorni shprehjen e mëposhtme:

CalculateExpression ("Rritja", "Previous")

Listë i ri funksione:

CalculateExpressionWithGroupArray(,) -

Funksioni kthen një grup, secili element i të cilit përmban rezultatin e vlerësimit të një shprehjeje për grupim sipas fushës së specifikuar.

CalculateExpressionWithGroupValueTable(,) -

Funksioni kthen një tabelë vlerash, çdo rresht i së cilës përmban rezultatin e vlerësimit të shprehjeve për grupim sipas fushës së specifikuar

Vlera e Plotësuar() - Kthen "True" nëse vlera është e ndryshme nga vlera e paracaktuar e këtij lloji, përveç NULL, përveç një referencë boshe, përveç asaj të Padefinuar. Vlerat Boolean kontrollohen për vlera NULL. Vargjet kontrollohen për mungesë të karaktereve jo të hapësirës së bardhë

Formati(, ) - Merr një varg të formatuar të vlerës së kaluar. Vargu i formatit është vendosur në përputhje me vargun e formatit të sistemit 1C: Enterprise.

Nënstring(, , ) - Ky funksion është krijuar për të nxjerrë një nënvarg nga një varg.

Gjatësia e linjës() - Funksioni është krijuar për të përcaktuar gjatësinë e një vargu. Parametri është një shprehje e vargut

Linjë() - Nëse një grup kalohet si parametër, funksioni kthen një varg që përmban paraqitje të vargut të të gjithë elementëve të grupit, të ndara me karaktere ";". Nëse një tabelë vlerash kalohet si parametër, funksioni kthen një varg që përmban përfaqësime të vargut të të gjitha rreshtave të tabelës së vlerave, me paraqitjet e qelizave të çdo rreshti të ndara me karaktere ";" dhe rreshtat me një rresht të ri karakter. Nëse paraqitja e vargut të një elementi është bosh, atëherë në vend të paraqitjes së tij shfaqet një varg.

Në dritën e publikimit të ardhshëm të 8.2.14, do të përpiqem të përshkruaj disa funksione të reja të sistemit të përbërjes së të dhënave.

Hapni diagramin e paraqitjes së të dhënave, mundësisht në një raport të jashtëm, për ta bërë më të lehtë modifikimin.

Ne shtojmë një grup të dhënash të llojit të pyetjes dhe shkruajmë, me dorë ose duke përdorur projektuesin e pyetjes, një pyetje të thjeshtë:

1. Vendosni një kërkesë në sistemin e kontrollit të aksesit.

2. Vendosni fushat e llogaritura në sistemin e kontrollit të aksesit

3. Konfiguroni paraqitjen e të dhënave në skedën e cilësimeve

4. Nisni 1C Enterprise 8.2.14. Hapni raportin. Ne formojmë, marrim.

Përshkrimi i vetë funksioneve të reja:

1. Data aktuale ()

Kthen datën e sistemit. Gjatë kompozimit të një faqosjeje, në të gjitha shprehjet që janë të pranishme në paraqitje, funksioni CurrentDate() zëvendësohet me vlerën e datës aktuale.

2. COMPUTEEXPRESSION()

Sintaksë:

CalculateExpression(,)

Përshkrim:

Funksioni është krijuar për të vlerësuar një shprehje në kontekstin e disa grupimeve.

Funksioni merr parasysh përzgjedhjen e grupimeve, por nuk merr parasysh zgjedhjet hierarkike.

Funksioni nuk mund të zbatohet për një grupim në përzgjedhjen e grupit të atij grupimi. Për shembull, në zgjedhjen e grupimit të Nomenklaturës, nuk mund të përdorni shprehjen CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. Por një shprehje e tillë mund të përdoret në përzgjedhjen hierarkike.

Nëse rekordi i fundit i paraprin regjistrimit të fillimit, atëherë konsiderohet se nuk ka të dhëna për llogaritjen e të dhënave të detajuara dhe llogaritjen e funksioneve agregate.

Gjatë llogaritjes së shprehjeve të intervalit për një total total (parametri i grupimit vendoset në GrandTotal), supozohet se nuk ka të dhëna për llogaritjen e të dhënave të detajuara dhe llogaritjen e funksioneve të përgjithshme.

Lidhësi i paraqitjes kur gjeneron një shprehje funksioni CalculateExpression, nëse shprehja e renditjes përmban fusha që nuk mund të përdoren në grupim, zëvendëson funksionin CalculateExpressionI PAVLEFSHËM.

Opsione

Lloji: Linjë. Shprehja që do të vlerësohet.

Lloji: Linjë. Përmban emrin e grupimit në kontekstin e të cilit duhet 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 GeneralTotal përdoret si emër i grupit, llogaritja do të kryhet në kontekstin e totalit të përgjithshëm. Përndryshe, llogaritja do të kryhet në kontekstin e grupit mëmë me të njëjtin emër.

Për shembull:

Shuma (Sales.SumTurnover)/Llogarit ("Sum(Sales.SumTurnover)", "Total")

Në këtë shembull, rezultati do të jetë raporti i shumës sipas fushës Shitjet.Shuma Qarkullim grupimi i të dhënave në shumën e së njëjtës fushë në të gjithë paraqitjen;

Lloji: Linjë. Parametri mund të marrë vlerat e mëposhtme:

· Total i madh— shprehja do të llogaritet për të gjitha regjistrimet e grupimit.

· Hierarkia— shprehja do të vlerësohet për rekordin hierarkik prind, nëse ka një të tillë, dhe për të gjithë grupimin, nëse nuk ka rekord hierarkik prind.

· Grupimi— shprehja do të vlerësohet për rekordin aktual të grupimit të grupit.

· Grupimi JoResurs— kur llogaritet një funksion për një rekord grup sipas burimeve, shprehja do të llogaritet për regjistrimin e grupit të parë të grupimit origjinal.

Gjatë llogaritjes së një funksioni CalculateExpression() me kuptim Grupimi JoResurs për regjistrimet e grupit që nuk janë grupuar sipas burimeve, funksioni llogaritet në të njëjtën mënyrë siç do të llogaritej nëse vlera e parametrit do të ishte e barabartë me vlerën Grupimi.

Ndërtuesi i paraqitjes së përbërjes së të dhënave, kur gjeneron një paraqitje të përbërjes së të dhënave kur nxjerr një fushë burimi me anë të së cilës kryhet grupimi në paraqitje, vendos një shprehje në paraqitjen që llogaritet duke përdorur funksionin CalculateExpression() , duke treguar parametrin Grupimi JoResurs. Për burimet e tjera, shprehjet e zakonshme të burimeve vendosen në grupimin e burimeve.

Lloji: Linjë. Tregon se nga cili regjistrim duhet të fillojë fragmenti, në të cilin duhet të llogariten funksionet e shprehjes agregate dhe nga cili rekorde të merren vlerat e fushës jashtë funksioneve të agregatit. Vlera mund të jetë një nga sa vijon:

· Së pari

· E fundit (e fundit)

· E mëparshme

· Tjetra (Tjetër)

· Aktuale

· Vlera Kufizuese(BoundaryValue) Vlera Kufizuese

Lloji: Linjë. Tregon se në cilin regjistrim duhet të vazhdohet fragmenti, në të cilin duhet të llogariten funksionet e përgjithshme të shprehjes. Vlera mund të jetë një nga sa vijon:

· Së pari. Është e nevojshme të merret rekordi i parë i grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si kompensim që nga fillimi i grupimit. Vlera që rezulton duhet të jetë një numër i plotë më i madh se zero. Për shembull, First(3) - marrja e rekordit të tretë nga fillimi i grupimit.

Nëse rekordi i parë është jashtë grupimit, atëherë konsiderohet se nuk ka regjistrime. Për shembull, nëse ka 3 regjistrime, dhe ju dëshironi të merrni First(4), atëherë konsiderohet se nuk ka të dhëna.

· E fundit (e fundit). Ju duhet të merrni rekordin e fundit të grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si një kompensim nga fundi i grupimit. Vlera që rezulton duhet të jetë një numër i plotë më i madh se zero. Për shembull, Last(3) - marrja e rekordit të tretë nga fundi i grupit.

Nëse rekordi i fundit është jashtë grupimit, atëherë konsiderohet se nuk ka të dhëna. Për shembull, nëse ka 3 regjistrime, dhe ju dëshironi të merrni Last(4), atëherë konsiderohet se nuk ka regjistrime.

· E mëparshme. Ju duhet të merrni rekordin e mëparshëm të grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si një zhvendosje nga rekordi aktual i grupimit. Për shembull, Previous(2) - duke marrë të mëparshmen nga rekordi i mëparshëm.

Nëse rekordi i mëparshëm shkon përtej grupimit (për shembull, për rekordin e dytë të grupimit duhet të merrni Previous(3)), atëherë merret rekordi i parë i grupimit.

Kur merret rekordi i mëparshëm për një total grupimi, konsiderohet se është marrë rekordi i parë.

· Tjetra (Tjetër). Ju duhet të merrni rekordin tjetër të grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si një zhvendosje përpara nga rekordi aktual i grupimit. Për shembull, Next(2) - marrja e radhës nga rekordi tjetër.

Nëse rekordi tjetër shkon përtej grupimit, atëherë konsiderohet se nuk ka regjistrime. Për shembull, nëse ka 3 hyrje dhe hyrja e tretë merr Next() , atëherë konsiderohet se nuk ka hyrje.

Kur merret rekordi i radhës për totalin e grupimit, konsiderohet se nuk ka regjistrim.

· Aktuale. Ju duhet të merrni rekordin aktual.

Kur merret për një total grupimi, merret rekordi i parë.

· Vlera Kufizuese(BoundaryValue). Nevoja për të marrë një rekord sipas vlerës së specifikuar. Pas fjalës Vlera Kufizuese në kllapa duhet të tregoni shprehjen me vlerën e së cilës dëshironi të filloni fragmentin, fushën e parë të renditjes.

Rekordi i parë vlera e fushës së renditjes së të cilit është më e madhe ose e barabartë me vlerën e specifikuar do të kthehet si rekord. Për shembull, nëse fusha Periudha përdoret si fushë e porositjes, dhe ajo ka vlerat 01/01/2010, 02/01/2010, 03/01/2010, dhe ju dëshironi të merrni LimitingValue(DataKoha (2010, 1, 15)), atëherë do të merret një procesverbal me datën 02/01/2010.

Lloji: Linjë. Liston shprehjet, të ndara me presje, që përshkruajnë rregullat e renditjes. Nëse nuk specifikohet, atëherë renditja kryhet në të njëjtën mënyrë si për grupimin për të cilin vlerësohet shprehja. Pas çdo shprehjeje mund të specifikoni një fjalë kyçe Mosha(për renditjen në rend rritës), Duke zbritur(për renditjen në rend zbritës) dhe Porosit automatik(për të renditur fushat e referencës sipas fushave me të cilat dëshironi të renditni objektin e referuar). fjalë Porosit automatik mund të përdoret si me fjalën Mosha, kështu me fjalën Duke zbritur.

Lloji: Linjë. Njësoj si parametri Renditja. Përdoret për të organizuar të dhënat hierarkike. Nëse nuk specifikohet, ndërtuesi i paraqitjes gjeneron renditjen sipas renditjes së specifikuar në parametrin Renditja.

Lloji: Linjë. Përcakton rregullin për përcaktimin e rekordit të mëparshëm ose të ardhshëm në rast se ka disa rekorde me të njëjtën vlerë renditjeje:

· Veçmas tregon se një sekuencë regjistrimesh të renditura përdoret për të përcaktuar regjistrimet e mëparshme dhe të ardhshme. Vlera e paracaktuar.

· Së bashku tregon se regjistrimet e mëparshme dhe të ardhshme përcaktohen në bazë të vlerave të shprehjeve të renditjes.

Për shembull, nëse sekuenca që rezulton renditet sipas datës:

datë Emri i plotë Kuptimi
1 01 janar 2001

Ivanov M.

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

Veçmas, Se:

§ hyrja e mëparshme në hyrjen 3 do të jetë hyrja 2.

Aktuale, Aktuale(përkatësisht parametrat Filloni Dhe fund), atëherë për rekordin 2 ky fragment do të përbëhet nga një rekord 2. Shprehja do të jetë e barabartë me 20.

Nëse vlera e parametrit është Së bashku, Se:

§ hyrja e mëparshme në hyrjen 3 do të jetë hyrja 1.

§ nëse fragmenti i llogaritjes përcaktohet si Aktuale, Aktuale(përkatësisht parametrat Filloni Dhe fund), atëherë për regjistrimin 2 ky fragment do të përbëhet nga regjistrimet 2 dhe 3. Shprehje CalculateExpression("Sum(Vlera)", Aktuale, Aktuale) do të jetë e barabartë me 50.

Kur specifikoni një vlerë parametri të barabartë me Së bashku, në parametra Filloni Dhe fund nuk mund të specifikoni një kompensim për pozicionet E para, e fundit, e mëparshme, e ardhshme.

CalculateExpression ("Sum(SumTurnover)", "First", "Current")

Nëse dëshironi të merrni vlerën e grupimit në rreshtin e mëparshëm, mund të përdorni shprehjen e mëposhtme:

CalculateExpression ("Rritja", "Previous")

Listë i ri funksione:

CalculateExpressionWithGroupArray(,) -

Funksioni kthen një grup, secili element i të cilit përmban rezultatin e vlerësimit të një shprehjeje për grupim sipas fushës së specifikuar.

CalculateExpressionWithGroupValueTable(,) -

Funksioni kthen një tabelë vlerash, çdo rresht i së cilës përmban rezultatin e vlerësimit të shprehjeve për grupim sipas fushës së specifikuar

Vlera e Plotësuar() - Kthen "True" nëse vlera është e ndryshme nga vlera e paracaktuar e këtij lloji, përveç NULL, përveç një referencë boshe, përveç asaj të Padefinuar. Vlerat Boolean kontrollohen për vlera NULL. Vargjet kontrollohen për mungesë të karaktereve jo të hapësirës së bardhë

Formati(, ) - Merr një varg të formatuar të vlerës së kaluar. Vargu i formatit është vendosur në përputhje me vargun e formatit të sistemit 1C: Enterprise.

Nënstring(, , ) - Ky funksion është krijuar për të nxjerrë një nënvarg nga një varg.

Gjatësia e linjës() - Funksioni është krijuar për të përcaktuar gjatësinë e një vargu. Parametri është një shprehje e vargut

Linjë() - Nëse një grup kalohet si parametër, funksioni kthen një varg që përmban paraqitje të vargut të të gjithë elementëve të grupit, të ndara me karaktere ";". Nëse një tabelë vlerash kalohet si parametër, funksioni kthen një varg që përmban përfaqësime të vargut të të gjitha rreshtave të tabelës së vlerave, me paraqitjet e qelizave të çdo rreshti të ndara me karaktere ";" dhe rreshtat me një rresht të ri karakter. Nëse paraqitja e vargut të një elementi është bosh, atëherë në vend të paraqitjes së tij shfaqet një varg.

1. Llogarit (Eval)- synon të vlerësojë një shprehje në kontekstin e disa grupimeve. Funksioni përdoret për përputhshmëri me versionet e mëparshme të platformës. Në vend të kësaj, rekomandohet të përdorni funksionin CalculateExpression.

Sintaksë:
Llogaritja (shprehja, grupimi, lloji i llogaritjes)

Opsione :

  • Shprehje(Linjë). Përmban një shprehje të llogaritur;
  • Grupimi(Linjë). Përmban emrin e grupimit në kontekstin e të cilit duhet 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 i grupit, llogaritja do të kryhet në kontekstin e totalit të përgjithshëm. Përndryshe, llogaritja do të kryhet në kontekstin e grupit mëmë me të njëjtin emër.
    Për shembull:
    Shuma (Sales.SumTurnover) / Llogarit ("Sum(Sales.SumTurnover)", "Total").
    Në këtë shembull, rezultati do të jetë raporti i shumës për fushën "Sales.AmountTurnover" të rekordit të grupimit me shumën e së njëjtës fushë në të gjithë paraqitjen.
  • Lloji i llogaritjes(Linjë). Nëse ky parametër vendoset në "TotalTotal", shprehja do të llogaritet për të gjitha regjistrimet e grupimit. Nëse vlera e parametrit është "Grupimi", vlerat do të llogariten për rekordin aktual të grupit të grupit.
2. Vlerësimi i shprehjes (EvalExpression) - synon të vlerësojë një shprehje në kontekstin e disa grupimeve. Funksioni merr parasysh përzgjedhjen e grupimeve, por nuk merr parasysh zgjedhjet hierarkike. Funksioni nuk mund të zbatohet për një grupim në përzgjedhjen e grupit të atij grupimi.

Sintaksë:
CalculateExpression (Shprehja, Grupimi, Lloji i Llogaritjes, Fillimi, Fundi, Renditja, Renditja Hierarkike, Përpunimi i Vlerave të RenditjesIdentike)

Opsione :

  • Shprehje(Linjë). Përmban një shprehje të llogaritur;
  • Grupimi(Linjë). Përmban emrin e grupimit në kontekstin e të cilit duhet 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 i grupit, 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;
  • Lloji i llogaritjes(Linjë). Nëse ky parametër vendoset në "TotalTotal", shprehja do të llogaritet për të gjitha regjistrimet e grupimit. Nëse vlera e parametrit është "Grupimi", vlerat do të llogariten për rekordin aktual të grupit të grupit. Nëse parametri është vendosur në "Grupimi jo i burimeve", atëherë kur llogaritet funksioni për një regjistrim grupor sipas burimit, shprehja do të vlerësohet për regjistrimin e grupit të parë të grupimit origjinal. Kur vlerësohet funksioni CalculateExpression me vlerën "GroupingNonResource" për regjistrimet e grupit që nuk janë grupime sipas burimeve, funksioni vlerësohet në të njëjtën mënyrë siç do të vlerësohej me vlerën e parametrit "Grouping". Ndërtuesi i paraqitjes së përbërjes së të dhënave, kur gjeneron një paraqitje të përbërjes së të dhënave kur nxjerr një fushë - një burim me të cilin kryhet grupimi, në paraqitje, nxjerr në paraqitje një shprehje të llogaritur duke përdorur funksionin CalculateExpression me parametrin e specifikuar "GroupingNon-Resource". Për burimet e tjera të grupuara sipas burimeve, shprehjet normale të burimeve kthehen. Nëse parametri vendoset në "Hierarki", atëherë shprehja duhet të vlerësohet për regjistrimin hierarkik prind, nëse ka një të tillë, dhe për të gjithë grupimin, nëse nuk ka rekord hierarkik prind. Ndërtuesi i faqosjes, kur gjeneron një shprehje për % në fushën e Grupit të Hierarkisë, gjeneron një shprehje që përmban lidhjen e shprehjes së burimit me funksionin CalculateExpression për shprehjen e burimit që llogaritet për grupimin aktual me llojin e llogaritjes Hierarki.
  • Filloni. Tregon se nga cili regjistrim duhet të fillojë fragmenti, në të cilin duhet të llogariten funksionet e shprehjes agregate dhe nga cili rekord të merren vlerat e fushës jashtë funksioneve agregate. Një varg që përmban një nga:
    • "e para" Është e nevojshme të merret rekordi i parë i grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si kompensim që nga fillimi i grupimit. Vlera që rezulton duhet të jetë një numër i plotë më i madh se zero. Për shembull, First(3) – marrja e rekordit të tretë nga fillimi i grupimit. Nëse rekordi i parë është jashtë grupimit, atëherë konsiderohet se nuk ka regjistrime. Për shembull, nëse ka 3 regjistrime, dhe ju dëshironi të merrni First(4), atëherë konsiderohet se nuk ka të dhëna.
    • "E fundit" Ju duhet të merrni rekordin e fundit të grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si një kompensim nga fundi i grupimit. Vlera që rezulton duhet të jetë një numër i plotë më i madh se zero. Për shembull, Last(3) – marrja e rekordit të tretë nga fundi i grupit. Nëse rekordi i fundit është jashtë grupimit, atëherë konsiderohet se nuk ka të dhëna. Për shembull, nëse ka 3 regjistrime, dhe ju dëshironi të merrni Last(4), atëherë konsiderohet se nuk ka regjistrime.
    • "E mëparshme" Ju duhet të merrni rekordin e mëparshëm të grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si një zhvendosje nga rekordi aktual i grupimit. Për shembull, Previous(2) – marrja e mëparshme nga rekordi i mëparshëm. Nëse rekordi i mëparshëm është jashtë grupimit (për shembull, rekordi i dytë i grupimit kërkon marrjen e Previous(3)), atëherë merret rekordi i parë i grupimit. Kur merrni rekordin e mëparshëm për totalin e grupimit, fitohet rekordi i parë.
    • "Tjetër" Ju duhet të merrni rekordin tjetër të grupimit. Pas fjalës në kllapa, mund të specifikoni një shprehje, rezultati i së cilës do të përdoret si një zhvendosje përpara nga rekordi aktual i grupimit. Për shembull, Next(2) – marrja e radhës nga rekordi tjetër. Nëse rekordi tjetër shkon përtej grupimit, atëherë konsiderohet se nuk ka regjistrime. Për shembull, nëse ka 3 hyrje dhe hyrja e tretë merr Next, atëherë konsiderohet se nuk ka hyrje. Kur merret rekordi i radhës për totalin e grupimit, konsiderohet se nuk ka regjistrim.
    • "Aktuale". Ju duhet të merrni rekordin aktual. Kur merret për një total grupimi, merret rekordi i parë.
    • "Vlera kufitare". Nevoja për të marrë një rekord sipas vlerës së specifikuar. Pas fjalës LimitingValue në kllapa, duhet të tregoni shprehjen me vlerën e së cilës dëshironi të filloni fragmentin, fushën e parë të renditjes. Rekordi i parë vlera e fushës së renditjes së të cilit është më e madhe ose e barabartë me vlerën e specifikuar do të kthehet si rekord. Për shembull, nëse fusha Periudha përdoret si fushë e renditjes dhe ka vlerat 01/01/2010, 02/01/2010, 03/01/2010 dhe dëshironi të merrni LimitingValue(DateTime(2010 , 1, 15)), atëherë do të merret një procesverbal me datën 02/01.
  • fund. Tregon se në cilin regjistrim duhet të vazhdohet fragmenti, në të cilin duhet të llogaritet shprehja e përgjithshme. Një varg që përmban një nga:
    • "e para"
    • "E fundit"
    • "E mëparshme"
    • "Tjetër"
    • "Aktuale".
    • "Vlera kufitare".
  • Renditja. Një varg që rendit shprehjet, të ndara me presje, në drejtimin e të cilave duhet të renditet sekuenca. Nëse nuk specifikohet, atëherë renditja kryhet në të njëjtën mënyrë si për grupimin për të cilin vlerësohet shprehja. Pas çdo shprehjeje, mund të specifikoni fjalën kyçe Ascending, për renditje në rend rritës, Descending, për renditje në rend zbritës, Auto-Ordering, për renditjen e fushave të referencës sipas fushave me të cilat dëshironi të renditni objektin që referohet. Fjala Auto Order mund të përdoret si me fjalën Ascending ashtu edhe me fjalën Descending.
  • Renditja hierarkike. Ngjashëm me renditjen. Përdoret për të organizuar të dhënat hierarkike. Nëse nuk specifikohet, kompozitori i paraqitjes gjeneron renditjen sipas renditjes së specifikuar në parametrin Sort.
  • Përpunimi i të njëjtave vlera të porosisë. Një varg që përmban një nga:
    • "Së bashku" do të thotë se një sekuencë regjistrimesh të renditura përdoret për të përcaktuar regjistrimet e mëparshme dhe të ardhshme;
    • "Në mënyrë të veçantë" do të thotë që të dhënat e mëparshme dhe të ardhshme përcaktohen në bazë të vlerave të shprehjeve të renditjes;
    Për shembull, nëse sekuenca që rezulton renditet sipas datës:
    1. 01 janar 2001 Ivanov M. 10
    2. 02 janar 2001 Petrov S. 20
    3. 02 janar 2001 Sidorov R. 30
    4. 03 janar 2001 Petrov S. 40
    Kur përdorni përpunimin e vlerave identike të rendit "Veç veç", ai i mëparshmi për rekordin 3 do të jetë rekordi 2, dhe kur përdorni "Së bashku" - rekordi 1. Dhe fragmenti për rekordin aktual për rekordin 2 për "Veç veç" do të jetë rekordi 2, dhe për "Together" - regjistrimet 2 dhe 3. Kështu, totali për rekordin aktual për "Veç veç" do të jetë 20, dhe për "Së bashku" - 50. Kur "Together" është specifikuar në Start dhe Parametrat e përfundimit, nuk mund të specifikoni një zhvendosje për pozicionet "E para", "E fundit", "E mëparshme", "Tjetër". Vlera e paracaktuar është "Ndarë".
Shembull:
Marrja e raportit të shumës për fushën "Sales.AmountTurnover" të një rekordi grupimi me shumën e së njëjtës fushë në të gjithë paraqitjen:
Shuma(Sales.SumTurnover) / CalculateExpression("Sum(Sales.SumTurnover)", "Total").

Ky shembull llogarit vlerën e hierarkisë aktuale:
Zgjedhja
Kur Niveli () > 0
Pastaj EvaluateExpression ("Referenca", "Hierarkia")
Përndryshe Null
fund

Shënime:
Funksioni merr parasysh përzgjedhjen e grupimeve, por nuk merr parasysh zgjedhjet hierarkike. Funksioni nuk mund të zbatohet për një grupim në përzgjedhjen e grupit të atij grupimi. Për shembull, në zgjedhjen e grupimit të Nomenklaturës, nuk mund të përdorni shprehjen CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 . Por një shprehje e tillë mund të përdoret në përzgjedhjen hierarkike. Nëse rekordi i fundit i paraprin regjistrimit të fillimit, atëherë konsiderohet se nuk ka regjistrime për llogaritjen e të dhënave të detajuara dhe llogaritjen e funksioneve agregate. Kur llogaritni shprehjet e intervalit për një total total (parametri i grupimit është vendosur në "GrossTotal"), supozohet se nuk ka të dhëna për llogaritjen e të dhënave të detajuara dhe llogaritjen e funksioneve të përgjithshme. Kur gjeneron një shprehje për funksionin CalculateExpression, kompozitori i paraqitjes, nëse shprehja e renditjes përmban fusha që nuk mund të përdoren në grupim, zëvendëson funksionin CalculateExpression me NULL.

3. Vlerësimi i shprehjes me grup grupi (EvalExpression me grup grupi) - funksioni kthen një grup, secili element i të cilit përmban rezultatin e llogaritjes së një shprehjeje për grupim sipas fushës së specifikuar.

Sintaksë:
CalculateExpressionWithGroupArray (Shprehje, GrupFieldShprehje, SelectRecords, SelectGroups)

Opsione :

  • Shprehje(String) - shprehja që do të vlerësohet. Për shembull, "Shuma(ShumaTurnover)";
  • FieldExpressionsGroups
  • Përzgjedhja e të dhënave
  • Përzgjedhja e Grupeve- përzgjedhja e aplikuar për të dhënat e grupit. Për shembull: "Shuma(ShumaTurnover) > &Parameter1".
Shembull:
Maksimumi(CalculateExpressionWithGroupArray("Shuma(ShumaTurnover)", "Kontraparta"));


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 CalculateArrayWithGroup, gjeneron shprehjen e ekranit në mënyrë që të dhënat e shfaqura nga pamjet dhe të dhënat të renditen.
Për shembull, për një fushë të personalizuar me shprehjen:
CalculateExpressionWithGroupArray("Shuma(ShumaTurnover)", "Counterparty")
Ndërtuesi i paraqitjes do të gjenerojë shprehjen e mëposhtme për dalje:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("Shiko(Suma(DataSet.AmountTurnover)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2"))

4. Llogaritni shprehjen me GroupValueTable (EvalExpressionWithGroupValueTable) - funksioni kthen një tabelë vlerash, çdo element i së cilës përmban rezultatin e llogaritjes së një shprehjeje për grupim sipas fushës së specifikuar.

Sintaksë:
CalculateExpressionWithGroupValueTable (shprehje, shprehje në fushë grupi, përzgjedhje rekorde, përzgjedhje grupi)

Opsione :

  • Shprehje(String) - shprehja që do të vlerësohet. Një rresht mund të përmbajë shprehje të shumta të ndara me presje. Pas çdo shprehjeje mund të ketë një fjalë kyçe opsionale AS dhe emrin e kolonës së tabelës së vlerave. Për shembull: "Kontraparta, shuma (Shuma e qarkullimit) si vëllimi i shitjeve."
  • FieldExpressionsGroups- shprehjet e fushave të grupimit, të ndara me presje. Për shembull, "Kundërpartia, Partia";
  • Përzgjedhja e të dhënave- një shprehje e aplikuar për të dhënat e detajeve. Për shembull, "Flamuri i Fshirjes = False". Nëse ky parametër përdor një funksion agregat, do të ndodhë një gabim gjatë kompozimit të të dhënave;
  • Përzgjedhja e Grupeve- përzgjedhja e aplikuar për të dhënat e grupit. Për shembull: "Shuma(ShumaTurnover) > &Parameter1".
Shembull:
CalculateExpressionWithGroupValueTable("Llogaria AS kunderparti, Shuma(ShumaTurnover) ASSalesVolume", "Llogaria")

Rezultati i këtij funksioni do të jetë një tabelë vlerash me kolonat Kundërpartia dhe Vëllimi i Shitjeve, të cilat do të përmbajnë palët me vëllimet e tyre të shitjeve.
Kompozitori i paraqitjes, kur gjeneron një paraqitje, i konverton parametrat e funksionit në fushat e paraqitjes së përbërjes së të dhënave. Për shembull, fusha Account do të konvertohet në DataSet.Account.
Për shembull, një fushë e personalizuar me shprehjen:
CalculateExpressionWithGroupValueTable ("Llogaria, Shuma(ShumaTurnover)", "Llogaria")
Ndërtuesi i paraqitjes do të gjenerojë shprehjen e mëposhtme për dalje:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account, Data Set.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), "DataSet.Ordering,"3,"DataSet. ), "2, 4"))

5. Niveli - funksioni është krijuar për të marrë nivelin aktual të regjistrimit.

Sintaksë:
Niveli ()

Shembull:
Niveli ()

6. Numri i Sekuencës - merrni numrin serial të radhës.

Sintaksë:
NumberByOrder()

Shembull:
NumberByOrder()

7. SequenceNumberInGrouping - kthen numrin vijues të radhës në grupimin aktual.

Shembull:
NumberByOrderInGroup()

8. Formati - merrni një varg të formatuar të vlerës së kaluar.

Sintaksë:
Format (Vlera, FormatString)

Opsione :

  • Kuptimi- shprehja që duhet të formatohet;
  • FormatString- vargu i formatit është vendosur në përputhje me vargun e formatit 1C: Enterprise.
Shembull:
Formati (Faturat e konsumueshme. Shuma e dokumentit, "NPV=2")

9. Fillimi i Periudhës

Sintaksë:
Periudha e fillimit (data, lloji i periudhës)

Opsione :

  • datë(Data e). Data e specifikuar;
  • Lloji i periudhës
Shembull:
Periudha e fillimit (DataKoha (2002, 10, 12, 10, 15, 34), "Muaji")
Rezultati: 10/01/2002 0:00:00

10. Fundi i Periudhës - funksioni është krijuar për të zgjedhur një datë specifike nga një datë e caktuar.

Sintaksë:
Periudha e Fundit (Data, Lloji i Periudhës)

Opsione :

  • datë(Data e). Data e specifikuar;
  • Lloji i periudhës(Linjë). Përmban një nga vlerat e mëposhtme: Minuta; Ora; Dita; Nje jave; Muaj; tremujori; Viti; Dekada; Gjysëm viti.
Shembull:
Periudha e Fundit (DataKoha (2002, 10, 12, 10, 15, 34), "Java")
Rezultati: 10/13/2002 23:59:59

11. AddKDate (DataShto) - funksioni është krijuar për të shtuar një vlerë të caktuar në datë.

Sintaksë:
AddToDate (Shprehja, Lloji i Rritjes, Madhësia)

Opsione :

  • Shprehje(Data e). Data origjinale;
  • Lloji Zmadhimi(Linjë). Përmban një nga vlerat e mëposhtme: Minuta; Ora; Dita; Nje jave; Muaj; tremujori; Viti; Dekada; Gjysëm viti.
  • Madhësia(Numri). Për sa duhet të rritet data, pjesa e pjesshme shpërfillet.
Shembull:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Month", 1)
Rezultati: 11/12/2002 10:15:34

12. Dallimi i datës - funksioni është krijuar për të marrë diferencën midis dy datave.

Sintaksë:
DifferenceDate (Shprehja 1, Shprehja 2, Lloji i Diferencës)

Opsione :

  • Shprehja 1(Data e). Data e zbritur;
  • Shprehja2(Data e). Data origjinale;
  • Diferenca e Llojit(Linjë). Përmban një nga vlerat: E dyta; Minuta; Ora; Dita; Muaj; tremujori; viti.
Shembull:
DATEDIFERENCE(DATATIME(2002, 10, 12, 10, 15, 34),
DATETIME (2002, 10, 14, 9, 18, 06), "DITA")
Rezultati: 2

13. Nënvarg - ky funksion është krijuar për të nxjerrë një nënvarg nga një varg.

Sintaksë:
Nënstring (vargu, pozicioni, gjatësia)

Opsione :

  • Linjë(Linjë). Vargu nga i cili nxirret nënvargu;
  • Pozicioni(Numri). Pozicioni i karakterit nga i cili fillon nënvargu që do të nxirret nga vargu;
  • Gjatësia(Numri). Gjatësia e nënvargut të caktuar.
Shembull:
SUBSTRING (Llogaritë. Adresa, 1, 4)

14. Gjatësia e vargut - funksioni është krijuar për të përcaktuar gjatësinë e një vargu.

Sintaksë:
Gjatësia e vargut (vargu)

Parametri:

  • Linjë(Linjë). Një varg gjatësia e të cilit është specifikuar.
Shembull:
Linja (Kundërpalët. Adresa)

15. Viti- ky funksion është krijuar për të nxjerrë vitin nga një vlerë e tipit Date.

Sintaksë:
Viti (Data)

Parametri:

  • datë(Data e). Data me të cilën përcaktohet viti.
Shembull:
YEAR (Shpenzime. Data)

16. Tremujori - ky funksion synon të nxjerrë numrin e tremujorit nga një vlerë e tipit Date. Numri i tremujorit normalisht varion nga 1 në 4.

Sintaksë:
tremujori (data)

Parametri:

  • datë(Data e). Data në të cilën përcaktohet tremujori
Shembull:
QARTER (Shpenzime. Data)

17. Muaj - ky funksion është krijuar për të nxjerrë numrin e muajit nga një vlerë e tipit Data. Numri i muajit zakonisht varion nga 1 në 12.

Sintaksë:
Muaj (Data)

Parametri:

  • datë(Data e). Data me të cilën përcaktohet muaji.
Shembull:
MUAJ (Shpenzime. Data)

18. Dita e Vitit (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).

Sintaksë:
Dita e Vitit (Data)

Parametri:

  • datë(Data e). Data me të cilën përcaktohet dita e vitit.
Shembull:
DAYYEAR (Llogaria e shpenzimeve.Data)

19. Dita- ky funksion është krijuar për të marrë ditën e muajit nga një vlerë e tipit Date. Dita e muajit zakonisht varion nga 1 deri në 31.

Sintaksë:
Dita (Data)

Parametri:

  • datë(Data e). Data me të cilën përcaktohet dita e muajit.
Shembull:
DITA (Shpenzime. Data)

20. Javë - 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.

Sintaksë:
Java (Data)

Parametri:

  • datë(Data e). Data në të cilën përcaktohen numrat e javës.
Shembull:
JAVA (Shpenzime. Data)

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

Sintaksë:
Dita e javës (data)

Parametri:

  • datë(Data e). Data me të cilën përcaktohet dita e javës.
Shembull:
DITA E JAVËS (Shpenzimet. Data)

22. Ora- ky funksion është krijuar për të marrë orën e ditës nga një vlerë e tipit Data. Ora e ditës varion nga 0 në 23.

Sintaksë:
Ora (data)

Parametri:

  • datë(Data e). Data me të cilën përcaktohet ora e ditës.
Shembull:
HOUR (Shpenzime. Data)

23. Minuta - ky funksion është krijuar për të marrë minutën e orës nga një vlerë e tipit Date. Minuta e orës varion nga 0 në 59.

Sintaksë:
Minuta (Data)

Parametri:

  • datë(Data e). Data me të cilën përcaktohet minuta e orës.
Shembull:
MINUTE (Data e shpenzimeve)

24. Së dyti - ky funksion është krijuar për të marrë sekondën e një minutë nga një vlerë e tipit Date. Sekonda e një minutë varion nga 0 në 59.

Sintaksë:
E dyta (Data)

Parametri:

  • datë(Data e). Data në të cilën përcaktohen sekondat e minutës.
Shembull:
E DYTË (Shpenzime. Data)

25. Cast - ky funksion është krijuar për të nxjerrë një lloj nga një shprehje që mund të përmbajë një lloj të përbërë. Nëse shprehja përmban një lloj tjetër nga lloji i kërkuar, NULL do të kthehet.

Sintaksë:
Express (shprehje, lloji tregues)

Opsione :

  • Shprehje- shprehja që do të konvertohet;
  • Treguesi i llojit(Linjë). Përmban një varg tipi. Për shembull, "Numri", "String", etj. Përveç llojeve primitive, kjo rresht mund të përmbajë emrin e tabelës. Në këtë rast, do të bëhet një përpjekje për të shprehur një referencë në tabelën e specifikuar.
Shembull:
Express(Data.Props1, "Numri(10,3)")

26. IsNull (IsNull) - 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.

Sintaksë:
IsNull (Shprehja 1, Shprehja 2)

Opsione :

  • Shprehja 1- vlera që duhet kontrolluar;
  • Shprehja2- ktheni vlerën nëse Shprehja 1 është NULL.
Shembull:
Po NULL (Shuma (Shitjet. Shuma e qarkullimit), 0)

27.ACos- njehson kosinusin e harkut në radianë.

Sintaksë:
ACos (shprehje)

Parametri:

  • Shprehje(Numri). Vlera e kosinusit (në rangun -1 ... 1) me të cilën përcaktohet këndi.
28.ASin- njehson arksinën në radiane.

Sintaksë:
ASin (shprehje)

Parametri:

  • Shprehje(Numri). Vlera e sinusit (në rangun -1 ... 1) me të cilën përcaktohet këndi.
29.ATan- njehson arktangjentën në radiane.

Sintaksë:
ATan (shprehje)

Parametri:

  • Shprehje(Numri). Vlera tangjente me të cilën përcaktohet këndi.
30.Kos- njehson kosinusin.

Sintaksë:
Cos (shprehje)

Parametri:

  • Shprehje
31. Shka- ngritja e numrit e në një fuqi.

Sintaksë:
Exp (shprehje)

Parametri:

  • Shprehje(Numri). Kuptimi i gradës.
32.Log- njehson logaritmin natyror.

Sintaksë:
Regjistri (shprehje)

Parametri:

  • Shprehje
33.Log10- njehson logaritmin e X në bazën 10.

Sintaksë:
Ditari 10 (shprehje)

Parametri:

  • Shprehje(Numri). Numri origjinal është më i madh se 0.
34. Pow- eksponencë.

Sintaksë:
Pow (bazë, tregues)

Opsione :

  • Baza(Numri). Baza e funksionimit të eksponentimit.
  • Indeksi(Numri). Eksponent.
35. Mëkati- njehson sinusin.

Sintaksë:
Mëkati (shprehje)

Parametri:

  • Shprehje(Numri). Specifikuar në radianë.
36. Sqrt- njehson rrënjën katrore.

Sintaksë:
Sqrt (shprehje)

Parametri:

  • Shprehje(Numri). Numër jo negativ.
37. Tani- njehson tangjenten.

Sintaksë:
Tan (shprehje)

Parametri:

  • Shprehje(Numri). Vlera e sinusit me të cilën përcaktohet këndi.
38. Rrumbullakët- rrumbullakos numrin origjinal në thellësinë e kërkuar të bitit. Mënyra e rrumbullakosjes është standarde (1.5 si 2).

Sintaksë:
Env (shprehje, thellësi bit)

Opsione :

  • Shprehje(Numri). Numri origjinal;
  • Bit thellësi(Numri). Numri i numrave dhjetorë për t'u rrumbullakosur.
39. Int- pret pjesën thyesore të një numri.

Sintaksë:
Objekti (shprehje)

Parametri:

  • Shprehje(Numri). Një numër thyesor.
40. Funksionet e moduleve të zakonshme

Një shprehje e motorit të përbërjes së të dhënave mund të përmbajë thirrje për funksionet e moduleve të 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 "AbbreviatedName" do të thirret nga moduli i konfigurimit të përgjithshëm.
Vini re se përdorimi i funksioneve të zakonshme të modulit lejohet vetëm nëse specifikohet parametri i duhur i procesorit të përbërjes së të dhënave.
Për më tepër, funksionet e moduleve të zakonshme nuk mund të përdoren në shprehjet e fushës me porosi.

41. Kundërshtim - ky funksion kthen një paraqitje të vargut të vlerës së kaluar të një tipi jo primitiv. Për vlerat e tipit primitiv, kthen vetë vlerën.

<Пустое значение>".

Shembull:
Prezantimi (Kundërpartia)

42. Varg - ky funksion konverton vlerën e kaluar në një varg.

Nëse një grup ose një tabelë vlerash përdoret si parametër, funksioni kthen një varg që përmban një përfaqësim të vargut të të gjithë elementëve të grupit, të ndarë me karakteret ";". Nëse ndonjë element ka një paraqitje boshe të vargut, atëherë vargu "<Пустое значение>".

Shembull:
Rreshti (Data e shitjes)

43. VleraËshtë e Plotësuar

Për vlerat NULL, Undefined gjithmonë kthen False.
Për vlerat Boolean, ajo gjithmonë kthen True.
Për llojet e tjera, kthen True nëse vlera ndryshon nga vlera e paracaktuar për llojin e dhënë.

Shembull:
Vlera e Plotësuar (Data e Dorëzimit)

44. LevelInGroup - ky funksion merr nivelin aktual të regjistrimit në lidhje me grupimin.

Mund të përdoret për të marrë nivelin e foleve të një rekord në një grupim hierarkik.

Shembull:
LevelInGroup()

45. Lloji i vlerës

Sintaksë:
Lloji i vlerës (shprehje)

Parametri:

  • Shprehje(Linjë). Lloji i vlerës së vargut.
Kthen një vlerë të llojit Lloji që përmban llojin e vlerës së parametrit të funksionit.

Përdorimi i duhur i një skeme të përbërjes së të dhënave (DCS) ju lejon të:

  • të zvogëlojë ndjeshëm kohën e nevojshme për të zhvilluar një raport;
  • eliminoni nevojën për të krijuar një mbajtës të formës së menaxhuar;
  • merrni një rezultat të bukur me mundësinë e personalizimit shtesë nga përdoruesi.

Por jo të gjithë zhvilluesit shfrytëzojnë maksimalisht aftësitë e skemës, pasi jo të gjitha cilësimet e saj janë të dukshme dhe intuitive. Në veçanti, shumë njerëz e dinë që në 1C SKD ka fusha të llogaritura, megjithatë, ata nuk e kuptojnë plotësisht fushën e përdorimit të tyre dhe metodat e punës me to.

Çfarë është një fushë e llogaritur

Në shumicën e rasteve, burimi i të dhënave në diagramin e paraqitjes është një pyetje. Në parim, brenda vetë pyetjes tashmë mund të përdorni formula, ndërtime dhe shprehje të ndryshme. Shtrohet një pyetje e natyrshme: pse na nevojitet funksionaliteti i kopjuar?

Fakti është se sistemi i kontrollit të aksesit është diçka më shumë sesa thjesht shfaqja e rezultatit të një pyetjeje, dhe kjo duket qartë nga forma e krijimit të diagramit (Fig. 1).

Fushat e llogaritura ju lejojnë të kryeni veprime të caktuara me grupin e të dhënave të krijuara:

  • Nxjerr një grup të dhënash të marra nga një kërkesë në një qelizë specifike, duke kombinuar disa rreshta në një;
  • Qasja në funksionet e eksportit të modulit të përgjithshëm;
  • Ekzekutoni shprehjet e ndryshme të disponueshme për gjuhën e paraqitjes dhe përdorni funksionet speciale EvaluateExpression.

Le të kalojmë nëpër këtë listë.

Grup vlerash në një qelizë

Le të simulojmë një situatë ku është e nevojshme të merrni të gjithë numrat e dokumentit të marrjes për një palë në një qelizë të veçantë:


Kështu, ne kemi krijuar një fushë llogaritëse shtesë në skemën tonë;


Siç mund ta shihni nga shembulli i mësipërm, nuk ka vështirësi në shtimin dhe përpunimin e fushave të llogaritura. Ne përdorëm dy funksione: Array() dhe ConnectRows().

Disa fjalë për këtë të fundit. Përveç parametrit të parë që tregon identifikuesin e grupit, vlerave ose vlerës, dy të tjera mund të vendosen në të:

  1. Ndarësi i elementeve - tregon se cili karakter do të ndajë një element të grupit ose një rresht të tabelës së vlerave nga një tjetër (në rastin tonë, ne e hoqëm këtë parametër dhe një ndërprerje rreshti u caktua si parazgjedhje);
  2. Ndarësi i kolonave - një karakter që përdoret për të ndarë kolonat e një tabele vlerash (pikëpresje përdoret si parazgjedhje).

Qasja në funksionet e eksportit të një moduli të përbashkët

Funksionet e një moduli të përbashkët mund të veprojnë si një burim të dhënash për plotësimin e një fushe të llogaritur.

Disa pika të rëndësishme:

  • Funksioni duhet të jetë i eksportueshëm;
  • Nëse një funksion ndodhet në një modul të përbashkët me grupin e atributeve "Global", ai thirret drejtpërdrejt me emër, përndryshe funksioni duhet të thirret sipas skemës "Emri i modulit të përbashkët". "Emri i funksionit që do të thirret."

Si shembull përdorimi, ne do të marrim të njëjtën kërkesë për dokumentet e marrjes dhe do ta shfaqim atë në një kolonë të veçantë. Ne nuk do ta përshkruajmë vetë kërkesën, le të kalojmë drejtpërdrejt në fushat e llogaritura:


Kështu, shohim se pothuajse çdo procesor i të dhënave mund të inicializohet nga sistemi i kontrollit të aksesit, gjë që zgjeron ndjeshëm mundësitë e përdorimit të skemës.

Paraqitja e shprehjeve gjuhësore

Shumë shpesh në punën e një zhvilluesi lind një situatë kur është e nevojshme të shfaqet rezultati i ndarjes në fushën ACS:

  1. Llogaritni koston mesatare të artikullit;
  2. Të gjitha llojet e interesave;
  3. Llogaritjet e fitimeve mesatare, etj.

Për të shmangur problemet, në këto raste këshillohet që në fushën e llogaritur të futet një test për pjesëtimin me 0.

Kjo mund të bëhet duke përdorur konstruksionin “Zgjedhja kur….Pastaj… Ndryshe… Fund”.

Në fund, disa fjalë për funksionin mjaft të ri CalculateExpression(). Me ndihmën e tij, në veçanti, ju mund të llogaritni devijimet në kosto midis linjave aktuale dhe të mëparshme, bilancit kumulativ, etj.

Le të themi se mund të merrni shumën e dokumentit nga rreshti i mëparshëm i kërkesës sonë duke specifikuar vlerën Llogaritni shprehjen ("Shuma e dokumentit", "Shuma e mëparshme") në fushën "Shprehje".