1s ckd aangepaste velden expressie. Een eenvoudig voorbeeld van het gebruik van aangepaste velden in een SCD-rapport. Bediening van het controleren van een waarde voor NULL

Om tijdige en juiste managementbeslissingen te nemen, heeft elke organisatie operationele informatie nodig over de beschikbaarheid van goederen in magazijnen, over de kosten en over de verkoop. Handelsorganisaties werken met een groot aantal artikelen en tegenpartijen, en dit vereist een goede opzet van analytische boekhouding en snelle ontvangst van de benodigde informatie over haar gegevens. Het artikel bespreekt de basistechnieken van het werken met standaardrapporten in een typische oplossing "1C: Trade Management 8" (editie 11), gebouwd op basis van het gegevenscompositiesysteem en biedt nuttige praktische aanbevelingen die nuttig zullen zijn voor zowel beginnende gebruikers als degenen die zijn overgestapt op de nieuwe editie van vorige edities.

Laten we bijvoorbeeld een rapport nemen

  • Analyse van de beschikbaarheid van goederen;

Maatwerk.

In een kolom Vergelijkingstype: Nomenclatuur

  • gelijk aan
  • Niet gelijk
  • In de lijst
  • Niet op de lijst
  • In groep Nomenclatuur;
  • Niet in een groep Nomenclatuur;
  • In een groep uit de lijst Nomenclatuur;
  • Niet in een groep uit de lijst Nomenclatuur.

Betekenis

"Snelle aanvallen"

Met de ontwikkeling van het 1C: Enterprise 8-platform en het verschijnen van een nieuwe versie 8.2, worden rapporten in de systemen steeds flexibeler en hebben gebruikers steeds meer mogelijkheden om ze aan te passen aan hun vereisten zonder de hulp van programmeurs.

De nieuwe mogelijkheden die het datacompositiesysteem (ACS) biedt, laten u als nooit tevoren de voordelen voelen van de mogelijkheden van "1C: Enterprise 8" bij het maken van rapporten. En ondanks dat de interface van rapportages forse veranderingen heeft ondergaan (ten opzichte van versie 10.3 van de "Trade Management" configuratie, hierna UT genoemd), zijn de rapportage instellingen nog steeds beschikbaar voor de gemiddelde gebruiker. Laten we eens kijken naar enkele van de basistechnieken om ermee te werken.

Het eerste waar je naar moet kijken, zijn snelle tackles. Hiermee kunt u gegevens over bepaalde waarden van de rapportvelden in het rapport weergeven volgens de wensen van de gebruiker.

Laten we bijvoorbeeld een rapport nemen Analyse van de beschikbaarheid van goederen in UT... We merken meteen op dat de volledige demonstratie van de mogelijkheden van rapporten in UT 11 zal plaatsvinden op het voorbeeld van twee rapporten:

  • Analyse van de beschikbaarheid van goederen;
  • Opbrengsten en kosten van verkoop.

Selectie door sommige velden kan direct in het rapportformulier of door te klikken op Maatwerk.

In een kolom Vergelijkingstype: de gebruiker kan verschillende vergelijkingsvoorwaarden selecteren. Bijvoorbeeld voor het veld Nomenclatuur u kunt de volgende soorten vergelijkingen kiezen:

  • gelijk aan- het rapport wordt alleen gemaakt voor het geselecteerde item;
  • Niet gelijk- het rapport wordt opgebouwd voor de gehele nomenclatuur, behalve voor de geselecteerde positie;
  • In de lijst- het rapport zal gebaseerd zijn op de lijst van nomenclatuuritems;
  • Niet op de lijst- het rapport wordt opgesteld voor de hele nomenclatuur, behalve voor de geselecteerde items;
  • In groep- het rapport wordt gemaakt voor de volledige nomenclatuur die zich in de geselecteerde directorymap bevindt Nomenclatuur;
  • Niet in een groep- het rapport wordt gemaakt voor de hele nomenclatuur, behalve voor de items die zich in de geselecteerde directory van de directory bevinden Nomenclatuur;
  • In een groep uit de lijst- vergelijkbaar met vergelijking In de lijst worden alleen mappen in de directory geselecteerd als lijstwaarden Nomenclatuur;
  • Niet in een groep uit de lijst- vergelijkbaar met de vergelijking Niet in de lijst, alleen mappen in de directory worden geselecteerd als lijstwaarden Nomenclatuur.

Het selectievakje (vinkje) links van het selectieveld geeft aan dat de selectie voor dit veld "ingeschakeld" is, dat wil zeggen dat er rekening mee wordt gehouden door het rapport.

Er wordt geen rekening gehouden met niet-aangevinkte velden, ook niet als u bepaalde waarden voor deze velden hebt geselecteerd.

Afhankelijk van het geselecteerde type vergelijking in de kolom Betekenis specificeert een specifiek item of map (groep) van de directory, of een lijst met items of mappen.

"Quick picks" zijn beschikbaar in alle oplossingen op basis van het "1C: Enterprise 8"-platform.

Een voorbeeld van een eenvoudige wijziging van rapportinstellingen

Om de rapportinstellingen te bekijken/wijzigen, ga naar het menu Alle acties - Variant wijzigen.

Voor ons opent het instellingenvenster voor de geselecteerde rapportoptie.

De structuur van het rapport wordt weergegeven in het bovenste deel van het venster. In feite is het een visuele weergave van groeperingen van rijen en kolommen van een rapport, d.w.z. in welke volgorde de analytische gegevens in rijen en kolommen in het rapport worden weergegeven.

In het onderste deel van het venster worden de rapporten weergegeven die betrekking hebben op het rapport als geheel (als het bovenste niveau is geselecteerd in de rapportstructuur) Verslag doen van), of naar een bepaalde groepering van rijen of kolommen van het rapport (als een groepering op een lager niveau is geselecteerd) instellingen voor het weergeven van informatie en opmaakvelden.

voorbeeld 1

Stap 1. We moeten de groepering op itemkenmerken verwijderen, zodat alleen de groepering op item overblijft. Om dit te doen, klikt u in het bovenste deel van het venster met rapportinstellingen op het veld Nomenclatuur, karakteristiek... Ga onderaan het venster naar het tabblad Groeperingen.

Selecteer het veld kenmerk en klik op de knop Verwijderen commando paneel.

Bevestig de aangebrachte wijzigingen in de rapportinstellingen door op de knop . te klikken Bewerken beëindigen in de linkerbenedenhoek van het scherm.

Stap 2. Na het verwijderen van het kenmerk is het onze taak om, volgens de voorwaarden van het voorbeeld, een prijsgroep toe te voegen. In de zin van deze groepering moet een niveau lager gaan dan de groepering per magazijn, maar een niveau hoger dan de groepering per artikel. Selecteer daarom in de structuur van het rapport de groepering Magazijn.

Door er met de rechtermuisknop op te klikken, selecteert u in het contextmenu de opdracht Nieuwe groepering.

Selecteer in het geopende bewerkingsvenster voor het groeperingsveld Nomenclatuur.Prijs groep.

Door op de knop te klikken oke, zullen we zien dat er een nieuwe groepering is toegevoegd aan het rapport, ondergeschikt aan de groepering Magazijn.

Laten we nu de groepering op item selecteren en, zonder de rechtermuisknop los te laten, deze naar binnen (d.w.z. onder) de groepering op prijsgroep slepen. We krijgen de structuur die wordt weergegeven in figuur 1. Het resultaat van het opzetten van het rapport wordt weergegeven in figuur 2.

Rijst. 1. De resulterende structuur van het rapport

Rijst. 2. Resultaat van het opzetten van het rapport

Werken met aangepaste velden

Laten we nu eens nader kijken naar de nieuwe opties voor het aanpassen van rapporten in het programma "1C: Trade Management 8".

In de vorm van het bewerken van de structuur en instellingen van ons rapport, let op het tabblad Aangepaste velden.

Daarvoor hebben we velden aan het rapport toegevoegd, waarvan de lijst vooraf was gedefinieerd door de ontwikkelaar. Met dit tabblad kunnen we onze eigen velden maken die we nodig hebben - Selectieveld of Uitdrukkingsveld.

Voorbeeld 2

Laten we het rapport 'Verkoopgeschiedenis' aanpassen (versie van het rapport 'Omzet en verkoopkosten'). Laten we verkoopgegevens per partner en nomenclatuur weergeven. Stel dat ons bedrijf zich bezighoudt met de verkoop van goederen in Moskou en in de regio's. Elke klant in de infobase behoort dus tot een bepaalde geografische regio (het kenmerk "Business region" van het referentieboek "Partners"). We kunnen de verkoopgegevens in het rapport gemakkelijk per regio groeperen, maar wat als we geïnteresseerd zijn in meer geaggregeerde statistieken, met name het antwoord op de vraag "Hoeveel goederen zijn er in Moskou verkocht en hoeveel in alle andere regio's samen" ? Dit is waar "aangepaste velden" van pas komen.

Stap 1. Laten we het rapport openen. Laten we naar het formulier gaan voor het opzetten van de rapportstructuur ( Alle acties -> Variant wijzigen). Laten we om de beurt alle groeperingen verwijderen die eerder in het rapport zijn gemaakt - om dit te doen, selecteert u ze allemaal en klikt u op de knop Verwijderen commandopaneel, of gebruik de DEL-toets.

Laten we net als in het vorige voorbeeld groeperen op partner en vervolgens op item aan het rapport toevoegen. We weten al hoe we dit moeten doen, dus het kost niet veel tijd.

Stap 2. Laten we een nieuw aangepast veld maken. Laten we de bladwijzer openen Aangepaste velden en voer de opdracht uit Toevoegen -> Nieuw selectieveld.

Laten we ons nieuwe veld een naam geven - Regio samengevat.

Klik op de knop Toevoegen... Klik in een nieuwe regel op de knop in de kolom Selectie... Voeg in het verschenen selectiebewerkingsformulier een selectie per veld toe Partnerbedrijfsregio... Laten we het type vergelijking kiezen gelijk aan, betekenis - Moskou.

Klik op de knop oke, waarna we terugkeren naar het bewerkingsvenster voor aangepaste velden. Vervolgens moet u op de knop in de kolom klikken Betekenis en selecteer in de verschenen datatype selectielijst Lijn en schrijf als de waarde Moskou.

Laten we de operatie herhalen. Laten we nog een rij aan de tabel toevoegen. Deze keer voor selectie over het veld Partnerbedrijfsregio kies het type vergelijking Niet gelijk.

Terugkeren naar het bewerkingsvenster voor aangepaste velden, in de kolom Betekenis schrijven andere regio's(zie afb. 3).

Rijst. 3. Een aangepast veld bewerken

Klik op de knop oke... Ons nieuwe veld is klaar.

Stap 3. Laten we ons nieuwe veld toevoegen aan de rapportstructuur. Het bovenste niveau selecteren met de muis Overzichtsrapport, voeg een nieuwe groepering toe. In de rekwisieten Veld Kiezen Regio samengevat.

Sleep de groepering op partner en de ondergeschikte groepering op nomenclatuur binnen de nieuw gemaakte.

Laten we een rapport genereren en het resultaat bekijken (getoond in Fig. 4).

Rijst. 4. Het resultaat van het genereren van rapporten

Selectie en sortering

Laten we teruggaan naar het venster voor het bewerken van de structuur en instellingen van het rapport en aandacht besteden aan de bladwijzers Selectie en Sorteren.

Als het hoofdelement is geselecteerd in de rapportstructuur ( Verslag doen van), gelden de instellingen op deze tabbladen voor het hele rapport als geheel. Als een groepering van het rapport is geselecteerd, zijn de instellingen alleen van invloed op het rapport.

Voorbeeld 3

Als gevolg hiervan is het rapport Verkoopgeschiedenis alleen die implementaties krijgen waar de manager is opgegeven Ivanov Ivan Fedorovich.

Voorbeeld 4

We slaan de gemaakte wijzigingen op

Wanneer u de structuur van een rapport wijzigt, kunt u het altijd opslaan met het commando Alle acties -> Optie opslaan.

In de vorm van het opslaan van de variant, met behulp van de schakelaar, kunt u selecteren: Opslaan in bestaande versie van het rapport(in plaats van een van de reeds beschikbare opties), of Een nieuwe versie van het rapport opslaan.

We hebben de instellingen voor rapportages die op basis van het ACS zijn geïmplementeerd, nader bekeken. Laten we nu eens kijken naar de fijnere en meer gedetailleerde instellingen voor de rapportopties. Het venster met "geavanceerde" instellingen van de rapportvariant wordt opgeroepen door het commando "Meer" - "Overig" - "Wijzig de variant van het rapport".

Het venster voor het wijzigen van de rapportvariant is in twee delen verdeeld:

1. Opbouw van het rapport.

2. Rapportinstellingen.


Het structuurgedeelte van een rapportvariant is vergelijkbaar met het tabblad "Structuur" van de standaardrapportinstellingen. Het doel en de configuratie van groeperingen wordt in detail besproken in deel 1 van het artikel.

De tabel met de structuur van de rapportvariant bevat, naast de kolom met groeperingen zelf, een aantal extra kolommen:

Het instellingengedeelte van de rapportoptie geeft de gebruiker ruimschoots de mogelijkheid om het rapport naar zijn wensen in te stellen. Het komt bijna volledig overeen met de standaard rapportinstellingen die in deel 1 zijn besproken. Laten we alle tabbladen in de sectie eens bekijken en de verschillen noteren.

Het instellingengedeelte bestaat uit de volgende tabbladen:

1. Parameters. Bevat ACS-parameters die beschikbaar zijn voor de gebruiker.

De ACS-parameter is een waarde die wordt gebruikt om rapportgegevens op te halen. Dit kan een voorwaardewaarde zijn voor het selecteren of valideren van gegevens, of een hulpwaarde.


De parametertabel wordt gepresenteerd in het formaat "Parameter" - "Waarde". Parameterwaarden kunnen indien nodig worden gewijzigd. Als u op de knop Aangepaste instellingen voor itemeigenschappen klikt, worden de aangepaste instellingen voor het item geopend.


In dit venster kunt u selecteren of het element wordt opgenomen in de gebruikersinstellingen (dwz zichtbaar voor de gebruiker bij het opstellen van het rapport), de weergave- en bewerkingsmodus van het element instellen (snelle toegang in de rapportkop, normaal in het rapport instellingen en niet beschikbaar).

Aanpassingsitemeigenschappen hebben ook groepeerbare velden, velden, filters en voorwaardelijke elementen.

2. Aangepaste velden. Bevat velden die de gebruiker zelf vormt op basis van de gegevens die door het rapport zijn geselecteerd.


De gebruiker kan twee soorten velden toevoegen:

  • Nieuw selectieveld...
  • Nieuw expressieveld...

Selecteer velden stellen u in staat om een ​​waarde te berekenen op basis van een bepaalde voorwaarde. Het venster voor het bewerken van het selectieveld bevat de titel van het veld en de tabel waarin de selectie, waarde en presentatie van het veld zijn vastgelegd. Selectie is een voorwaarde, afhankelijk van welke de vereiste waarde zal worden vervangen.


Laten we bijvoorbeeld een schatting maken van het aantal verkopen. We gaan ervan uit dat als er minder dan 10 eenheden van een product worden verkocht, ze weinig hebben verkocht, en als er meer dan 10 eenheden zijn, veel. Om dit te doen, stellen we 2 waarden van het berekende veld in: de eerste is met de selectie "Het aantal goederen is kleiner dan of gelijk aan" 10 "", de tweede met de selectie "Het aantal goederen is groter dan" 10 "".

Met expressievelden kunt u een waarde berekenen met behulp van willekeurige algoritmen. Ze kunnen de functies van de zoektaal en de ingebouwde programmeertaal 1C gebruiken. Het bewerkingsvenster voor het expressieveld bevat twee velden voor detail- en samenvattingsuitdrukkingen. Totalenrecords zijn groeperingen die zijn geconfigureerd in het gebied "Rapportstructuur", waarin u statistische functies moet gebruiken ("Som", "Minimum", "Maximum", "Aantal").

Laten we bijvoorbeeld het gemiddelde kortingspercentage berekenen. Het gemiddelde kortingspercentage wordt berekend met de formule: [Aantal verkopen zonder korting] - [Aantal verkopen met korting] / [Aantal verkopen zonder korting]. Houd er rekening mee dat het aantal verkopen zonder korting nul kan zijn, dus gebruiken we de SELECT-operator om te controleren. We krijgen de volgende uitdrukkingen:

· Voor gedetailleerde opmerkingen:

Keuze

Wanneer [Aantal verkopen zonder korting] = 0

dan 0

Anders [Aantal verkopen zonder korting] - [Aantal verkopen met korting] / [Aantal verkopen zonder korting]

Einde

· Voor totalenrecords:

Keuze

Wanneer Bedrag ([Aantal verkopen zonder korting]) = 0

dan 0

Anders Bedrag ([Bedrag van verkopen zonder korting]) - Bedrag ([Bedrag van verkopen met korting]) / Bedrag ([Bedrag van verkopen zonder korting])

Einde

Zoals eerder vermeld, gebruiken we in de uitdrukking van totalen de aggregatiefunctie "Som".

3. Groepeerbare velden. Bevat de velden waarmee het resultaat van de rapportvariant wordt gegroepeerd. Groeperingsvelden worden voor elk van de groeperingen afzonderlijk geconfigureerd, maar u kunt algemene groeperingsvelden voor een rapportvariant specificeren als u de hoofdmap "Rapport" in de structuurboom selecteert. U kunt een veld toevoegen uit het rapportresultaat, een aangepast veld of een automatisch veld selecteren, waarna het systeem de velden automatisch selecteert. Op dit tabblad kunt u ook de volgorde van de gegroepeerde velden wijzigen.


4. Velden. Bevat de velden die worden uitgevoerd in het resultaat van de rapportvariant. De velden worden afzonderlijk geconfigureerd voor elk van de groeperingen, maar u kunt algemene velden instellen voor een rapportvariant als u de hoofdmap "Rapport" in de structuurboom selecteert. U kunt een veld toevoegen uit het rapportresultaat, een aangepast veld of een automatisch veld selecteren, waarna het systeem de velden automatisch selecteert. Op dit tabblad kunt u ook de volgorde van de velden wijzigen.

Velden kunnen worden gegroepeerd om een ​​deel van het rapport logisch te markeren of om een ​​speciale rangschikking van kolommen te definiëren. Wanneer u een groep toevoegt, wordt de kolom "Locatie" actief en kunt u een van de locatie-opties selecteren:

  • Auto - het systeem plaatst de velden automatisch;
  • Horizontaal - velden zijn horizontaal gerangschikt;
  • Verticaal - velden zijn verticaal gerangschikt;
  • In een aparte kolom - velden bevinden zich in verschillende kolommen;
  • Samen - de velden zijn in één kolom gerangschikt.


5. Selectie. Bevat selecties die in de rapportvariant worden gebruikt. Het opzetten van selecties werd uitgebreid besproken in deel 1 van dit artikel. Filters worden afzonderlijk geconfigureerd voor elk van de groeperingen, maar u kunt algemene filters instellen voor een rapportvariant als u de hoofdmap "Rapport" in de structuurboom selecteert.


6. Sorteren. Bevat sorteervelden die in een variant van het rapport worden gebruikt. Het aanpassen van sorteervelden werd in detail behandeld in deel 1 van dit artikel. Het sorteren wordt voor elk van de groeperingen afzonderlijk geconfigureerd, maar u kunt algemene sorteervelden instellen voor een rapportvariant als u de hoofdmap "Rapport" in de structuurboom selecteert.


7. Voorwaardelijk ontwerp. Bevat voorwaardelijke stijlelementen die in een rapportvariant worden gebruikt. Het instellen van conditioneel uiterlijk werd uitgebreid besproken in deel 1 van dit artikel. Voorwaardelijke weergave wordt afzonderlijk geconfigureerd voor elk van de groeperingen, maar u kunt algemene voorwaardelijke weergave-elementen instellen voor een rapportvariant als u de hoofdmap "Rapport" in de structuurstructuur selecteert.


8. Extra instellingen. Bevat aanvullende instellingen voor het rapportontwerp. Hiermee kunt u het algemene uiterlijk van het rapport, de locatie van velden, groeperingen, details, bronnen, totalen, grafiekinstellingen instellen, de weergave van de titel, parameters en selectie regelen, de positie van bronnen bepalen en de koptekst en kolommen van de rapportvariant groeperen.


Tot slot wil ik opmerken dat de rapportinstellingen niet alleen als rapportvariant kunnen worden opgeslagen, maar ook naar een bestand kunnen worden geüpload (menu "Meer" - "Instellingen opslaan"). Om te downloaden, moet u "Instellingen laden" selecteren en het opgeslagen bestand selecteren. Zo kunnen we de instellingen van de rapportvariant overdragen tussen verschillende bases met dezelfde configuratie.


Op basis hiervan kunnen we samenvatten dat de gebruiker het rapport niet alleen zelfstandig kan aanpassen aan zijn behoeften, maar ook zijn instellingen kan opslaan en indien nodig in de toekomst kan gebruiken.

Voor competent management moet elke handelsorganisatie onmiddellijk informatie ontvangen over de huidige staat van goederen, verkopen en winsten. Als u echter bedenkt dat organisaties vaak werken met de breedste lijst van goederen en een groot aantal tegenpartijen, dan speelt de tool voor het aanpassen van analytische rapporten een belangrijke rol bij het verkrijgen van de benodigde informatie. Laten we de procedure voor het werken met aangepaste velden in de rapporten van een typisch programma eens nader bekijken (rev. 11).

De ontwikkeling van het 1C:Enterprise 8 platform biedt gebruikers steeds meer mogelijkheden. Zo zijn rapporten in versie 8.2 bijvoorbeeld flexibeler geworden, waardoor ze kunnen worden aangepast aan verschillende vereisten zonder de hulp van gekwalificeerde programmeurs.

Rapportinstellingen wijzigen

Om de rapportinstellingen te bekijken of te wijzigen, gaat u naar het menu Alle acties en selecteert u de opdracht Variant wijzigen. Daarna opent een venster met instellingen voor een open rapport voor de gebruiker.

In het bovenste deel van het instellingenvenster ziet u de structuur van het rapport, dat niets meer is dan een visuele weerspiegeling van de rapportkolommen en de groeperingen van de rijen, wat het in wezen mogelijk maakt om te presenteren in welke volgorde de analytische gegevens zijn weergegeven in dit rapport.

Onderaan het instellingenvenster worden de feitelijke instellingen van informatie en velden weergegeven, verwijzend naar het rapport of naar de elementen van de structuur (kolommen en groeperingen van rijen).

Aangepaste velden

In een programma 1C: Handelsbeheer 8 editie 11 van de rapportinstellingen bieden gebruikers meer opties in hun vorming.

In het venster voor het bewerken van de instellingen en structuur van rapporten, willen we speciale aandacht van gebruikers vestigen op het tabblad "Aangepaste velden", waarmee u uw eigen velden kunt maken en deze aan het rapport kunt toevoegen. Er moet aan worden herinnerd dat de gebruiker voorheen alleen die velden kon gebruiken die door de ontwikkelaar waren geïmplementeerd.

Laten we eens kijken naar het gebruik van deze functie aan de hand van een voorbeeld.

Stel dat het hoofd van een handelsbedrijf dat goederen verkoopt in Moskou en de regio's, het rapport Verkoopgeschiedenis wil aanpassen en daarin gegevens wil weergeven over de verkoop van artikelen in Moskou en de regio's in het algemeen, evenals aan partners. Het is heel eenvoudig om dit te doen met behulp van aangepaste velden.

Een illustratief voorbeeld laat dus zien dat flexibele instellingen voor aangepaste velden in een typisch programma 1C: Handelsbeheer 8 bieden de gebruiker ruime mogelijkheden in de instellingen van rapporten, waardoor ze snel de benodigde informatie in een handige vorm kunnen ontvangen.

Het rapport ontvangt de saldi van goederen in magazijnen in verschillende aspecten (kenmerken, reeksen, maateenheden, enz.). Om het voorbeeld niet ingewikkelder te maken, laten we alleen de groepering volgens de nomenclatuur over en tonen we alleen het eindsaldo op de datum van het rapport. De overzichtstabel toont de voorraad per artikel in de voorraad magazijnen.

Maar toen zei de gebruiker dat hij twee extra velden moest toevoegen:

  1. Hoeveelheid alert. Als het aantal kleiner is dan of gelijk is aan 5, is de waarschuwing "Niet genoeg". Als het getal groter is dan 5, dan kleiner dan of gelijk aan 10, dan is de waarschuwing "Normaal". Als de hoeveelheid groter is dan 10, dan "Overaanbod".
  2. De formule voor het berekenen van het eindsaldo. In de extra kolom wil de gebruiker zien welke acties het programma heeft uitgevoerd om de waarde van het laatste restant te krijgen. Dat wil zeggen, de formule "Beginsaldo + Omzet = Eindsaldo", waarbij de bijbehorende waarden worden vervangen.

Natuurlijk kan een programmeur hier ingrijpen en de query- en rapportinstellingen van het gegevenssamenstellingsschema wijzigen, maar we zullen de taak uitvoeren in de gebruikersmodus zonder het rapport in de configuratormodus te wijzigen.

Extra velden

En dus, laten we beginnen. Laten we naar de instellingen van de rapportoptie gaan:

Voor ons zal de constructor van instellingen voor de ACS-rapportoptie worden geopend. Als we naar het tabblad "Aangepaste velden" gaan, beginnen we ze te maken.

De screenshot toont al twee aangemaakte aangepaste velden, waarvan de functionaliteit hierboven werd beschreven. Laten we eens kijken naar de instellingen van elk. Laten we beginnen met het waarschuwingsveld.

In de instelling moeten we de veldtitel instellen die in het rapport wordt weergegeven, evenals uitdrukkingen instellen om de waarde te vormen in het veld met gedetailleerde records en in de totalen voor dit veld. Aangezien het niet nodig is om een ​​melding in de totalen te tonen, zullen we alleen een uitdrukking schrijven voor gedetailleerde records.

De syntaxis van de expressie is vergelijkbaar met de 1C: Enterprise-querytaal. Er zijn enkele verschillen, maar die zullen we in dit artikel niet in detail behandelen. De expressie gebruikt de operator select:

"Keuze Wanneer Dan Anders Einde ",

vergelijkbaar met de operator in de querytaal. Velden in aangepaste velduitdrukkingen worden gespecificeerd door hun presentatie. Om het platform te laten begrijpen dat de ingevoerde weergave een bepaald veld aanduidt, is de weergavenaam omgeven door vierkante haken "". Als de veldweergave één woord bevat, zijn vierkante haken optioneel. In het bovenstaande voorbeeld verwijzen we naar het veld Eindsaldo.

De instellingen voor het veld "Formule voor het berekenen van het eindsaldo" zijn op dezelfde manier ingesteld:


Hier moet ik iets zeggen over enkele van de nuances:

  1. We kunnen de formule in een cel alleen als een tekenreeks weergeven. Daarom converteren we alle numerieke waarden naar een tekenreeks met behulp van de ACS-expressietaalmethode "String ()", die elke waarde naar een tekenreeks converteert. Vervolgens voeren we stringconcatenatie uit.
  2. Om ervoor te zorgen dat het veld wordt weergegeven in de rapporttotalen, voegen we een vergelijkbare formule toe aan de uitdrukking van totalenrecords. U hoeft alleen de aggregatiefuncties "SOM ()" voor elke waarde op te tellen in overeenstemming met de totalen.

Alles is klaar om de velden in het rapport te gebruiken!

Een rapport opstellen en genereren

Voeg het veld "Formule voor het berekenen van het eindsaldo" toe aan de uitvoervelden van het rapport:

Voeg de expressie 'Waarschuwing' toe aan de itemdetailrecords. Om dit te doen, voegt u het expressieveld "Waarschuwing" toe aan de groepering "Nomenclatuur". Daarna ziet de structuur van het rapport er als volgt uit:

Het instellen van het rapport is nu voltooid. Indien nodig kunnen de toegevoegde instellingen worden opgeslagen voor hergebruik. Laten we een rapport genereren:

Zoals we kunnen zien, zijn er velden aan het rapport toegevoegd in overeenstemming met de voorwaarden van de taak. Tegelijkertijd was het niet nodig om het rapport in de configuratormodus te wijzigen. Dit is het grote voordeel van aangepaste velden! Een gebruiker die getraind is om ze te gebruiken, kan ze gebruiken om zelf een rapport te maken over hun vereisten, zonder tussenkomst van een programmeur.

Geloof me, je kunt hem trainen om deze functies te gebruiken, want het is veel gemakkelijker dan formules schrijven in Excel-spreadsheets.

Taal voor gegevenscompositie Systeemexpressie

De expressietaal van het datacompositiesysteem is ontworpen om uitdrukkingen te schrijven die in verschillende delen van het systeem worden gebruikt.

Expressies worden gebruikt in de volgende subsystemen:

  • schema voor gegevenssamenstelling - voor het beschrijven van berekende velden, totaalvelden, relatie-uitdrukkingen, enz.
  • instellingen voor gegevenssamenstelling - voor het beschrijven van aangepaste velduitdrukkingen;
  • sjabloon voor gegevenssamenstelling - voor het beschrijven van expressies van gegevenssetrelaties, het beschrijven van sjabloonparameters, enz.

Letterlijk

Expressies kunnen letterlijke woorden bevatten. Letters van de volgende typen zijn mogelijk:

  • Lijn;
  • Nummer;
  • Datum;
  • Booleaans.

Lijn

Een letterlijke tekenreeks wordt geschreven in "" "tekens, bijvoorbeeld:

"Letterlijke tekenreeks"

Als u het teken "" "in een letterlijke tekenreeks moet gebruiken, moet u twee van dergelijke tekens gebruiken.

Bijvoorbeeld:

"Letterlijk" "tussen aanhalingstekens" ""

Nummer

Het nummer is geschreven zonder spaties, in decimaal formaat. Het breukdeel wordt gescheiden door het symbool ".". Bijvoorbeeld:

10.5 200

datum

De letterlijke datum wordt geschreven met behulp van de letterlijke DATETIME-sleutel. Na dit trefwoord, tussen haakjes, gescheiden door komma's, worden het jaar, de maand, de dag, de uren, minuten en seconden weergegeven. De tijd is optioneel.

Bijvoorbeeld:

DATUM TIJD (1975, 1, 06) - 6 januari 1975 DATUM (2006, 12, 2, 23, 56, 57) - 2 december 2006, 23 uur 56 minuten 57 seconden, 23 uur 56 minuten 57 seconden

Booleaans

Booleaanse waarden kunnen worden geschreven met behulp van de letterlijke waarden True, False.

Betekenis

Om literalen van andere typen op te geven (systeemopsommingen, vooraf gedefinieerde gegevens), wordt het trefwoord Waarde gebruikt, gevolgd door de letterlijke naam tussen haakjes.

Waarde (Accounttype. Actief)

Bewerkingen op getallen

unair -

Deze bewerking is bedoeld om het teken van een getal om te keren. Bijvoorbeeld:

Verkoopnummer

Unaire +

Deze bewerking voert geen actie uit op het nummer. Bijvoorbeeld:

Verkoopnummer

Binair -

Deze bewerking is bedoeld om het verschil tussen twee getallen te berekenen. Bijvoorbeeld:

Resten & Omzet. Beginsaldo - Saldi & Omzet. Eindsaldo Saldi & Omzet. Beginsaldo - 100 400 - 357

Binair +

Deze bewerking is bedoeld om de som van twee getallen te berekenen. Bijvoorbeeld:

Saldi & Omzet. Beginsaldo + Saldo & Omzet. Omzet Saldi & Omzet. Beginsaldo + 100 400 + 357

Het werk

Deze bewerking is bedoeld om het product van twee getallen te berekenen. Bijvoorbeeld:

Nomenclatuur.Prijs * 1.2 2 * 3.14

Divisie

Deze bewerking is bedoeld om het resultaat te verkrijgen van het delen van de ene operand door de andere. Bijvoorbeeld:

Nomenclatuur.Prijs / 1.2 2 / 3.14

Rest van de divisie

Deze bewerking is bedoeld om de rest te verkrijgen van het delen van de ene operand door de andere. Bijvoorbeeld:

Nomenclatuur Prijs% 1,2 2% 3,14

Tekenreeksbewerkingen

Aaneenschakeling (binair +)

Deze bewerking is bedoeld om twee tekenreeksen samen te voegen. Bijvoorbeeld:

Nomenclatuur.Artikel + “:” + Nomenclatuur.Naam

Leuk vinden

Deze bewerking controleert of de tekenreeks overeenkomt met het doorgegeven patroon.

De waarde van de LIKE-operator is TRUE als de waarde<Выражения>overeenkomt met het patroon en anders FALSE.

De volgende karakters in<Строке_шаблона>zinvol zijn, behalve alleen het teken van de volgende regel:

  • % - percentage: een reeks die nul of meer willekeurige tekens bevat;
  • _ - underscore: één willekeurig teken;
  • […] - een of meer tekens tussen vierkante haken: één teken, een van de tekens die tussen vierkante haken staan. De opsomming kan bereiken bevatten, bijvoorbeeld a-z, wat betekent dat een willekeurig teken in het bereik is opgenomen, inclusief de uiteinden van het bereik;
  • [^…] - tussen vierkante haken een ontkenningspictogram gevolgd door een of meer tekens: elk teken behalve de tekens die achter het ontkenningspictogram staan;

Elk ander symbool betekent zichzelf en heeft geen extra betekenis. Als het nodig is om een ​​van de vermelde karakters als zichzelf te schrijven, moet dit worden voorafgegaan door<Спецсимвол>opgegeven na het ESCAPE-sleutelwoord.

Bijvoorbeeld de sjabloon

"% ABC [abvg] \ _ abc%" SPECIAAL SYMBOOL "\"

betekent een substring bestaande uit een reeks tekens: de letter A; letters B; letters B; een getal; een van de letters a, b, c of d; onderstrepingsteken; letters een; letters b; brieven c. Bovendien kan deze reeks worden gelokaliseerd vanaf een willekeurige positie in de lijn.

Vergelijkingsbewerkingen

gelijk aan

Deze bewerking is bedoeld om twee operanden voor gelijkheid te vergelijken. Bijvoorbeeld:

Sales.Contractor = Sales.NomenclatureMainSupplier

Niet gelijk

Deze operatie is bedoeld om twee operanden voor ongelijkheid te vergelijken. Bijvoorbeeld:

Verkoop, aannemer<>Sales.NomenclatuurHoofdleverancier

Minder

Deze bewerking is bedoeld om te controleren of de eerste operand kleiner is dan de tweede. Bijvoorbeeld:

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

Meer

Deze bewerking is bedoeld om te controleren of de eerste operand groter is dan de tweede. Bijvoorbeeld:

SalesCurrent.Total> SalesPast.Amount

Minder of gelijk

Deze bewerking is bedoeld om te controleren of de eerste operand kleiner is dan of gelijk is aan de tweede. Bijvoorbeeld:

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

Meer of gelijk

Deze bewerking is bedoeld om te controleren of de eerste operand groter is dan of gelijk is aan de tweede. Bijvoorbeeld:

SalesCurrent.Amount> = SalesPast.Amount

Operatie B

Deze bewerking controleert op de aanwezigheid van een waarde in de doorgegeven lijst met waarden. Het resultaat van de bewerking is True als de waarde wordt gevonden, of anders False. Bijvoorbeeld:

Artikel B (& Artikel1, & Artikel2)

De bewerking van het controleren van het bestaan ​​van een waarde in een dataset

De bewerking controleert op het bestaan ​​van een waarde in de opgegeven gegevensset. De validatiedataset moet één veld bevatten. Bijvoorbeeld:

Verkoop Tegenpartij aan tegenpartijen

Bediening van het controleren van een waarde voor NULL

Deze bewerking retourneert True als de waarde NULL is. Bijvoorbeeld:

Verkoper.Aannemer IS NULL

De bewerking van het controleren van een waarde voor NULL-ongelijkheid

Deze bewerking retourneert True als de waarde niet NULL is. Bijvoorbeeld:

Sales.Contractor IS NIET NULL

Logische bewerkingen

Logische bewerkingen nemen Booleaanse uitdrukkingen als operanden.

Bediening NIET

De bewerking retourneert NIET True als de operand False is, en False als de operand True is. Bijvoorbeeld:

NOT Document.Consignee = Document.Shipper

Operatie AND

De AND-operator retourneert True als beide operanden True zijn, en False als een van de operanden False is. Bijvoorbeeld:

Document.Consignee = Document.Shipper EN Document.Consignee = & Tegenpartij

OF-bewerking

De OF-bewerking retourneert True als een van de operanden True is, en False als beide operanden False zijn. Bijvoorbeeld:

Document.Consignee = Document.Carrier OF Document.Consignee = & Tegenpartij

Geaggregeerde functies

Geaggregeerde functies voeren een actie uit op een gegevensset.

Som

De aggregatiefunctie Som berekent de som van de expressiewaarden die eraan zijn doorgegeven als argument voor alle detailrecords. Bijvoorbeeld:

Bedrag (Sales.SumTurnover)

Hoeveelheid

De functie Count berekent het aantal niet-null-waarden. Bijvoorbeeld:

Hoeveelheid (Verkoop. Aannemer)

Aantal verschillende

Deze functie berekent het aantal verschillende waarden. Bijvoorbeeld:

Hoeveelheid (diverse verkopen. aannemer)

maximaal

De functie krijgt de maximale waarde. Bijvoorbeeld:

Maximaal (saldi.hoeveelheid)

Minimum

De functie krijgt de minimumwaarde. Bijvoorbeeld:

Minimum (saldi.hoeveelheid)

Het gemiddelde

De functie haalt het gemiddelde op van niet-NULL-waarden. Bijvoorbeeld:

Gemiddeld (Saldi.Bedrag)

Andere bewerkingen

Bediening SELECT

Operation Select is ontworpen om een ​​van de verschillende waarden te selecteren wanneer aan bepaalde voorwaarden wordt voldaan. Bijvoorbeeld:

Keuze Bij Bedrag> 1000 Dan Bedrag Anders 0 Einde

Regels voor het vergelijken van twee waarden

Als de typen van de vergeleken waarden van elkaar verschillen, wordt de relatie tussen de waarden bepaald op basis van de prioriteit van de typen:

  • NULL (laagste);
  • Booleaans;
  • Nummer;
  • Datum;
  • Lijn;
  • Referentietypes

De relaties tussen de verschillende referentietypes worden bepaald op basis van de referentienummers van de tabellen die bij een bepaald type horen.

Als de gegevenstypen overeenkomen, worden de waarden vergeleken volgens de volgende regels:

  • Booleaans type heeft een TRUE-waarde die groter is dan een FALSE-waarde;
  • het type Nummer heeft de gebruikelijke vergelijkingsregels voor getallen;
  • het type Datum heeft eerdere datums minder dan latere;
  • voor het String-type - stringvergelijkingen in overeenstemming met de vastgestelde nationale kenmerken van de database;
  • referentietypes worden vergeleken op basis van hun waarden (recordnummers, enz.).

Werken met NULL-waarden

Elke bewerking waarbij de waarde van een van de operanden NULL is, resulteert in NULL.

Er zijn uitzonderingen:

  • de AND-bewerking retourneert alleen NULL als geen van de operanden False is;
  • de OR-bewerking retourneert alleen NULL als geen van de operanden True is.

Operatieprioriteiten

Bewerkingen hebben de volgende prioriteiten (de eerste regel heeft de laagste prioriteit):

  • B IS NULL IS NIET NULL;
  • =, <>, <=, <, >=, >;
  • Binair +, Binair -;
  • *, /, %;
  • Unair +, Unair -.

Expressietaal Functies van het datacompositiesysteem

Berekenen

De functie Berekenen is ontworpen om een ​​uitdrukking te evalueren in de context van een groepering. De functie heeft de volgende parameters:

  • Uitdrukking. Typ Tekenreeks. Bevat een berekende uitdrukking;
  • Groepering. Typ Tekenreeks. Bevat de naam van de groepering in de context waarvan de uitdrukking moet worden geëvalueerd. Als een lege string als groeperingsnaam wordt gebruikt, wordt de berekening uitgevoerd in de context van de huidige groepering. Als de regel AlgemeenTotaal als groeperingsnaam wordt gebruikt, wordt de berekening uitgevoerd in de context van het eindtotaal. Anders wordt de berekening uitgevoerd in de context van de bovenliggende groepering met dezelfde naam. Bijvoorbeeld:
Bedrag (Sales.SumTurnover) / Berekenen ("Bedrag (Sales.SumTurnover)", "TotalTotal")

In dit voorbeeld is het resultaat de verhouding van het bedrag voor het veld Sales.SumTurnover van het groeperingsrecord tot het bedrag van hetzelfde veld in de gehele lay-out.

Peil

De functie is bedoeld om het huidige opnameniveau te krijgen.

Peil()

NummerBestelling

Verkrijg het volgende volgnummer.

NummerBestelling ()

NummerOrderInGroep

Retourneert het volgende volgnummer in de huidige groepering.

NummerOrderInGrouping ()

Formaat

Haal de opgemaakte tekenreeks van de doorgegeven waarde op.

De format string is ingesteld in overeenstemming met de 1C: Enterprise format string.

Parameters:

  • Betekenis;
  • Tekenreeks opmaken.

Formaat (Facturen.SumDoc, "NPT = 2")

Begin van de menstruatie

Parameters:

    • Minuut;
    • Dag;
    • Een week;
    • Maand;
    • Kwartaal;
    • Decennium;
    • Een half jaar.

Begin van periode (DateTime (2002, 10, 12, 10, 15, 34), "Maand")

Resultaat:

01.10.2002 0:00:00

Einde periode

De functie is ontworpen om een ​​specifieke datum uit een bepaalde datum te extraheren.

Parameters:

  • Datum. Typ Datum. Opgegeven datum;
  • Periode soort. Typ Tekenreeks. Bevat een van de waarden:
    • Minuut;
    • Dag;
    • Een week;
    • Maand;
    • Kwartaal;
    • Decennium;
    • Een half jaar.

Eindperiode (DateTime (2002, 10, 12, 10, 15, 34), "Week")

Resultaat:

13.10.2002 23:59:59

Toevoegen aan datum

De functie is bedoeld om een ​​bepaalde waarde aan de datum toe te voegen.

Parameters:

  • Vergrotingstype. Typ Tekenreeks. Bevat een van de waarden:
    • Minuut;
    • Dag;
    • Een week;
    • Maand;
    • Kwartaal;
    • Decennium;
    • Een half jaar.
  • Waarde - met hoeveel de datum moet worden verhoogd. Typ nummer. Het fractionele deel wordt genegeerd.

Toevoegen aan datum (DateTime (2002, 10, 12, 10, 15, 34), "Maand", 1)

Resultaat:

12.11.2002 10:15:34

Datum verschil

De functie is ontworpen om het verschil tussen twee datums te krijgen.

Parameters:

  • Uitdrukking. Typ Datum. Oorspronkelijke datum;
  • Uitdrukking. Typ Datum. Afgetrokken datum;
  • Soort verschil. Typ Tekenreeks. Bevat een van de waarden:
    • Seconde;
    • Minuut;
    • Dag;
    • Maand;
    • Kwartaal;

VERSCHIL (DATUM TIJD (2002, 10, 12, 10, 15, 34), DATUM TIJD (2002, 10, 14, 9, 18, 06), "DAG")

Resultaat:

Subtekenreeks

Deze functie is ontworpen om een ​​subtekenreeks uit een tekenreeks te extraheren.

Parameters:

  • Lijn. Typ Tekenreeks. De tekenreeks waaruit de subtekenreeks moet worden geëxtraheerd;
  • Positie. Typ nummer. De positie van het teken van waaruit de uit de tekenreeks te extraheren subtekenreeks begint;
  • Lengte. Typ nummer. De lengte van de subtekenreeks die moet worden geselecteerd.

ONDERGROND (Aannemers.Adres, 1, 4)

Lijnlengte:

De functie is ontworpen om de lengte van een string te bepalen.

Parameter:

  • Lijn. Typ Tekenreeks. De tekenreeks die in lengte moet worden opgegeven.

Tekenreeks (Accounts.Adres)

Jaar

Deze functie is ontworpen om een ​​jaar te extraheren uit een waarde van het type Datum.

Parameter:

  • Datum. Typ Datum. De datum waarop het jaar wordt bepaald.

JAAR (Factuurdatum)

Kwartaal

Deze functie is bedoeld om een ​​kwartgetal te extraheren uit een waarde van het type Datum. Het kwartnummer ligt normaal gesproken in het bereik van 1 tot 4.

Parameter

  • Datum. Typ Datum. De datum waarop het kwartaal wordt bepaald
KWARTAAL (Verzenddatum)

Maand

Deze functie is bedoeld om het nummer van de maand te extraheren uit een waarde van het type Datum. Het maandnummer ligt normaal gesproken tussen 1 en 12.

  • Datum. Typ Datum. De datum waarop de maand wordt bepaald.
MAAND (Factuurdatum)

Dag van het Jaar

Deze functie is ontworpen om de dag van het jaar te halen uit een waarde van het type Datum. De dag van het jaar ligt normaal gesproken tussen 1 en 365 (366).

  • Datum. Typ Datum. De datum waarop de dag van het jaar wordt bepaald.
DAG VAN HET JAAR (Factuurdatum)

Dag

Deze functie is bedoeld om de dag van de maand te halen uit een waarde van het type Datum. De dag van de maand ligt normaal gesproken tussen 1 en 31.

  • Datum. Typ Datum. De datum waarop de dag van de maand wordt bepaald.
DAG (Factuurdatum)

Een week

Deze functie is bedoeld om het nummer van de week van het jaar te halen uit een waarde van het type Datum. De weken van het jaar zijn genummerd vanaf 1.

  • Datum. Typ Datum. De datum waarop de weeknummers worden bepaald.
WEEK (Factuurdatum)

Dag van de week

Deze functie is bedoeld om de dag van de week te halen uit een waarde van het type Datum. De dag van de week is normaal gesproken tussen 1 (maandag) en 7 (zondag).

  • Datum. Typ Datum. De datum waarop de dag van de week wordt bepaald.
DAG VAN DE WEEK (Factuurdatum)

Uur

Deze functie is ontworpen om het uur van de dag te halen uit een waarde van het type Datum. Het uur van de dag varieert van 0 tot 23.

  • Datum. Typ Datum. De datum waarop het uur van de dag wordt bepaald.
UUR (Verzenddatum)

Minuut

Deze functie is bedoeld om de minuut van een uur te halen uit een waarde van het type Datum. De minuut van het uur loopt van 0 tot 59.

  • Datum. Typ Datum. De datum waarop de minuut van het uur wordt bepaald.
MINUUT (Factuurdatum)

Seconde

Deze functie is bedoeld om een ​​seconde van een minuut te halen uit een waarde van het type Datum. De seconde van een minuut varieert van 0 tot 59.

  • Datum. Typ Datum. De datum waarop de seconden van de minuut worden bepaald.
TWEEDE (Factuurdatum)

nadrukkelijk

Deze functie is bedoeld om een ​​type te extraheren uit een expressie die een complex type kan bevatten. Als de expressie een ander type bevat dan het vereiste type, wordt een NULL-waarde geretourneerd.

Parameters:

  • De uitdrukking die moet worden geconverteerd;
  • Typeaanduiding. Typ Tekenreeks. Bevat een tekenreeks van het type. Bijvoorbeeld "Nummer", "String", enz. Naast primitieve typen kan deze string de naam van de tabel bevatten. In dit geval zal worden geprobeerd een verwijzing naar de opgegeven tabel uit te drukken.

Express (Data.Props1, "Nummer (10.3)")

JaNull

Deze functie retourneert de waarde van de tweede parameter als de waarde van de eerste parameter NULL is.

Anders wordt de waarde van de eerste parameter geretourneerd.

JaNULL (Bedrag (Sales.SumTurnover), 0)

Algemene modulefuncties

Een expressie van een datacompositie-engine kan aanroepen van functies van algemene algemene configuratiemodules bevatten. Er is geen extra syntaxis vereist om dergelijke functies aan te roepen.

In dit voorbeeld wordt de functie "AbbreviatedName" aangeroepen vanuit de algemene configuratiemodule.

Merk op dat het gebruik van de functies van gemeenschappelijke modules alleen is toegestaan ​​als de corresponderende parameter van de datacompositieprocessor is gespecificeerd.

Bovendien kunnen de functies van algemene modules niet worden gebruikt in aangepaste velduitdrukkingen.