Data Composition System Expression Language (1Cv8). Esimerkkejä SKD-funktion käytöstä - laske lauseke 1s SKD laskettujen kenttien lauseke

Tulevan julkaisun 8.2.14 valossa yritän kuvata joitain uusia tiedonkokoonpanojärjestelmän toimintoja.

Avaa tietojen asettelukaavio mieluiten ulkoisessa raportissa muokkauksen helpottamiseksi.

Lisäämme kyselytyypin tietojoukon ja kirjoitamme joko manuaalisesti tai kyselyn suunnittelijalla yksinkertaisen kyselyn:

1. Aseta pyyntö kulunvalvontajärjestelmään.

2. Aseta lasketut kentät kulunvalvontajärjestelmään

3. Määritä tietojen asettelu Asetukset-välilehdellä

4. Käynnistä 1C Enterprise 8.2.14. Avaa raportti. Muodostamme, vastaanotamme.

Kuvaus itse uusista toiminnoista:

1. Nykyinen päivämäärä ()

Palauttaa järjestelmän päivämäärän. Kun laaditaan asettelua, kaikissa asettelussa olevissa lausekkeissa CurrentDate()-funktio korvataan nykyisen päivämäärän arvolla.

2. LASKELAUS()

Syntaksi:

Laske lauseke(,)

Kuvaus:

Funktio on suunniteltu arvioimaan lauseke jonkin ryhmittelyn yhteydessä.

Toiminto ottaa huomioon ryhmittelyjen valinnan, mutta ei ota huomioon hierarkkisia valintoja.

Toimintoa ei voi soveltaa ryhmittelyyn kyseisen ryhmän ryhmävalinnassa. Esimerkiksi nimikkeistöryhmittelyä valittaessa et voi käyttää lauseketta LaskeLauseke("Sum(Summaliikevaihto)", "TotalTotal") > 1000. Mutta tällaista lauseketta voidaan käyttää hierarkkisessa valinnassa.

Jos lopputietue edeltää aloitustietuetta, katsotaan, ettei tietueita ole yksityiskohtaisen tiedon laskemiseen ja aggregaattifunktioiden laskemiseen.

Laskettaessa aikavälilausekkeita loppusummalle (Ryhmittelyparametri on asetettu GrandTotal-arvoon), oletetaan, että yksityiskohtaisen tiedon laskemiseen ja koontifunktioiden laskemiseen ei ole tietueita.

Asettelulinkkeri luotaessa funktiolauseketta Laske lauseke, jos järjestyslauseke sisältää kenttiä, joita ei voi käyttää ryhmittelyssä, korvaa funktion Laske lauseke päällä TYHJÄ.

Vaihtoehdot

Tyyppi: Linja. Arvioitava lauseke.

Tyyppi: Linja. Sisältää sen ryhmän nimen, jonka yhteydessä lauseke arvioidaan. Jos ryhmän nimenä käytetään tyhjää merkkijonoa, laskenta suoritetaan nykyisen ryhmittelyn yhteydessä. Jos GeneralTotal-merkkijonoa käytetään ryhmän nimenä, laskenta suoritetaan loppusumman yhteydessä. Muussa tapauksessa laskenta suoritetaan samannimisen pääryhmän yhteydessä.

Esimerkiksi:

Summa(Sales.SumTurnover)/Laske("Sum(Sales.SumTurnover)", "Total")

Tässä esimerkissä tulos on summan suhde kenttien mukaan Myynti.Summa Liikevaihto ryhmitellä tietueet saman kentän summaan koko asettelussa;

Tyyppi: Linja. Parametri voi saada seuraavat arvot:

· loppusumma— lauseke lasketaan kaikille ryhmittelytietueille.

· Hierarkia— lauseke arvioidaan päähierarkkisen tietueen osalta, jos sellainen on, ja koko ryhmittelylle, jos päähierarkkista tietuetta ei ole.

· Ryhmittely— lauseke arvioidaan nykyiselle ryhmäryhmittelytietueelle.

· GroupingNonResource— Kun funktio lasketaan ryhmätietueelle resurssien mukaan, lauseke lasketaan alkuperäisen ryhmittelyn ensimmäiselle ryhmätietueelle.

Kun lasketaan funktiota Laske lauseke() merkityksen kanssa GroupingNonResource ryhmätietueille, joita ei ole ryhmitelty resurssien mukaan, funktio lasketaan samalla tavalla kuin se laskettaisiin, jos parametrin arvo olisi sama kuin arvo Ryhmittely.

Tiedon koostumuksen asettelun rakennustyökalu luoessaan tietojen koostumuksen asettelua tulostettaessa resurssikenttää, jolla ryhmittely suoritetaan asettelulle, sijoittaa asetteluun lausekkeen, joka lasketaan funktiolla Laske lauseke() , joka osoittaa parametrin GroupingNonResource. Muiden resurssien osalta tavalliset resurssilausekkeet sijoitetaan resurssien ryhmittelyyn.

Tyyppi: Linja. Ilmaisee, mistä tietueesta fragmentin tulee alkaa, mistä aggregaattilausekefunktiot tulee laskea ja mistä tietueesta saadaan kenttäarvot aggregaattifunktioiden ulkopuolelta. Arvo voi olla jokin seuraavista:

· Ensimmäinen

· Viimeinen (viimeinen)

· Edellinen

· Seuraava (seuraava)

· Nykyinen

· LimitingValue(BoundaryValue) LimitingValue

Tyyppi: Linja. Osoittaa mihin tietueeseen fragmenttia tulee jatkaa, missä lausekkeen aggregaattifunktiot tulee laskea. Arvo voi olla jokin seuraavista:

· Ensimmäinen. Ensimmäinen ryhmittelytietue on hankittava. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä ryhmittelyn alusta. Tuloksena olevan arvon on oltava nollaa suurempi kokonaisluku. Esimerkiksi First(3) - vastaanottaa kolmannen tietueen ryhmittelyn alusta.

Jos ensimmäinen tietue on ryhmittelyn ulkopuolella, katsotaan, että tietueita ei ole. Esimerkiksi jos tietueita on 3 ja haluat saada First(4), katsotaan, että tietueita ei ole.

· Viimeinen (viimeinen). Sinun on hankittava viimeinen ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä ryhmittelyn lopusta. Tuloksena olevan arvon on oltava nollaa suurempi kokonaisluku. Esimerkiksi Last(3) - vastaanottaa kolmannen tietueen ryhmän lopusta.

Jos viimeinen tietue on ryhmittelyn ulkopuolella, katsotaan, että tietueita ei ole. Esimerkiksi, jos tietueita on 3 ja haluat saada Last(4), katsotaan, että tietueita ei ole.

· Edellinen. Sinun on hankittava edellinen ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä takaisin nykyisestä ryhmittelytietueesta. Esimerkiksi Edellinen(2) - edellisen saaminen edellisestä tietueesta.

Jos edellinen tietue ylittää ryhmittelyn (esimerkiksi toiselle ryhmittelytietueelle on hankittava Edellinen(3)), saadaan ensimmäinen ryhmittelytietue.

Haettaessa edellistä tietuetta ryhmittelysummalle katsotaan, että ensimmäinen tietue on saatu.

· Seuraava (seuraava). Sinun on hankittava seuraava ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä eteenpäin nykyisestä ryhmittelytietueesta. Esimerkiksi Seuraava(2) - seuraavaksi pääseminen seuraavasta tietueesta.

Jos seuraava tietue ylittää ryhmittelyn, katsotaan, että tietueita ei ole. Esimerkiksi, jos merkintöjä on 3 ja kolmas vastaanottaa Next() , niin katsotaan, että merkintöjä ei ole.

Kun ryhmittelysummalle vastaanotetaan seuraava tietue, katsotaan, ettei tietueita ole.

· Nykyinen. Sinun on hankittava nykyinen ennätys.

Kun haetaan ryhmittelysummaa, saadaan ensimmäinen tietue.

· LimitingValue(BoundaryValue). Tarve saada tietue määritetyllä arvolla. Sanan jälkeen LimitingValue suluissa on ilmoitettava lauseke, jonka arvolla haluat aloittaa fragmentin, ensimmäinen järjestyskenttä.

Ensimmäinen tietue, jonka järjestyskentän arvo on suurempi tai yhtä suuri kuin määritetty arvo, palautetaan tietueeksi. Esimerkiksi, jos Jakso-kenttää käytetään tilauskenttänä ja sen arvot ovat 01/01/2010, 02/01/2010, 03/01/2010 ja haluat saada Rajoitusarvo(PäiväysAika(2010, 1, 15)), sitten vastaanotetaan tietue, jonka päivämäärä on 1.2.2010.

Tyyppi: Linja. Luetteloi järjestyssääntöjä kuvaavat lausekkeet pilkuilla erotettuina. Jos sitä ei ole määritetty, järjestys suoritetaan samalla tavalla kuin ryhmittelylle, jolle lauseke arvioidaan. Jokaisen lausekkeen jälkeen voit määrittää avainsanan Ikä(tilataan nousevassa järjestyksessä), Laskeva(tilaus alenevassa järjestyksessä) ja Automaattinen tilaus(järjestääksesi viitekentät niiden kenttien mukaan, joiden mukaan haluat järjestää viitatun kohteen). Sana Automaattinen tilaus voidaan käyttää kuten sanaa Ikä, niin sanan kanssa Laskeva.

Tyyppi: Linja. Sama kuin parametri Lajittelu. Käytetään hierarkkisten tietueiden järjestämiseen. Jos sitä ei ole määritetty, asettelun rakentaja luo järjestyksen parametrissa määritetyn järjestyksen mukaisesti Lajittelu.

Tyyppi: Linja. Määrittää säännön edellisen tai seuraavan tietueen määrittämiseksi, jos tietueita on useita, joilla on sama järjestysarvo:

· Erikseen osoittaa, että järjestetyn tietueen sarjaa käytetään määrittämään edelliset ja seuraavat tietueet. Oletusarvo.

· Yhdessä osoittaa, että edellinen ja seuraava tietue määritetään järjestyslausekkeiden arvojen perusteella.

Jos tuloksena oleva sarja on esimerkiksi järjestetty päivämäärän mukaan:

Päivämäärä Koko nimi Merkitys
1 1. tammikuuta 2001

Ivanov M.

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

Erikseen, Tuo:

§ kohdan 3 edellinen merkintä on merkintä 2.

Nykyinen, nykyinen(vastaavasti parametrit alkaa Ja Loppu), silloin tietueelle 2 tämä fragmentti koostuu yhdestä tietueesta 2. Lauseke on yhtä suuri kuin 20.

Jos parametrin arvo on Yhdessä, Tuo:

§ kohdan 3 edellinen merkintä on merkintä 1.

§ jos laskentafragmentti on määritelty Nykyinen, nykyinen(vastaavasti parametrit alkaa Ja Loppu), silloin tietueelle 2 tämä fragmentti koostuu tietueista 2 ja 3. Lauseke Laske lauseke("Sum(arvo)", Nykyinen, Nykyinen) on yhtä suuri kuin 50.

Kun määritetään parametrin arvo, joka on yhtä suuri kuin Yhdessä, parametreissa alkaa Ja Loppu positioille ei voi määrittää siirtymää Ensimmäinen, viimeinen, edellinen, seuraava.

LaskeLauseus("Summa(Summaliikevaihto)", "Ensimmäinen", "Nykyinen")

Jos haluat saada edellisen rivin ryhmittelyarvon, voit käyttää seuraavaa lauseketta:

CalculateExpression("Arvo", "Edellinen")

Lista Uusi toiminnot:

CalculateExpressionWithGroupArray(,) -

Funktio palauttaa taulukon, jonka jokainen elementti sisältää lausekkeen arvioinnin tuloksen ryhmittelyä varten määritetyn kentän mukaan.

CalculateExpressionWithGroupValueTable(,) -

Funktio palauttaa arvotaulukon, jonka jokainen rivi sisältää lausekkeiden arviointitulokset ryhmittelyä varten määritetyn kentän mukaan

Arvotäytetty() - Palauttaa True, jos arvo on muu kuin tämän tyypin oletusarvo, muu kuin NULL, muu kuin tyhjä viite, muu kuin Undefined. Boolen arvoista tarkistetaan NULL-arvot. Merkkijonoista tarkistetaan, ettei niissä ole muita kuin välilyöntejä

Muoto(, ) - Vastaanota muotoiltu merkkijono välitetystä arvosta. Muotomerkkijono asetetaan 1C:Enterprise-järjestelmän muotomerkkijonon mukaisesti.

Alimerkkijono(, , ) - Tämä toiminto on suunniteltu poimimaan alimerkkijono merkkijonosta.

Linjan pituus() - Funktio on suunniteltu määrittämään merkkijonon pituus. Parametri on merkkijonolauseke

Linja() - Jos taulukko välitetään parametrina, funktio palauttaa merkkijonon, joka sisältää merkkijonoesitykset kaikista taulukon elementeistä erotettuna "; "-merkeillä. Jos arvotaulukko välitetään parametrina, funktio palauttaa merkkijonon, joka sisältää merkkijonoesitykset arvotaulukon kaikista riveistä, jolloin kunkin rivin soluesitykset on erotettu ";"-merkeillä ja rivit rivinvaihdolla. merkki. Jos elementin merkkijonoesitys on tyhjä, sen esityksen sijaan näytetään merkkijono.

  • 1C-Bitrix
  • Yksi liiketoimintaohjelmistojen tärkeimmistä osa-alueista on raportointi. Yrityksen kohtalo voi riippua (eikä kuvaannollisessa mielessä!) siitä, kuinka helppoa olemassa olevaa raporttia on mukauttaa liiketoiminnan (ja lainsäädännön) muuttuviin tarpeisiin tai luoda uusi, olipa se sitten veroviraston raportti tai kaavio tavaroiden kysynnän vuodenajasta ja muista tekijöistä riippuvuudesta. Tehokas ja joustava raportointijärjestelmä, jonka avulla on helppo poimia tarvittavat tiedot järjestelmästä, esittää ne ymmärrettävässä muodossa, jolloin loppukäyttäjä voi konfiguroida uudelleen vakioraportin nähdäkseen tiedot uudessa valossa – tämä on ihanne, että jokainen liiketoimintajärjestelmän pitäisi pyrkiä.

    1C:Enterprise-alustassa "Data Composition System" -niminen mekanismi (lyhennettynä DCS) vastaa raporttien luomisesta. Tässä artikkelissa yritämme antaa lyhyen kuvauksen ACS-mekanismin ideasta ja arkkitehtuurista ja sen ominaisuuksista.


    ACS on mekanismi, joka perustuu raporttien deklaratiiviseen kuvaukseen. Kulunvalvontajärjestelmä on suunniteltu raporttien tuottamiseen ja monimutkaisen rakenteen tietojen näyttämiseen. Muuten, raporttien kehittämisen lisäksi ACS-mekanismia käytetään myös 1C:Enterprisessa dynaamisessa luettelossa, joka on työkalu luettelotietojen näyttämiseen monipuolisilla toiminnoilla (tasaisten ja hierarkkisten luetteloiden näyttäminen, rivien ehdollinen suunnittelu, ryhmittely jne.). ).

    Hieman historiaa

    1C:Enterprise 8 -alustan aivan ensimmäisessä versiossa, versiossa 8.0, raportit tehtiin seuraavasti:
    1. Yksi tai useampi kysely kirjoitettiin 1C-kyselykielellä (SQL:n kaltainen kieli, siitä lisää alla).
    2. Kirjoitettiin koodi, joka siirsi suoritettujen kyselyjen tulokset laskentataulukkodokumenttiin tai -kaavioon. Koodi voi myös tehdä työtä, jota ei voitu tehdä kyselyssä - se esimerkiksi laski arvot sisäänrakennetulla 1C-kielellä.
    Lähestymistapa on suoraviivainen, mutta ei kätevin - visuaalisia asetuksia on vähän, kaikki on ohjelmoitava "kädestä käteen". Ja yksi täysin uuden alustan ”1C:Enterprise 8” valttikorteista tuolloin oli manuaalisesti kirjoitettavan koodin määrän minimoiminen sovellusratkaisussa erityisesti visuaalisen suunnittelun avulla. Olisi loogista seurata samaa reittiä raportointimekanismissa. Tämä tehtiin kehittämällä uusi mekanismi - Data Composition System.

    Yksi kulunvalvontajärjestelmän perustana olleista ideoista oli raporttien joustavuus ja mukauttaminen, joka oli sekä kehittäjän että loppukäyttäjän ulottuvilla. Ihannetapauksessa haluaisin antaa loppukäyttäjälle pääsyn samoihin raporttien suunnittelutyökaluihin kuin kehittäjälle. Olisi loogista luoda yksi työkalusarja, joka on kaikkien saatavilla. No, koska työkalut edellyttävät loppukäyttäjän osallistumista, se tarkoittaa, että ohjelmoinnin käyttö niissä tulisi vähentää minimiin (on parasta poistaa se kokonaan) ja visuaalisia asetuksia tulisi käyttää maksimaalisesti.

    Ongelman muotoilu

    Kehitystiimin tehtävänä oli luoda raportointijärjestelmä, joka ei perustu algoritmiseen (eli koodin kirjoittamisen kautta), vaan deklaratiiviseen lähestymistapaan raporttien luomisessa. Ja uskomme, että ongelma on ratkaistu onnistuneesti. Kokemuksemme mukaan noin 80 % vaaditusta raportoinnista voidaan toteuttaa ACS:llä ilman yhtä koodiriviä (paitsi laskettujen kenttien kaavojen kirjoittaminen), enimmäkseen visuaalisten asetusten avulla.
    SDS:n ensimmäisen version kehittäminen kesti noin 5 henkilötyövuotta.

    Kaksi kieltä

    Raporttien luomiseen käytetään kahta kieltä. Yksi on kyselykieli, jota käytetään tietojen hakemiseen. Toinen on tiedon koostumuksen ilmaisukieli, joka on tarkoitettu järjestelmän eri osissa käytettyjen lausekkeiden kirjoittamiseen, esimerkiksi tiedonkokoonpanoasetuksissa käyttäjäkenttien ilmaisujen kuvaamiseen.

    Kyselyn kieli

    Kyselykieli perustuu SQL:ään, ja se on helppo oppia SQL:n tunteville. Esimerkkipyyntö:

    On helppo nähdä SQL-kyselyjen standardiosien analogit - SELECT, FROM, GROUP BY, ORDER BY.

    Samaan aikaan kyselykieli sisältää huomattavan määrän laajennuksia, joiden tarkoituksena on heijastaa taloudellisten ja taloudellisten ongelmien erityispiirteitä ja maksimoida sovellusratkaisujen kehittämisponnistelujen vähentäminen:

    • Kenttiin pääsy pisteellä. Jos taulukon kentät ovat viitetyyppisiä (niihin tallennetaan linkkejä toisen taulukon objekteihin), kehittäjä voi viitata niihin pyynnön tekstissä "." kautta, eikä järjestelmä rajoita sisäkkäisten tasojen määrää. tällaisista linkeistä (esimerkiksi Asiakastilaus. Sopimus. Organisaatio. Puhelin).
    • Moniulotteinen ja monitasoinen tulosten muodostus. Summit ja välisummat muodostetaan ryhmittelyä ja hierarkiaa huomioiden, tasot voidaan kulkea missä tahansa järjestyksessä summaamalla ja varmistetaan summien oikea rakentaminen aikaulottuvuuksien mukaan.
    • Tuki virtuaalisille pöydille. Järjestelmän tarjoamien virtuaalitaulukoiden avulla voit saada lähes valmiita tietoja useimpiin sovellustehtäviin ilman, että sinun tarvitsee luoda monimutkaisia ​​kyselyitä. Siten virtuaalinen taulukko voi tarjota tietoja tuotesaldoista jaksoittain tietyllä hetkellä. Samalla virtuaalitaulukot hyödyntävät maksimaalisesti tallennettua tietoa, esimerkiksi aiemmin laskettuja kokonaismääriä jne.
    • Väliaikaiset pöydät. Kyselykielen avulla voit käyttää tilapäisiä taulukoita kyselyissä. Niiden avulla voit parantaa kyselyn suorituskykyä, joissain tapauksissa vähentää estojen määrää ja tehdä kyselyn tekstistä helpompi lukea.
    • Eräpyynnöt. Tilapäisten taulukoiden työskentelyn helpottamiseksi kyselykieli tukee eräkyselyiden kanssa työskentelyä - siten väliaikaisen taulukon luominen ja sen käyttö sijoitetaan yhteen kyselyyn. Eräpyyntö on puolipisteillä (";") erotettu pyyntöjen sarja. Erän pyynnöt suoritetaan peräkkäin. Eräpyynnön suorittamisen tulos käytetystä menetelmästä riippuen on joko erän viimeisen pyynnön palauttama tulos tai joukko tuloksia kaikista erän kyselyistä siinä järjestyksessä, jossa erän kyselyt seuraavat. .
    • Haetaan referenssikenttien esityksiä. Jokaisella objektitaulukolla (johon viitekirja tai asiakirja on tallennettu) on virtuaalinen kenttä - "View". Tämä kenttä sisältää objektin tekstiesityksen ja helpottaa raportin laatijan työtä. Joten asiakirjan osalta tämä kenttä sisältää kaikki keskeiset tiedot - asiakirjan tyypin nimen, sen numeron ja päivämäärän (esimerkiksi "Ale 000000003 alkaen 07/06/2017 17:49:14"), säästäen kehittäjän lasketun kentän kirjoittaminen.
    • jne.
    Pyyntömekanismi muokkaa pyyntöä automaattisesti ottaen huomioon roolit, joihin käyttäjä, jonka puolesta pyyntö suoritetaan, kuuluu (eli käyttäjä näkee vain ne tiedot, jotka hänellä on oikeus nähdä) ja toiminnalliset vaihtoehdot (ts. sovellusratkaisun toiminnallisuudessa määritettyjen kanssa).

    Kulunvalvontajärjestelmille on myös erityisiä kyselykielilaajennuksia. Laajennus suoritetaan käyttämällä erityisiä syntaktisia ohjeita, jotka on suljettu kiharasulkeisiin ja sijoitettu suoraan pyynnön runkoon. Laajennusten avulla kehittäjä määrittää, mitä toimintoja loppukäyttäjä voi suorittaa mukauttaessaan raporttia.

    Esimerkiksi:

    • VALITA. Tämä lause kuvaa kenttiä, jotka käyttäjä voi valita tulostettavaksi. Tämän avainsanan jälkeen luetellaan pääkyselyn valintaluettelon kenttien aliakset, jotka ovat käytettävissä määritettäessä, pilkuilla erotettuina. Esimerkki: (VALITSE tuote, varasto)
    • MISSÄ. Kuvataan kentät, joissa käyttäjä voi tehdä valintaa. Tämä ehdotus käyttää taulukkokenttiä. Valintaluettelokentän aliaksien käyttö ei ole sallittua. Jokainen liiton osa voi sisältää oman WHERE-elementin. Esimerkkejä: (WHERE Tuote.*, Varasto), (WHERE asiakirja.päivämäärä >= &aloituspäivä, asiakirja.päivämäärä<= &ДатаКонца}
    • jne.
    Esimerkki laajennusten käytöstä:

    Tiedon koostumuksen ilmaisukieli

    Data Composition Expression Language on suunniteltu kirjoittamaan lausekkeita, joita käytetään erityisesti kuvaamaan mukautettuja kenttälausekkeita. SKD:n avulla voit määrittää mukautettuja kenttiä raporttiin käyttämällä joko omia lausekkeitasi tai vaihtoehtojoukkoja ja niiden valintaehtoja (analogisesti SQL:n CASE:n kanssa). Mukautetut kentät ovat samanlaisia ​​kuin lasketut kentät. Ne voidaan asettaa sekä konfiguraattorissa että 1C:Enterprise-tilassa, mutta yleisten moduulien toimintoja ei voi käyttää mukautetuissa kenttälausekkeissa. Siksi mukautetut kentät on tarkoitettu käyttäjälle eikä kehittäjälle.

    Esimerkki:

    Kulunvalvontajärjestelmän raportin luontiprosessi

    Raporttia luotaessa meidän on luotava asettelu, joka määrittää, kuinka tiedot näytetään raportissa. Voit luoda asettelun tietojen asettelukaavion perusteella. Tietojen asettelukaavio kuvaa raporttiin toimitettavien tietojen olemusta (mistä tiedot saa ja miten voit hallita sen asettelua). Tiedonkoostumusmalli on perusta, jolle voidaan luoda kaikenlaisia ​​raportteja. Tietojen kokoonpanokaavio voi sisältää:
    • pyytää tekstiä tietojen kokoonpanojärjestelmän ohjeineen;
    • useiden tietojoukkojen kuvaus;
    • yksityiskohtainen kuvaus käytettävissä olevista kentistä;
    • useiden tietojoukkojen välisten suhteiden kuvaaminen;
    • tiedonkeruuparametrien kuvaus;
    • kenttäasettelujen ja ryhmittelyjen kuvaus;
    • jne.

    Voit esimerkiksi lisätä kyselyn tietojen kokoonpanomalliin tietojoukona ja kutsua kyselyn rakentajan, jonka avulla voit luoda graafisesti mielivaltaisen monimutkaisen kyselyn:

    Kyselyn suunnittelijan käynnistämisen tulos on kyselyteksti (1C:Enterprise-kyselykielellä). Tätä tekstiä voidaan tarvittaessa säätää manuaalisesti:

    Tiedon asettelukaaviossa voi olla useita tietojoukkoja, tietojoukkoja voidaan linkittää asettelussa millä tahansa tavalla, laskettuja kenttiä voidaan lisätä, raportin parametreja voidaan määrittää jne. On syytä mainita 1C:Enterprisen kyselymekanismin mielenkiintoinen ominaisuus. Kyselyt käännetään lopulta SQL:n murteeksi, joka on ominaista sille DBMS:lle, jonka kanssa sovellus toimii suoraan. Yleensä yritämme käyttää DBMS-palvelimien ominaisuuksia maksimaalisesti (meitä rajoittaa se, että käytämme vain niitä ominaisuuksia, jotka ovat samanaikaisesti saatavilla kaikissa 1C:Enterprise-alustan tukemissa DBMS-järjestelmissä - MS SQL, Oracle, IBM DB2 , PostgreSQL). Näin ollen voimme käyttää laskettujen kenttien kyselytasolla vain niitä funktioita, jotka on käännetty SQL:ksi.

    Mutta tietojen kokoonpanomallin tasolla voimme jo lisätä mukautettuja kenttiä ja käyttää niissä toimintoja sisäänrakennetulla 1C-kehityskielellä (mukaan lukien kirjoittamamme), mikä laajentaa huomattavasti raporttien ominaisuuksia. Teknisesti se näyttää tältä - kaikki mikä voidaan kääntää SQL:ksi, käännetään SQL:ksi, kysely suoritetaan DBMS-tasolla, kyselyn tulokset sijoitetaan 1C-sovelluspalvelimen muistiin ja SKD laskee jokaiselle tietueelle arvot lasketuista kentistä, joiden kaavat on kirjoitettu 1C-kielellä.


    Mukautettujen kenttien lisääminen

    Voit lisätä raporttiin mielivaltaisen määrän taulukoita ja kaavioita:


    Raportin suunnittelija


    Ajonaikainen raportti

    SKD:n avulla käyttäjä voi lisätä raporttiin monimutkaisia ​​valintoja (jotka lisätään pyyntöön oikeisiin paikkoihin), ehdollisen suunnittelun (mahdollistaa näytettävien kenttien muotoilun eri tavalla - fontilla, värillä jne. niiden arvoista riippuen ) ja paljon enemmän. .

    Raportin rakentamis- ja luomisprosessi voidaan kuvata lyhyesti seuraavasti:

    • Kehittäjä määrittää suunnittelun aikana suunnittelijan avulla (tai ajon aikana koodin avulla) tietojen asettelumallin:
      • Pyynnön/pyyntöjen teksti
      • Laskettujen kenttien kuvaus
      • Pyyntöjen väliset suhteet (jos niitä on useita)
      • Raporttiasetukset
      • Oletusasetukset
      • Jne.
    • Yllä olevat asetukset tallennetaan asetteluun
    • Käyttäjä avaa raportin
      • Mahdollisesti tekee lisäasetuksia (esimerkiksi muuttaa parametriarvoja)
      • Napsauta "Luo" -painiketta
    • Käyttäjäasetuksia sovelletaan kehittäjän määrittämään tietojen kokoonpanomalliin.
    • Muodostetaan välimuotoinen datakokoonpanon asettelu, joka sisältää ohjeet tiedon vastaanottamisesta. Erityisesti asettelussa määritettyjä kyselyjä säädetään. Siten kentät, joita ei käytetä raportissa, poistetaan pyynnöstä (tämä tehdään vastaanotettavan tiedon määrän minimoimiseksi). Kaikki kentät, jotka osallistuvat laskettuihin kenttäkaavoihin, lisätään kyselyyn.
    • Tietojen kokoonpanoprosessori tulee peliin. Asetteluprosessori suorittaa kyselyitä, linkittää tietojoukkoja, laskee arvot lasketuille kentille ja resursseille sekä suorittaa ryhmittelyn. Sanalla sanoen, se tekee kaikki laskelmat, joita ei suoritettu DBMS-tasolla.
    • Tiedonantoprosessori käynnistää suorituspyynnön ja näyttää vastaanotetut tiedot laskentataulukkoasiakirjassa, kaaviossa jne.


    Raportin luontiprosessi ACS-mekanismin avulla

    Pyrimme minimoimaan palvelimelta asiakassovellukseen siirrettävien raporttitietojen määrää. Kun näytät tietoja laskentataulukkodokumentissa, taulukkodokumenttia avattaessa siirrämme palvelimelta vain ne rivit, jotka käyttäjä näkee dokumentin alussa. Kun käyttäjä liikkuu dokumenttia pitkin, puuttuvat tiedot ladataan palvelimelta asiakkaalle.

    Mukautetut asetukset

    Kaikki ACS-työkalut ovat sekä kehittäjän että loppukäyttäjän saatavilla. Käytäntö on kuitenkin osoittanut, että loppukäyttäjää usein pelottaa työkalujen runsaus. Lisäksi useimmissa tapauksissa loppukäyttäjä ei tarvitse kaikkia asetuksia - riittää, että hänellä on nopea pääsy yhden tai kahden raporttiparametrin (esimerkiksi jakso ja vastapuoli) määrittämiseen. Tietystä alustan versiosta alkaen raportin kehittäjällä on mahdollisuus merkitä, mitkä raporttiasetukset ovat käyttäjän käytettävissä. Tämä tehdään käyttämällä "Sisällytä käyttäjäasetuksiin" -valintaruutua. Lisäksi raporttiasetuksissa on nyt "Näyttötila"-lippu, joka ottaa yhden kolmesta arvosta:
    • Nopea pääsy. Asetus näkyy suoraan raporttiikkunan yläosassa.
    • Tavallinen. Asetus on käytettävissä "Asetukset"-painikkeen kautta.
    • Ei saatavilla. Asetus ei ole loppukäyttäjän käytettävissä.


    Näyttötilan asettaminen suunnitteluajassa


    Näytä asetus Quick Access -tilassa ajon aikana (Luo-painikkeen alla)

    Kehittämissuunnitelmat

    Yksi painopistealueistamme kulunvalvontajärjestelmien kehittämisessä on käyttäjäasetusten yksinkertaistaminen. Kokemuksemme osoittavat, että joillekin loppukäyttäjille käyttäjäasetusten käsittely on edelleen suuri urakka. Otamme tämän huomioon ja työskentelemme tähän suuntaan. Näin ollen myös kehittäjien on helpompi työskennellä kulunvalvontajärjestelmien kanssa, koska Haluamme, kuten ennenkin, tarjota yhden työkalun raporttien luomiseen sekä kehittäjälle että loppukäyttäjälle.

    Tulevan julkaisun 8.2.14 valossa yritän kuvata joitain uusia tiedonkokoonpanojärjestelmän toimintoja.

    Avaa tietojen asettelukaavio mieluiten ulkoisessa raportissa muokkauksen helpottamiseksi.

    Lisäämme kyselytyypin tietojoukon ja kirjoitamme joko manuaalisesti tai kyselyn suunnittelijalla yksinkertaisen kyselyn:

    1. Aseta pyyntö kulunvalvontajärjestelmään.

    2. Aseta lasketut kentät kulunvalvontajärjestelmään

    3. Määritä tietojen asettelu Asetukset-välilehdellä

    4. Käynnistä 1C Enterprise 8.2.14. Avaa raportti. Muodostamme, vastaanotamme.

    Kuvaus itse uusista toiminnoista:

    1. Nykyinen päivämäärä ()

    Palauttaa järjestelmän päivämäärän. Kun laaditaan asettelua, kaikissa asettelussa olevissa lausekkeissa CurrentDate()-funktio korvataan nykyisen päivämäärän arvolla.

    2. LASKELAUS()

    Syntaksi:

    Laske lauseke(,)

    Kuvaus:

    Funktio on suunniteltu arvioimaan lauseke jonkin ryhmittelyn yhteydessä.

    Toiminto ottaa huomioon ryhmittelyjen valinnan, mutta ei ota huomioon hierarkkisia valintoja.

    Toimintoa ei voi soveltaa ryhmittelyyn kyseisen ryhmän ryhmävalinnassa. Esimerkiksi nimikkeistöryhmittelyä valittaessa et voi käyttää lauseketta LaskeLauseke("Sum(Summaliikevaihto)", "TotalTotal") > 1000. Mutta tällaista lauseketta voidaan käyttää hierarkkisessa valinnassa.

    Jos lopputietue edeltää aloitustietuetta, katsotaan, ettei tietueita ole yksityiskohtaisen tiedon laskemiseen ja aggregaattifunktioiden laskemiseen.

    Laskettaessa aikavälilausekkeita loppusummalle (Ryhmittelyparametri on asetettu GrandTotal-arvoon), oletetaan, että yksityiskohtaisen tiedon laskemiseen ja koontifunktioiden laskemiseen ei ole tietueita.

    Asettelulinkkeri luotaessa funktiolauseketta Laske lauseke, jos järjestyslauseke sisältää kenttiä, joita ei voi käyttää ryhmittelyssä, korvaa funktion Laske lauseke päällä TYHJÄ.

    Vaihtoehdot

    Tyyppi: Linja. Arvioitava lauseke.

    Tyyppi: Linja. Sisältää sen ryhmän nimen, jonka yhteydessä lauseke arvioidaan. Jos ryhmän nimenä käytetään tyhjää merkkijonoa, laskenta suoritetaan nykyisen ryhmittelyn yhteydessä. Jos GeneralTotal-merkkijonoa käytetään ryhmän nimenä, laskenta suoritetaan loppusumman yhteydessä. Muussa tapauksessa laskenta suoritetaan samannimisen pääryhmän yhteydessä.

    Esimerkiksi:

    Summa(Sales.SumTurnover)/Laske("Sum(Sales.SumTurnover)", "Total")

    Tässä esimerkissä tulos on summan suhde kenttien mukaan Myynti.Summa Liikevaihto ryhmitellä tietueet saman kentän summaan koko asettelussa;

    Tyyppi: Linja. Parametri voi saada seuraavat arvot:

    · loppusumma— lauseke lasketaan kaikille ryhmittelytietueille.

    · Hierarkia— lauseke arvioidaan päähierarkkisen tietueen osalta, jos sellainen on, ja koko ryhmittelylle, jos päähierarkkista tietuetta ei ole.

    · Ryhmittely— lauseke arvioidaan nykyiselle ryhmäryhmittelytietueelle.

    · GroupingNonResource— Kun funktio lasketaan ryhmätietueelle resurssien mukaan, lauseke lasketaan alkuperäisen ryhmittelyn ensimmäiselle ryhmätietueelle.

    Kun lasketaan funktiota Laske lauseke() merkityksen kanssa GroupingNonResource ryhmätietueille, joita ei ole ryhmitelty resurssien mukaan, funktio lasketaan samalla tavalla kuin se laskettaisiin, jos parametrin arvo olisi sama kuin arvo Ryhmittely.

    Tiedon koostumuksen asettelun rakennustyökalu luoessaan tietojen koostumuksen asettelua tulostettaessa resurssikenttää, jolla ryhmittely suoritetaan asettelulle, sijoittaa asetteluun lausekkeen, joka lasketaan funktiolla Laske lauseke() , joka osoittaa parametrin GroupingNonResource. Muiden resurssien osalta tavalliset resurssilausekkeet sijoitetaan resurssien ryhmittelyyn.

    Tyyppi: Linja. Ilmaisee, mistä tietueesta fragmentin tulee alkaa, mistä aggregaattilausekefunktiot tulee laskea ja mistä tietueesta saadaan kenttäarvot aggregaattifunktioiden ulkopuolelta. Arvo voi olla jokin seuraavista:

    · Ensimmäinen

    · Viimeinen (viimeinen)

    · Edellinen

    · Seuraava (seuraava)

    · Nykyinen

    · LimitingValue(BoundaryValue) LimitingValue

    Tyyppi: Linja. Osoittaa mihin tietueeseen fragmenttia tulee jatkaa, missä lausekkeen aggregaattifunktiot tulee laskea. Arvo voi olla jokin seuraavista:

    · Ensimmäinen. Ensimmäinen ryhmittelytietue on hankittava. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä ryhmittelyn alusta. Tuloksena olevan arvon on oltava nollaa suurempi kokonaisluku. Esimerkiksi First(3) - vastaanottaa kolmannen tietueen ryhmittelyn alusta.

    Jos ensimmäinen tietue on ryhmittelyn ulkopuolella, katsotaan, että tietueita ei ole. Esimerkiksi jos tietueita on 3 ja haluat saada First(4), katsotaan, että tietueita ei ole.

    · Viimeinen (viimeinen). Sinun on hankittava viimeinen ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä ryhmittelyn lopusta. Tuloksena olevan arvon on oltava nollaa suurempi kokonaisluku. Esimerkiksi Last(3) - vastaanottaa kolmannen tietueen ryhmän lopusta.

    Jos viimeinen tietue on ryhmittelyn ulkopuolella, katsotaan, että tietueita ei ole. Esimerkiksi, jos tietueita on 3 ja haluat saada Last(4), katsotaan, että tietueita ei ole.

    · Edellinen. Sinun on hankittava edellinen ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä takaisin nykyisestä ryhmittelytietueesta. Esimerkiksi Edellinen(2) - edellisen saaminen edellisestä tietueesta.

    Jos edellinen tietue ylittää ryhmittelyn (esimerkiksi toiselle ryhmittelytietueelle on hankittava Edellinen(3)), saadaan ensimmäinen ryhmittelytietue.

    Haettaessa edellistä tietuetta ryhmittelysummalle katsotaan, että ensimmäinen tietue on saatu.

    · Seuraava (seuraava). Sinun on hankittava seuraava ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä eteenpäin nykyisestä ryhmittelytietueesta. Esimerkiksi Seuraava(2) - seuraavaksi pääseminen seuraavasta tietueesta.

    Jos seuraava tietue ylittää ryhmittelyn, katsotaan, että tietueita ei ole. Esimerkiksi, jos merkintöjä on 3 ja kolmas vastaanottaa Next() , niin katsotaan, että merkintöjä ei ole.

    Kun ryhmittelysummalle vastaanotetaan seuraava tietue, katsotaan, ettei tietueita ole.

    · Nykyinen. Sinun on hankittava nykyinen ennätys.

    Kun haetaan ryhmittelysummaa, saadaan ensimmäinen tietue.

    · LimitingValue(BoundaryValue). Tarve saada tietue määritetyllä arvolla. Sanan jälkeen LimitingValue suluissa on ilmoitettava lauseke, jonka arvolla haluat aloittaa fragmentin, ensimmäinen järjestyskenttä.

    Ensimmäinen tietue, jonka järjestyskentän arvo on suurempi tai yhtä suuri kuin määritetty arvo, palautetaan tietueeksi. Esimerkiksi, jos Jakso-kenttää käytetään tilauskenttänä ja sen arvot ovat 01/01/2010, 02/01/2010, 03/01/2010 ja haluat saada Rajoitusarvo(PäiväysAika(2010, 1, 15)), sitten vastaanotetaan tietue, jonka päivämäärä on 1.2.2010.

    Tyyppi: Linja. Luetteloi järjestyssääntöjä kuvaavat lausekkeet pilkuilla erotettuina. Jos sitä ei ole määritetty, järjestys suoritetaan samalla tavalla kuin ryhmittelylle, jolle lauseke arvioidaan. Jokaisen lausekkeen jälkeen voit määrittää avainsanan Ikä(tilataan nousevassa järjestyksessä), Laskeva(tilaus alenevassa järjestyksessä) ja Automaattinen tilaus(järjestääksesi viitekentät niiden kenttien mukaan, joiden mukaan haluat järjestää viitatun kohteen). Sana Automaattinen tilaus voidaan käyttää kuten sanaa Ikä, niin sanan kanssa Laskeva.

    Tyyppi: Linja. Sama kuin parametri Lajittelu. Käytetään hierarkkisten tietueiden järjestämiseen. Jos sitä ei ole määritetty, asettelun rakentaja luo järjestyksen parametrissa määritetyn järjestyksen mukaisesti Lajittelu.

    Tyyppi: Linja. Määrittää säännön edellisen tai seuraavan tietueen määrittämiseksi, jos tietueita on useita, joilla on sama järjestysarvo:

    · Erikseen osoittaa, että järjestetyn tietueen sarjaa käytetään määrittämään edelliset ja seuraavat tietueet. Oletusarvo.

    · Yhdessä osoittaa, että edellinen ja seuraava tietue määritetään järjestyslausekkeiden arvojen perusteella.

    Jos tuloksena oleva sarja on esimerkiksi järjestetty päivämäärän mukaan:

    Päivämäärä Koko nimi Merkitys
    1 1. tammikuuta 2001

    Ivanov M.

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

    Erikseen, Tuo:

    § kohdan 3 edellinen merkintä on merkintä 2.

    Nykyinen, nykyinen(vastaavasti parametrit alkaa Ja Loppu), silloin tietueelle 2 tämä fragmentti koostuu yhdestä tietueesta 2. Lauseke on yhtä suuri kuin 20.

    Jos parametrin arvo on Yhdessä, Tuo:

    § kohdan 3 edellinen merkintä on merkintä 1.

    § jos laskentafragmentti on määritelty Nykyinen, nykyinen(vastaavasti parametrit alkaa Ja Loppu), silloin tietueelle 2 tämä fragmentti koostuu tietueista 2 ja 3. Lauseke Laske lauseke("Sum(arvo)", Nykyinen, Nykyinen) on yhtä suuri kuin 50.

    Kun määritetään parametrin arvo, joka on yhtä suuri kuin Yhdessä, parametreissa alkaa Ja Loppu positioille ei voi määrittää siirtymää Ensimmäinen, viimeinen, edellinen, seuraava.

    LaskeLauseus("Summa(Summaliikevaihto)", "Ensimmäinen", "Nykyinen")

    Jos haluat saada edellisen rivin ryhmittelyarvon, voit käyttää seuraavaa lauseketta:

    CalculateExpression("Arvo", "Edellinen")

    Lista Uusi toiminnot:

    CalculateExpressionWithGroupArray(,) -

    Funktio palauttaa taulukon, jonka jokainen elementti sisältää lausekkeen arvioinnin tuloksen ryhmittelyä varten määritetyn kentän mukaan.

    CalculateExpressionWithGroupValueTable(,) -

    Funktio palauttaa arvotaulukon, jonka jokainen rivi sisältää lausekkeiden arviointitulokset ryhmittelyä varten määritetyn kentän mukaan

    Arvotäytetty() - Palauttaa True, jos arvo on muu kuin tämän tyypin oletusarvo, muu kuin NULL, muu kuin tyhjä viite, muu kuin Undefined. Boolen arvoista tarkistetaan NULL-arvot. Merkkijonoista tarkistetaan, ettei niissä ole muita kuin välilyöntejä

    Muoto(, ) - Vastaanota muotoiltu merkkijono välitetystä arvosta. Muotomerkkijono asetetaan 1C:Enterprise-järjestelmän muotomerkkijonon mukaisesti.

    Alimerkkijono(, , ) - Tämä toiminto on suunniteltu poimimaan alimerkkijono merkkijonosta.

    Linjan pituus() - Funktio on suunniteltu määrittämään merkkijonon pituus. Parametri on merkkijonolauseke

    Linja() - Jos taulukko välitetään parametrina, funktio palauttaa merkkijonon, joka sisältää merkkijonoesitykset kaikista taulukon elementeistä erotettuna "; "-merkeillä. Jos arvotaulukko välitetään parametrina, funktio palauttaa merkkijonon, joka sisältää merkkijonoesitykset arvotaulukon kaikista riveistä, jolloin kunkin rivin soluesitykset on erotettu ";"-merkeillä ja rivit rivinvaihdolla. merkki. Jos elementin merkkijonoesitys on tyhjä, sen esityksen sijaan näytetään merkkijono.

    1. Laske (Eval)- on tarkoitettu arvioimaan ilmaisua jonkin ryhmittelyn yhteydessä. Toimintoa käytetään yhteensopivuuden varmistamiseen alustan aikaisempien versioiden kanssa. Sen sijaan on suositeltavaa käyttää CalculateExpression-toimintoa.

    Syntaksi:
    Laske (lauseke, ryhmittely, laskentatyyppi)

    Vaihtoehdot:

    • Ilmaisu(Linja). Sisältää lasketun lausekkeen;
    • Ryhmittely(Linja). Sisältää sen ryhmän nimen, jonka yhteydessä lauseke arvioidaan. Jos ryhmän nimenä käytetään tyhjää merkkijonoa, laskenta suoritetaan nykyisen ryhmittelyn yhteydessä. Jos GrandTotal-merkkijonoa käytetään ryhmän nimenä, laskenta suoritetaan loppusumman yhteydessä. Muussa tapauksessa laskenta suoritetaan samannimisen pääryhmän yhteydessä.
      Esimerkiksi:
      Summa(Myynti.Summaliikevaihto) / Laske("Summa(Myynti.Summaliikevaihto)", "Yhteensä").
      Tässä esimerkissä tulos on ryhmittelytietueen "Sales.AmountTurnover" -kentän summan suhde saman kentän määrään koko asettelussa.
    • Laskentatyyppi(Linja). Jos tämän parametrin arvoksi on asetettu "TotalTotal", lauseke lasketaan kaikille ryhmittelytietueille. Jos parametrin arvo on "Ryhmittäminen", arvot lasketaan nykyiselle ryhmittelyryhmätietueelle.
    2. Arvioi lauseke (EvalExpression) - on tarkoitettu arvioimaan ilmaisua jonkin ryhmittelyn yhteydessä. Toiminto ottaa huomioon ryhmittelyjen valinnan, mutta ei ota huomioon hierarkkisia valintoja. Toimintoa ei voi soveltaa ryhmittelyyn kyseisen ryhmän ryhmävalinnassa.

    Syntaksi:
    Laske lauseke (lauseke, ryhmittely, laskentatyyppi, alku, loppu, lajittelu, hierarkkinen lajittelu, prosessointiIdenticalOrderValues)

    Vaihtoehdot:

    • Ilmaisu(Linja). Sisältää lasketun lausekkeen;
    • Ryhmittely(Linja). Sisältää sen ryhmän nimen, jonka yhteydessä lauseke arvioidaan. Jos ryhmän nimenä käytetään tyhjää merkkijonoa, laskenta suoritetaan nykyisen ryhmittelyn yhteydessä. Jos GrandTotal-merkkijonoa käytetään ryhmän nimenä, laskenta suoritetaan loppusumman yhteydessä. Muussa tapauksessa laskenta suoritetaan kyseisen nimen ylätason ryhmittelyn yhteydessä;
    • Laskentatyyppi(Linja). Jos tämän parametrin arvoksi on asetettu "TotalTotal", lauseke lasketaan kaikille ryhmittelytietueille. Jos parametrin arvo on "Ryhmittäminen", arvot lasketaan nykyiselle ryhmittelyryhmätietueelle. Jos parametrin arvoksi on asetettu "Ei resurssien ryhmittely", laskettaessa ryhmätietueen funktiota resurssin mukaan lauseke arvioidaan alkuperäisen ryhmittelyn ensimmäiselle ryhmätietueelle. Arvioitaessa CalculateExpression-funktiota arvolla "GroupingNonResource" ryhmätietueille, jotka eivät ole ryhmittelyjä resurssien mukaan, funktio arvioidaan samalla tavalla kuin se arvioitaisiin "Grouping"-parametrin arvolla. Kun tietojen koostumuksen asettelun rakennustyökalu luodaan tietojen koostumuksen asettelua tulostettaessa kenttä - resurssi, jonka avulla ryhmittely suoritetaan, asettelulle tulostetaan lauseke, joka on laskettu CalculateExpression-funktiolla määritetyn "GroupingNon-Resource"-parametrin kanssa. Muille resurssien mukaan ryhmitellyille resursseille palautetaan normaalit resurssilausekkeet. Jos parametrin arvoksi on asetettu "Hierarkia", lauseke on arvioitava hierarkkisen ylätietueen osalta, jos sellainen on, ja koko ryhmittelylle, jos ylätason hierarkkista tietuetta ei ole. Luodessaan lausekkeen % hierarkiaryhmässä -kenttään asettelun rakennustyökalu luo lausekkeen, joka sisältää resurssilausekkeen suhteen CalculateExpression-funktioon laskettavalle resurssilausekkeelle nykyiselle ryhmittelylle laskentatyypillä Hierarkia.
    • alkaa. Ilmaisee, mistä tietueesta fragmentin tulee alkaa, mistä aggregaattilausekefunktiot tulee laskea ja mistä tietueesta saadaan kenttäarvot aggregaattifunktioiden ulkopuolelta. Merkkijono, joka sisältää yhden seuraavista:
      • "Ensimmäinen" Ensimmäinen ryhmittelytietue on hankittava. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä ryhmittelyn alusta. Tuloksena olevan arvon on oltava nollaa suurempi kokonaisluku. Esimerkiksi First(3) – vastaanottaa kolmannen tietueen ryhmittelyn alusta. Jos ensimmäinen tietue on ryhmittelyn ulkopuolella, katsotaan, että tietueita ei ole. Esimerkiksi jos tietueita on 3 ja haluat saada First(4), katsotaan, että tietueita ei ole.
      • "Kestää" Sinun on hankittava viimeinen ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä ryhmittelyn lopusta. Tuloksena olevan arvon on oltava nollaa suurempi kokonaisluku. Esimerkiksi Last(3) – vastaanottaa kolmannen tietueen ryhmän lopusta. Jos viimeinen tietue on ryhmittelyn ulkopuolella, katsotaan, että tietueita ei ole. Esimerkiksi, jos tietueita on 3 ja haluat saada Last(4), katsotaan, että tietueita ei ole.
      • "Edellinen" Sinun on hankittava edellinen ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä takaisin nykyisestä ryhmittelytietueesta. Esimerkiksi Edellinen(2) – edellisen tietueen hakeminen. Jos edellinen tietue on ryhmittelyn ulkopuolella (esimerkiksi toinen ryhmittelytietue vaatii Edellinen(3)), saadaan ensimmäinen ryhmittelytietue. Kun vastaanotetaan ryhmittelysumman edellinen tietue, saadaan ensimmäinen tietue.
      • "Seuraava" Sinun on hankittava seuraava ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä eteenpäin nykyisestä ryhmittelytietueesta. Esimerkiksi Next(2) – seuraavan saaminen seuraavasta tietueesta. Jos seuraava tietue ylittää ryhmittelyn, katsotaan, että tietueita ei ole. Esimerkiksi, jos merkintöjä on 3 ja kolmas saa Seuraava, katsotaan, että merkintöjä ei ole. Kun ryhmittelysummalle vastaanotetaan seuraava tietue, katsotaan, ettei tietueita ole.
      • "Nykyinen". Sinun on hankittava nykyinen ennätys. Kun haetaan ryhmittelysummaa, saadaan ensimmäinen tietue.
      • "BoundaryValue". Tarve saada tietue määritetyllä arvolla. Suluissa olevan LimitingValue-sanan jälkeen on ilmoitettava lauseke, jonka arvolla haluat aloittaa fragmentin, ensimmäinen järjestyskenttä. Ensimmäinen tietue, jonka järjestyskentän arvo on suurempi tai yhtä suuri kuin määritetty arvo, palautetaan tietueeksi. Esimerkiksi jos Jakso-kenttää käytetään järjestyskenttänä ja sen arvot ovat 01/01/2010, 02/01/2010, 03/01/2010 ja haluat saada LimitingValue(DateTime(2010) , 1, 15)), niin saadaan tietue päivämäärällä 02/01. 2010.
    • Loppu. Osoittaa, mihin tietueeseen fragmenttia tulee jatkaa, missä aggregaattilauseke lasketaan. Merkkijono, joka sisältää yhden seuraavista:
      • "Ensimmäinen"
      • "Kestää"
      • "Edellinen"
      • "Seuraava"
      • "Nykyinen".
      • "BoundaryValue".
    • Lajittelu. Merkkijono, joka luettelee pilkuilla eroteltuna lausekkeet, joiden suuntaan sekvenssi tulee järjestää. Jos sitä ei ole määritetty, järjestys suoritetaan samalla tavalla kuin ryhmittelylle, jolle lauseke arvioidaan. Jokaisen lausekkeen jälkeen voit määrittää avainsanan Nouseva, nousevaan järjestykseen, Laskeva, laskevaan järjestykseen, Automaattinen järjestys, jotta viitekentät järjestyvät niiden kenttien mukaan, joiden mukaan haluat järjestellä viitattavan kohteen. Sanaa Auto Order voidaan käyttää sekä sanan Nouseva että sanan Laskeva kanssa.
    • Hierarkkinen lajittelu. Samanlainen kuin lajittelu. Käytetään hierarkkisten tietueiden järjestämiseen. Jos sitä ei ole määritetty, asettelukompositori luo järjestyksen Lajittele-parametrissa määritetyn järjestyksen mukaisesti.
    • Käsittelee samoja tilausarvoja. Merkkijono, joka sisältää yhden seuraavista:
      • "Yhdessä" tarkoittaa, että järjestetyn tietueen sarjaa käytetään määrittämään edelliset ja seuraavat tietueet;
      • "Erikseen" tarkoittaa, että edellinen ja seuraava tietue määritetään järjestyslausekkeiden arvojen perusteella;
      Jos tuloksena oleva sarja on esimerkiksi järjestetty päivämäärän mukaan:
      1. 1. tammikuuta 2001 Ivanov M. 10
      2. 2. tammikuuta 2001 Petrov S. 20
      3. 2. tammikuuta 2001 Sidorov R. 30
      4. 3. tammikuuta 2001 Petrov S. 40
      Käytettäessä identtisten arvojen käsittelyä järjestyksessä "Erillisesti", edellinen tietueelle 3 on tietue 2, ja käytettäessä "Yhdessä" - tietue 1. Ja nykyisen tietueen fragmentti tietueelle 2 tietueelle 2 "Erillisesti" on tietue 2, ja "Yhdessä" - tietueet 2 ja 3. Siten nykyisen ennätyksen "Erillinen" kokonaissumma on 20 ja "Yhdessä" - 50. Kun "Yhdessä" on määritetty aloitus- ja Loppuparametrit, et voi määrittää siirtymää asemille “Ensimmäinen”, “Viimeinen”, “Edellinen”, “Seuraava”. Oletusarvo on "Erillinen".
    Esimerkki:
    Ryhmittelytietueen "Sales.AmountTurnover" -kentän summan ja saman kentän summan suhteen saaminen koko asettelussa:
    Summa(Myynti.SummaKiinnitys) / LaskeLauseke("Summa(Myynti.SummaLiikevaihto)", "Yhteensä").

    Tämä esimerkki laskee nykyisen hierarkian arvon:
    Valinta
    Kun Taso() > 0
    Sitten EvaluateExpression("Viite", "Hierarkia")
    Muuten Null
    Loppu

    Huomautuksia:
    Toiminto ottaa huomioon ryhmittelyjen valinnan, mutta ei ota huomioon hierarkkisia valintoja. Toimintoa ei voi soveltaa ryhmittelyyn kyseisen ryhmän ryhmävalinnassa. Esimerkiksi nimikkeistön ryhmittelyä valittaessa et voi käyttää lauseketta CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 . Mutta tällaista lauseketta voidaan käyttää hierarkkisessa valinnassa. Jos lopputietue edeltää aloitustietuetta, katsotaan, ettei tietueita ole yksityiskohtaisen tiedon laskemiseen ja aggregaattifunktioiden laskemiseen. Laskettaessa aikavälilausekkeita loppusummalle (Ryhmittelyparametri on asetettu arvoon "GrossTotal"), oletetaan, ettei tietueita ole yksityiskohtaisten tietojen ja koontifunktioiden laskemista varten. Luodessaan lauseketta CalculateExpression-funktiolle, asettelukoostumus, jos järjestyslauseke sisältää kenttiä, joita ei voida käyttää ryhmittelyssä, korvaa CalculateExpression-funktion funktiolla NULL.

    3. Arvioi lauseke ryhmätaulukolla (EvalExpression ryhmätaulukolla) - funktio palauttaa taulukon, jonka jokainen elementti sisältää lausekkeen laskennan tuloksen ryhmittelyä varten määritetyn kentän mukaan.

    Syntaksi:
    CalculateExpressionWithGroupArray (Expression, GroupFieldExpressions, SelectRecords, SelectGroups)

    Vaihtoehdot:

    • Ilmaisu(String) - arvioitava lauseke. Esimerkiksi "Summa(AmountTurnover)";
    • FieldExpressiionsGroups
    • Tietueiden valinta
    • Ryhmien valinta- ryhmätietueisiin sovellettava valinta. Esimerkiksi: "Summa(Kiirtosumma) > &Parametri1".
    Esimerkki:
    Maksimi(CalculateExpressionWithGroupArray("Summa(Kiirtomäärä)", "Vastapuoli"));


    Luodessaan lausekkeita mukautetun kentän näyttämiseksi, jonka lauseke sisältää vain CalculateArrayWithGroup-funktion, asettelun rakennustyökalu luo näyttölausekkeen siten, että näkymien näyttämät tiedot ja tiedot ovat järjestettyjä.
    Esimerkiksi mukautettu kenttä, jossa on lauseke:
    CalculateExpressionWithGroupArray("Summa(Kiirtomäärä)", "Vastapuoli")
    Asettelun rakennusohjelma luo tulosteelle seuraavan lausekkeen:
    ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)), Summa(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

    4. Laske lauseke GroupValueTable-taulukolla (EvalExpressionWithGroupValueTable) - funktio palauttaa arvotaulukon, jonka jokainen elementti sisältää lausekkeen laskennan tuloksen ryhmittelyä varten määritetyn kentän mukaan.

    Syntaksi:
    CalculateExpressionWithGroupValueTable (lauseke, ryhmäkenttälausekkeet, tietueiden valinta, ryhmän valinta)

    Vaihtoehdot:

    • Ilmaisu(String) - arvioitava lauseke. Rivi voi sisältää useita pilkuilla erotettuja lausekkeita. Jokaisen lausekkeen jälkeen voi olla valinnainen avainsana AS ja arvotaulukon sarakkeen nimi. Esimerkki: "Vastapuoli, Summa (AmountTurnover) Myyntimääränä."
    • FieldExpressiionsGroups- ryhmittelykenttien lausekkeet pilkuilla erotettuina. Esimerkiksi "vastapuoli, osapuoli";
    • Tietueiden valinta- yksityiskohtaisiin tietueisiin käytetty lauseke. Esimerkiksi "poistolippu = false". Jos tämä parametri käyttää koontifunktiota, dataa muodostettaessa tapahtuu virhe.
    • Ryhmien valinta- ryhmätietueisiin sovellettava valinta. Esimerkiksi: "Summa(Kiirtosumma) > &Parametri1".
    Esimerkki:
    Laske lauseke arvojen ryhmittelytaulukolla ("Tilin vastapuoli, summa (liikevaihto) AS myyntimäärä", "tili")

    Tämän toiminnon tuloksena on arvotaulukko, jossa on sarakkeet Vastapuoli ja Myyntivolyymi, joka sisältää vastapuolet myyntimäärineen.
    Asettelun kokoaja muuntaa asettelua luodessaan funktioparametrit tietojen koostumuksen asettelukentiksi. Esimerkiksi Tili-kenttä muunnetaan DataSet.Account-muotoon.
    Esimerkiksi mukautettu kenttä lausekkeella:
    CalculateExpressionWithGroupValueTable("Tili, Summa(Kiirtomäärä)", "Tili")
    Asettelun rakennusohjelma luo tulosteelle seuraavan lausekkeen:
    ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable) ), "2, 4"))

    5. Taso - toiminto on suunniteltu saamaan nykyinen tallennustaso.

    Syntaksi:
    Taso()

    Esimerkki:
    Taso()

    6. SequenceNumber - hanki seuraava sarjanumero.

    Syntaksi:
    NumberByOrder()

    Esimerkki:
    NumberByOrder()

    7. SequenceNumberInGrouping - palauttaa nykyisen ryhmittelyn seuraavan järjestysnumeron.

    Esimerkki:
    NumberByOrderInGroup()

    8. Muoto - saada muotoiltu merkkijono välitetystä arvosta.

    Syntaksi:
    Muoto (arvo, muotomerkkijono)

    Vaihtoehdot:

    • Merkitys- muotoiltava lauseke;
    • Muotomerkkijono- muotomerkkijono asetetaan 1C:Enterprise-muotoisen merkkijonon mukaisesti.
    Esimerkki:
    Muoto (kulutuslaskut. Asiakirjan määrä, "NPV=2")

    9. BeginOfPeriod

    Syntaksi:
    Aloituskausi (päivämäärä, ajanjakson tyyppi)

    Vaihtoehdot:

    • Päivämäärä(Päivämäärä). määritetty päivämäärä;
    • Jakson tyyppi
    Esimerkki:
    Alkamisjakso(PäiväysAika(2002, 10, 12, 10, 15, 34), "Kuukausi")
    Tulos: 10/01/2002 0:00:00

    10. EndOfPeriod - toiminto on suunniteltu valitsemaan tietty päivämäärä tietystä päivämäärästä.

    Syntaksi:
    Loppukausi (päivämäärä, jaksotyyppi)

    Vaihtoehdot:

    • Päivämäärä(Päivämäärä). määritetty päivämäärä;
    • Jakson tyyppi(Linja). Sisältää yhden seuraavista arvoista: Minute; Tunnin; Päivä; Viikko; Kuukausi; vuosineljännes; vuosi; vuosikymmen; Puoli vuotta.
    Esimerkki:
    Lopetusjakso(PäiväysAika(2002, 10, 12, 10, 15, 34), "viikko")
    Tulos: 13.10.2002 23:59:59

    11. AddKDate (DateAdd) - toiminto on suunniteltu lisäämään päivämäärään tietty arvo.

    Syntaksi:
    AddToDate (lauseke, lisäystyyppi, suuruus)

    Vaihtoehdot:

    • Ilmaisu(Päivämäärä). Alkuperäinen päivämäärä;
    • Tyyppi Suurennus(Linja). Sisältää yhden seuraavista arvoista: Minute; Tunnin; Päivä; Viikko; Kuukausi; vuosineljännes; vuosi; vuosikymmen; Puoli vuotta.
    • Suuruus(Määrä). Kuinka paljon päivämäärää on lisättävä, murto-osa jätetään huomiotta.
    Esimerkki:
    AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Kuukausi", 1)
    Tulos: 11/12/2002 10:15:34

    12. Päivämääräero - toiminto on suunniteltu saamaan ero kahden päivämäärän välillä.

    Syntaksi:
    Eropäivämäärä (lauseke1, lauseke2, erotyyppi)

    Vaihtoehdot:

    • Ilmaisu 1(Päivämäärä). vähennetty päivämäärä;
    • Ilmaisu 2(Päivämäärä). Alkuperäinen päivämäärä;
    • Tyyppiero(Linja). Sisältää yhden arvoista: Second; Minuutti; Tunnin; Päivä; Kuukausi; vuosineljännes; vuosi.
    Esimerkki:
    PÄIVÄMÄÄRÄEROTUS(PÄIVÄMÄÄRÄAIKA(2002, 10, 12, 10, 15, 34),
    PÄIVÄMÄÄRÄ (2002, 10, 14, 9, 18, 06), "PÄIVÄ")
    Tulos: 2

    13. Alimerkkijono - Tämä toiminto on suunniteltu poimimaan osamerkkijono merkkijonosta.

    Syntaksi:
    Osamerkkijono (merkkijono, sijainti, pituus)

    Vaihtoehdot:

    • Linja(Linja). Merkkijono, josta osamerkkijono erotetaan;
    • asema(Määrä). Sen merkin paikka, josta merkkijonosta erotettava osamerkkijono alkaa;
    • Pituus(Määrä). Varatun alimerkkijonon pituus.
    Esimerkki:
    SUBSTRING(Tilit.Osoite, 1, 4)

    14. StringLength - funktio on suunniteltu määrittämään merkkijonon pituus.

    Syntaksi:
    Merkkijonon pituus (merkkijono)

    Parametri :

    • Linja(Linja). Merkkijono, jonka pituus on määritetty.
    Esimerkki:
    Rivi (vastapuolet. Osoite)

    15. Vuosi- Tämä toiminto on suunniteltu poimimaan vuosi Date-tyypin arvosta.

    Syntaksi:
    Vuosi (päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä vuosi määritetään.
    Esimerkki:
    YEAR(kustannus.päivämäärä)

    16. Neljännes - Tämä toiminto on suunniteltu poimimaan vuosineljänneksen numero päivämäärätyypin arvosta. Neljännesluku vaihtelee tavallisesti 1-4.

    Syntaksi:
    vuosineljännes (päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä vuosineljännes määritellään
    Esimerkki:
    NELJÄNNES(Kulu.Pvm)

    17. Kuukausi - Tämä toiminto on suunniteltu poimimaan kuukauden numero päivämäärätyypin arvosta. Kuukauden numero vaihtelee tavallisesti välillä 1-12.

    Syntaksi:
    Kuukausi(päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä kuukausi määritetään.
    Esimerkki:
    KUUKAUSI(kulut.Päivämäärä)

    18. Vuoden päivä (DayOfYear) - Tämä toiminto on suunniteltu hankkimaan vuoden päivä Date-tyypin arvosta. Vuoden päivä vaihtelee normaalisti välillä 1-365 (366).

    Syntaksi:
    Vuoden päivä (päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä vuoden päivä määritetään.
    Esimerkki:
    PÄIVÄVUOSI (Kulutili.Päivämäärä)

    19. Päivä- Tämä toiminto on suunniteltu hankkimaan kuukauden päivä Date-tyypin arvosta. Kuukauden päivä vaihtelee normaalisti välillä 1-31.

    Syntaksi:
    Päivä (päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä kuukauden päivä määritetään.
    Esimerkki:
    PÄIVÄ (kulut.Päivämäärä)

    20. Viikko - Tämä toiminto on suunniteltu hankkimaan vuoden viikon numero päivämäärätyypin arvosta. Vuoden viikot on numeroitu 1:stä alkaen.

    Syntaksi:
    Viikko (päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä viikkonumerot määritetään.
    Esimerkki:
    VIIKKO (kulut.Päivämäärä)

    21. Viikonpäivä - Tämä toiminto on suunniteltu saamaan viikonpäivä päivämäärätyypin arvosta. Normaali viikonpäivä vaihtelee välillä 1 (maanantai) - 7 (sunnuntai).

    Syntaksi:
    Viikonpäivä (päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä viikonpäivä määritetään.
    Esimerkki:
    VIIKONPÄIVÄ (kululaskupäivä)

    22. Tunti- Tämä toiminto on suunniteltu saamaan vuorokauden tunti päivämäärätyypin arvosta. Kellonaika vaihtelee 0-23 välillä.

    Syntaksi:
    Tunti (päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä vuorokauden tunti määritetään.
    Esimerkki:
    TUNTI(kulut.Päivämäärä)

    23. Minuutti - Tämä toiminto on suunniteltu saamaan tunnin minuutit päivämäärätyypin arvosta. Tunnin minuutti vaihtelee välillä 0 - 59.

    Syntaksi:
    Minuutti (päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä tunnin minuutti määritetään.
    Esimerkki:
    MINUUTI(Kulu.Pvm)

    24. Toinen - Tämä toiminto on suunniteltu saamaan minuutin sekunti päivämäärätyypin arvosta. Minuutin sekunti vaihtelee välillä 0-59.

    Syntaksi:
    Toinen (päivämäärä)

    Parametri :

    • Päivämäärä(Päivämäärä). Päivämäärä, johon mennessä minuutin sekunnit määritetään.
    Esimerkki:
    TOINEN (kustannus.päivämäärä)

    25. Näyttelijät - Tämä toiminto on suunniteltu poimimaan tyyppi lausekkeesta, joka voi sisältää yhdistetyypin. Jos lauseke sisältää muun kuin vaaditun tyypin, palautetaan NULL.

    Syntaksi:
    Express(lauseke, tyypin merkintä)

    Vaihtoehdot:

    • Ilmaisu- muunnettava lauseke;
    • Tyyppimerkintä(Linja). Sisältää tyyppimerkkijonon. Esimerkiksi "numero", "merkkijono" jne. Alkuperäisten tyyppien lisäksi tämä rivi voi sisältää taulukon nimen. Tässä tapauksessa yritetään ilmaista viittaus määritettyyn taulukkoon.
    Esimerkki:
    Express(Data.Props1, "Numero(10,3)")

    26. IsNull (IsNull) - tämä funktio palauttaa toisen parametrin arvon, jos ensimmäisen parametrin arvo on NULL. Muussa tapauksessa ensimmäisen parametrin arvo palautetaan.

    Syntaksi:
    IsNull(lauseke1, lauseke2)

    Vaihtoehdot:

    • Ilmaisu 1- tarkistettava arvo;
    • Ilmaisu 2- palauttaa arvon, jos lauseke1 on NULL.
    Esimerkki:
    KylläNULL(Summa(Myynti.Kiirtomäärä), 0)

    27.ACos- laskee kaarikosinin radiaaneina.

    Syntaksi:
    ACos (lauseke)

    Parametri :

    • Ilmaisu(Määrä). Kosiniarvo (välillä -1 ... 1), jolla kulma määritetään.
    28.ASin- laskee arcsinin radiaaneina.

    Syntaksi:
    ASin (lauseke)

    Parametri :

    • Ilmaisu(Määrä). Siniarvo (välillä -1 ... 1), jolla kulma määräytyy.
    29.ATan- laskee arktangentin radiaaneina.

    Syntaksi:
    Atan(lauseke)

    Parametri :

    • Ilmaisu(Määrä). Tangentin arvo, jolla kulma määritetään.
    30. Cos- laskee kosinin.

    Syntaksi:
    Cos (lauseke)

    Parametri :

    • Ilmaisu
    31. Exp- luvun e nostaminen potenssiin.

    Syntaksi:
    Exp (lauseke)

    Parametri :

    • Ilmaisu(Määrä). Tutkinnon merkitys.
    32.Loki- laskee luonnollisen logaritmin.

    Syntaksi:
    Loki (lauseke)

    Parametri :

    • Ilmaisu
    33.Loki10- laskee X:n logaritmin kantaan 10.

    Syntaksi:
    Loki10 (lauseke)

    Parametri :

    • Ilmaisu(Määrä). Alkuperäinen luku on suurempi kuin 0.
    34. Pow- eksponentiointi.

    Syntaksi:
    Pow (pohja, ilmaisin)

    Vaihtoehdot:

    • Pohja(Määrä). Eksponenttioperaation perusta.
    • Indeksi(Määrä). Eksponentti.
    35. Synti- laskee sinin.

    Syntaksi:
    Synti (ilmaus)

    Parametri :

    • Ilmaisu(Määrä). Ilmoitettu radiaaneina.
    36. Sqrt- laskee neliöjuuren.

    Syntaksi:
    Sqrt (lauseke)

    Parametri :

    • Ilmaisu(Määrä). Ei-negatiivinen luku.
    37. Tan- laskee tangentin.

    Syntaksi:
    Tan (lauseke)

    Parametri :

    • Ilmaisu(Määrä). Siniarvo, jolla kulma määritetään.
    38. Pyöreä- pyöristää alkuperäisen luvun vaadittuun bittisyvyyteen. Pyöristystila on vakio (1,5 as 2).

    Syntaksi:
    Env (lauseke, bittisyvyys)

    Vaihtoehdot:

    • Ilmaisu(Määrä). Alkuperäinen numero;
    • Bittinen syvyys(Määrä). Pyöristettävien desimaalien määrä.
    39. Int- katkaisee luvun murto-osan.

    Syntaksi:
    Objekti (lauseke)

    Parametri :

    • Ilmaisu(Määrä). Murtoluku.
    40. Yleisten moduulien toiminnot

    Tiedonkokoonpanokoneen lauseke voi sisältää kutsuja yleisten yleisten konfigurointimoduulien funktioille. Tällaisten funktioiden kutsumiseen ei tarvita ylimääräistä syntaksia.

    Esimerkki:
    Lyhennetty nimi (Dokumentit.Linkki, Asiakirjat.Päiväys, Asiakirjat.Numero)

    Tässä esimerkissä "AbbreviatedName"-funktiota kutsutaan yleisestä konfigurointimoduulista.
    Huomaa, että yleisten moduulitoimintojen käyttö on sallittua vain, jos asianmukainen tietojen koostumuksen prosessoriparametri on määritetty.
    Lisäksi yleisten moduulien toimintoja ei voi käyttää mukautetuissa kenttälausekkeissa.

    41. Resentaatio - tämä funktio palauttaa ei-primitiivityypin välitetyn arvon merkkijonoesityksen. Alkuperäisen tyypin arvoille palauttaa itse arvon.

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

    Esimerkki:
    Esitys (vastapuoli)

    42. String - Tämä funktio muuntaa välitetyn arvon merkkijonoksi.

    Jos parametrina käytetään taulukkoa tai arvotaulukkoa, funktio palauttaa merkkijonon, joka sisältää merkkijonoesityksen kaikista taulukon elementeistä erotettuna merkeillä ";". Jos jollakin elementillä on tyhjä merkkijonoesitys, merkkijono "<Пустое значение>".

    Esimerkki:
    Rivi (myyntipäivä)

    43. ValueIsFilled

    NULL-arvoille Undefined palauttaa aina False.
    Boolen arvoille se palauttaa aina True.
    Muille tyypeille palauttaa True, jos arvo poikkeaa tietyn tyypin oletusarvosta.

    Esimerkki:
    Arvotäytetty (toimituspäivä)

    44. LevelInGroup - Tämä toiminto saa nykyisen tallennustason suhteessa ryhmittelyyn.

    Voidaan käyttää tietueen sisäkkäisen tason saamiseksi hierarkkisessa ryhmittelyssä.

    Esimerkki:
    LevelInGroup()

    45. ValueType

    Syntaksi:
    Arvotyyppi (lauseke)

    Parametri :

    • Ilmaisu(Linja). Merkkijonoarvon tyyppi.
    Palauttaa Type-tyypin arvon, joka sisältää funktioparametrin arvotyypin.

    Tulevan julkaisun 8.2.14 valossa yritän kuvata joitain uusia tiedonkokoonpanojärjestelmän toimintoja.

    Avaa tietojen asettelukaavio mieluiten ulkoisessa raportissa muokkauksen helpottamiseksi.

    Lisäämme kyselytyypin tietojoukon ja kirjoitamme joko manuaalisesti tai kyselyn suunnittelijalla yksinkertaisen kyselyn:

    1. Aseta pyyntö kulunvalvontajärjestelmään.

    2. Aseta lasketut kentät kulunvalvontajärjestelmään

    3. Määritä tietojen asettelu Asetukset-välilehdellä

    4. Käynnistä 1C Enterprise 8.2.14. Avaa raportti. Muodostamme, vastaanotamme.

    Kuvaus itse uusista toiminnoista:

    1. Nykyinen päivämäärä ()

    Palauttaa järjestelmän päivämäärän. Kun laaditaan asettelua, kaikissa asettelussa olevissa lausekkeissa CurrentDate()-funktio korvataan nykyisen päivämäärän arvolla.

    2. LASKELAUS()

    Syntaksi:

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

    Kuvaus:

    Funktio on suunniteltu arvioimaan lauseke jonkin ryhmittelyn yhteydessä.

    Toiminto ottaa huomioon ryhmittelyjen valinnan, mutta ei ota huomioon hierarkkisia valintoja.

    Toimintoa ei voi soveltaa ryhmittelyyn kyseisen ryhmän ryhmävalinnassa. Esimerkiksi Nimikkeistö-ryhmän valinnassa ei voi käyttää lauseketta CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. Mutta tällaista lauseketta voidaan käyttää hierarkkisessa valinnassa.

    Jos lopputietue edeltää aloitustietuetta, katsotaan, ettei tietueita ole yksityiskohtaisen tiedon laskemiseen ja aggregaattifunktioiden laskemiseen.

    Laskettaessa aikavälilausekkeita loppusummalle (Ryhmittelyparametri on asetettu GrandTotal-arvoon), oletetaan, että yksityiskohtaisen tiedon laskemiseen ja koontifunktioiden laskemiseen ei ole tietueita.

    Luodessaan lauseketta CalculateExpression-funktiolle, asettelukoostumus, jos järjestyslauseke sisältää kenttiä, joita ei voida käyttää ryhmittelyssä, korvaa CalculateExpression-funktion funktiolla NULL.

    Vaihtoehdot

    <Выражение>

    Tyyppi: merkkijono. Arvioitava lauseke.

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

    Tyyppi: merkkijono. Sisältää sen ryhmän nimen, jonka yhteydessä lauseke arvioidaan. Jos ryhmän nimenä käytetään tyhjää merkkijonoa, laskenta suoritetaan nykyisen ryhmittelyn yhteydessä. Jos GrandTotal-merkkijonoa käytetään ryhmän nimenä, laskenta suoritetaan loppusumman yhteydessä. Muussa tapauksessa laskenta suoritetaan samannimisen pääryhmän yhteydessä.

    Esimerkiksi:

    Summa(Sales.SumTurnover)/Laske("Sum(Sales.SumTurnover)", "Total")

    Tässä esimerkissä tulos on ryhmittelytietueen Sales.SumTurnover-kentän määrän suhde saman kentän määrään koko asettelussa;

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

    Tyyppi: merkkijono. Parametri voi saada seuraavat arvot:

    • GeneralTotal - lauseke lasketaan kaikille ryhmittelytietueille.
    • Hierarkia – Lauseke arvioidaan hierarkkisen ylätietueen osalta, jos sellainen on, ja koko ryhmittelylle, jos ylätason hierarkkista tietuetta ei ole.
    • Ryhmittely - lauseke arvioidaan nykyiselle ryhmittelyryhmätietueelle.
    • Ei-resurssien ryhmittely - kun funktio lasketaan ryhmätietueelle resurssin mukaan, lauseke arvioidaan alkuperäisen ryhmittelyn ensimmäiselle ryhmätietueelle.

    Kun lasketaan funktiota Laske lauseke() arvolla Ei-resurssien ryhmittely ryhmätietueille, jotka eivät ole resurssiryhmittelyjä, funktio lasketaan samalla tavalla kuin se laskettaisiin, jos parametrin arvo olisi yhtä suuri kuin Ryhmittelyarvo.

    Tiedon koostumuksen asettelun rakennustyökalu luoessaan tietojen koostumuksen asettelua tulostettaessa resurssikenttää, jolla ryhmittely suoritetaan asettelulle, sijoittaa asetteluun lausekkeen, joka lasketaan funktiolla Laske lauseke(), joka ilmaisee Non-Resource Grouping -parametrin. Muiden resurssien osalta tavalliset resurssilausekkeet sijoitetaan resurssien ryhmittelyyn.

    <Начало>

    Tyyppi: merkkijono. Ilmaisee, mistä tietueesta fragmentin tulee alkaa, mistä aggregaattilausekefunktiot tulee laskea ja mistä tietueesta saadaan kenttäarvot aggregaattifunktioiden ulkopuolelta. Arvo voi olla jokin seuraavista:

    <Конец>

    Tyyppi: merkkijono. Osoittaa mihin tietueeseen fragmenttia tulee jatkaa, missä lausekkeen aggregaattifunktiot tulee laskea. Arvo voi olla jokin seuraavista:

    • Ensimmäinen. Ensimmäinen ryhmittelytietue on hankittava. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä ryhmittelyn alusta. Tuloksena olevan arvon on oltava nollaa suurempi kokonaisluku. Esimerkiksi First(3) – vastaanottaa kolmannen tietueen ryhmittelyn alusta.

    Jos ensimmäinen tietue on ryhmittelyn ulkopuolella, katsotaan, että tietueita ei ole. Esimerkiksi jos tietueita on 3 ja haluat saada First(4), katsotaan, että tietueita ei ole.

    • Kestää. Sinun on hankittava viimeinen ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä ryhmittelyn lopusta. Tuloksena olevan arvon on oltava nollaa suurempi kokonaisluku. Esimerkiksi Last(3) – vastaanottaa kolmannen tietueen ryhmän lopusta.

    Jos viimeinen tietue on ryhmittelyn ulkopuolella, katsotaan, että tietueita ei ole. Esimerkiksi, jos tietueita on 3 ja haluat saada viimeisen(4), katsotaan, että tietueita ei ole.

    • Edellinen. Sinun on hankittava edellinen ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä takaisin nykyisestä ryhmittelytietueesta. Esimerkiksi Edellinen(2) – edellisen tietueen hakeminen.

    Jos edellinen tietue ylittää ryhmittelyn (esimerkiksi toiselle ryhmittelytietueelle sinun on saatava Edellinen(3), saadaan ensimmäinen ryhmittelytietue.

    Haettaessa edellistä tietuetta ryhmittelysummalle katsotaan, että ensimmäinen tietue on saatu.

    • Seuraava. Sinun on hankittava seuraava ryhmittelytietue. Suluissa olevan sanan jälkeen voit määrittää lausekkeen, jonka tulosta käytetään siirtymänä eteenpäin nykyisestä ryhmittelytietueesta. Esimerkiksi Next(2) – seuraavan saaminen seuraavasta tietueesta.

    Jos seuraava tietue ylittää ryhmittelyn, katsotaan, että tietueita ei ole. Esimerkiksi jos tietueita on 3 ja Next() vastaanotetaan kolmannelle tietueelle, katsotaan, ettei tietueita ole.

    Kun ryhmittelysummalle vastaanotetaan seuraava tietue, katsotaan, ettei tietueita ole.

    • Nykyinen. Sinun on hankittava nykyinen ennätys.

    Kun haetaan ryhmittelysummaa, saadaan ensimmäinen tietue.

    • BoundaryValue. Tarve saada tietue määritetyllä arvolla. Suluissa olevan LimitingValues-sanan jälkeen sinun on ilmoitettava lauseke, jonka arvolla haluat aloittaa fragmentin, ensimmäinen järjestyskenttä.

    Ensimmäinen tietue, jonka järjestyskentän arvo on suurempi tai yhtä suuri kuin määritetty arvo, palautetaan tietueeksi. Esimerkiksi jos Jakso-kenttää käytetään järjestyskenttänä ja sen arvot ovat 01/01/2010, 02/01/2010, 03/01/2010 ja haluat saada LimitingValue(DateTime(2010) , 1, 15)), niin saadaan tietue päivämäärällä 02/01. 2010.

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

    Tyyppi: merkkijono. Luetteloi järjestyssääntöjä kuvaavat lausekkeet pilkuilla erotettuina. Jos sitä ei ole määritetty, järjestys suoritetaan samalla tavalla kuin ryhmittelylle, jolle lauseke arvioidaan. Kunkin lausekkeen jälkeen voit määrittää avainsanat Ascending (järjestääksesi nousevassa järjestyksessä), Descending (järjestääksesi laskevassa järjestyksessä) ja AutoOrder (järjestääksesi viitekentät niiden kenttien mukaan, joiden mukaan haluat järjestää viitatun kohteen). Sanaa Auto Order voidaan käyttää sekä sanan Nouseva että sanan Laskeva kanssa.

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

    Tyyppi: merkkijono. Sama kuin lajitteluvaihtoehto. Käytetään hierarkkisten tietueiden järjestämiseen. Jos sitä ei ole määritetty, asettelukompositori luo järjestyksen Lajittele-parametrissa määritetyn järjestyksen mukaisesti.

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

    Tyyppi: merkkijono. Määrittää säännön edellisen tai seuraavan tietueen määrittämiseksi, jos tietueita on useita, joilla on sama järjestysarvo:

    • Erikseen tarkoittaa, että järjestetyn tietueen sarjaa käytetään määrittämään edellinen ja seuraava tietue. Oletusarvo.
    • Yhdessä tarkoittaa, että edellinen ja seuraava tietue määritetään järjestyslausekkeiden arvojen perusteella.

    Jos tuloksena oleva sarja on esimerkiksi järjestetty päivämäärän mukaan:

    Päivämäärä Koko nimi Merkitys
    1 1. tammikuuta 2001 Ivanov M. 10
    2 02 tammikuuta 2001 Petrov S. 20
    3 3. tammikuuta 2001 Sidorov R. 30
    4 04 tammikuuta 2001 Petrov S. 40

    Jos parametrin arvo on Separately, niin:

    § kohdan 3 edellinen merkintä on merkintä 2.

    § jos laskentafragmentti on määritelty Current, Current (vastaavasti parametrit Alku ja End), niin tietueelle 2 tämä fragmentti koostuu yhdestä tietueesta 2. Lause CalculateExpression(“Summa (arvo)”, Current, Current) olla yhtä suuri kuin 20.

    Jos parametrin arvo on Together, niin:

    § kohdan 3 edellinen merkintä on merkintä 1.

    § jos laskentafragmentti on määritelty Current, Current (vastaavasti parametrit Alku ja Loppu), niin tietueelle 2 tämä fragmentti koostuu tietueista 2 ja 3. Lauseke CalculateExpression(“Summa (arvo)”, Current, Current) on yhtä suuri kuin 50.

    Kun määrität parametrin arvon, joka on yhtä suuri kuin Together, et voi määrittää aloitus- ja loppuparametreissa siirtymää kohdille Ensimmäinen, viimeinen, edellinen, seuraava.

    Laske lauseke("Sum(Summaliikevaihto)", "Ensimmäinen", "Nykyinen"

    Jos haluat saada edellisen rivin ryhmittelyarvon, voit käyttää seuraavaa lauseketta:

    CalculateExpression ("Hinnoittelu", "Edellinen")

    Lista Uusi toiminnot:

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

    Funktio palauttaa taulukon, jonka jokainen elementti sisältää lausekkeen arvioinnin tuloksen ryhmittelyä varten määritetyn kentän mukaan.

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

    Funktio palauttaa arvotaulukon, jonka jokainen rivi sisältää lausekkeiden arviointitulokset ryhmittelyä varten määritetyn kentän mukaan

    Arvotäytetty(<Выражение>) – Palauttaa True, jos arvo on muu kuin tämän tyypin oletusarvo, muu kuin NULL, muu kuin tyhjä viite, muu kuin Undefined. Boolen arvot tarkistetaan NULL-arvoksi. Merkkijonoista tarkistetaan, ettei niissä ole muita kuin välilyöntejä

    Muoto(<Выражение>, <Форматная строка>) – Vastaanota muotoiltu merkkijono välitetystä arvosta. Muotomerkkijono asetetaan 1C:Enterprise-järjestelmän muotomerkkijonon mukaisesti.

    Alimerkkijono(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) – Tämä toiminto on suunniteltu poimimaan osamerkkijono merkkijonosta.

    Linjan pituus(<Выражение>) – Funktio on suunniteltu määrittämään merkkijonon pituus. Parametri - merkkijonolauseke

    Linja(<Выражение>) – Jos taulukko välitetään parametrina, funktio palauttaa merkkijonon, joka sisältää merkkijonoesitykset kaikista taulukon elementeistä erotettuna merkeillä "; ". Jos arvotaulukko välitetään parametrina, funktio palauttaa merkkijonon, joka sisältää kaikkien arvotaulukon rivien merkkijonoesitykset, jolloin kunkin rivin soluesitykset on erotettu merkeillä "; ", ja viivat ovat rivinsyöttösymboleita. Jos jollakin elementillä on tyhjä merkkijonoesitys, merkkijono näytetään esityksensä sijaan<Пустое значение>.