1s 8.3 raportează calculul în câmpuri personalizate. Limbajul de expresie al sistemului de compunere a datelor (1Cv8)

Limbajul de expresie al sistemului de compoziție a datelor

Limbajul de expresie al sistemului de compunere a datelor este conceput pentru a scrie expresii utilizate în diferite părți ale sistemului.

Expresiile sunt utilizate în următoarele subsisteme:

  • diagramă de dispunere a datelor - pentru a descrie câmpurile calculate, câmpurile totale, expresiile de conexiune etc.;
  • setări de aspect al datelor - pentru a descrie expresii de câmp personalizate;
  • layout layout data - pentru descrierea expresiilor pentru conectarea seturilor de date, descrierea parametrilor de layout etc.

Literale

Expresia poate conține literale. Sunt posibile următoarele tipuri de literale:

  • Linia;
  • Număr;
  • Data de;
  • boolean.

Linia

Un șir literal este scris cu caractere „”, de exemplu:

„Literal șir”

Dacă trebuie să utilizați caracterul „” în interiorul unui șir literal, ar trebui să utilizați două astfel de caractere.

De exemplu:

„Literal „„între ghilimele”““

Număr

Numărul se scrie fără spații, în format zecimal. Partea fracțională este separată folosind simbolul „.”. De exemplu:

10.5 200

Data

Un literal de dată este scris folosind literalul cheie DATETIME. Dupa asta cuvânt cheie, între paranteze, separate prin virgule, sunt enumerate anul, luna, ziua, orele, minutele, secundele. Nu este necesară specificarea timpului.

De exemplu:

DATETIME(1975, 1, 06) – 6 ianuarie 1975 DATETIME(2006, 12, 2, 23, 56, 57) – 2 decembrie 2006, 23 ore 56 minute 57 secunde, 23 ore 56 minute 57 secunde

boolean

Valorile booleene pot fi scrise folosind literalele True (True), False (False).

Sens

Pentru a specifica literali de alte tipuri (enumerări de sistem, date predefinite), se folosește cuvântul cheie Valoare, urmat de numele literalului din paranteze.

Valoare(AccountType. Activ)

Operații pe numere

unar –

Această operațiune are scopul de a schimba semnul unui număr în semnul opus. De exemplu:

Vânzări.Cantitate

Unar +

Această operațiune nu efectuează nicio acțiune asupra numărului. De exemplu:

Vânzări.Cantitate

binar -

Această operație are scopul de a calcula diferența dintre două numere. De exemplu:

ResidualsAndTurnovers.InitialRemaining – RemainingsAndTurnovers.FinalResidualsRemainingsAndTurnovers.InitialRemaining - 100 400 – 357

Binar +

Această operație este concepută pentru a calcula suma a două numere. De exemplu:

RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.Turnover ResiduesAndTurnover.InitialRemaining + 100 400 + 357

Muncă

Această operație este concepută pentru a calcula produsul a două numere. De exemplu:

Nomenclator.Preț * 1,2 2 * 3,14

Divizia

Această operație este concepută pentru a obține rezultatul împărțirii unui operand la altul. De exemplu:

Nomenclator.Pret / 1.2 2 / 3.14

Restul diviziei

Această operație este concepută pentru a obține restul atunci când un operand este împărțit la altul. De exemplu:

Nomenclatură.Preţ % 1,2 2 % 3,14

Operații cu șiruri

Concatenare (binar +)

Această operație este concepută pentru a concatena două șiruri. De exemplu:

Nomenclatură.Articol + „: ”+ Nomenclatură.Nume

Ca

Această operație verifică dacă șirul se potrivește cu modelul transmis.

Valoarea operatorului LIKE este TRUE dacă valoarea<Выражения>satisface modelul, iar FALSE în caz contrar.

Următoarele personaje în<Строке_шаблона>au un sens diferit de doar un alt caracter din rând:

  • % - procent: o secvență care conține zero sau mai multe caractere arbitrare;
  • _ - subliniere: un caracter arbitrar;
  • […] - unul sau mai multe caractere între paranteze drepte: un caracter, oricare dintre cele enumerate între paranteze drepte. Enumerarea poate conține intervale, de exemplu a-z, adică un caracter arbitrar inclus în interval, incluzând capetele intervalului;
  • [^...] - între paranteze pătrate o pictogramă de negație urmată de unul sau mai multe caractere: orice caracter cu excepția celor enumerate după pictograma de negație;

Orice alt simbol înseamnă el însuși și nu poartă nicio sarcină suplimentară. Dacă unul dintre caracterele enumerate trebuie să fie scris ca el însuși, atunci trebuie să fie precedat de<Спецсимвол>, specificat după cuvântul cheie SPECIAL CHARACTER (ESCAPE).

De exemplu, șablon

„%ABV[abvg]\_abv%” CARACTER SPECIAL „\”

înseamnă un subșir format dintr-o succesiune de caractere: litera A; literele B; literele B; o cifră; una dintre literele a, b, c sau d; sublinia; literele a; literele b; literele v. Mai mult, această secvență poate fi localizată pornind de la o poziție arbitrară în linie.

Operații de comparație

Egal

Această operație este menită să compare doi operanzi pentru egalitate. De exemplu:

Sales.Counterparty = Sales.NomenclatureMainSupplier

Nu este egal

Această operație este menită să compare doi operanzi pentru inegalitate. De exemplu:

Vânzări.Contraparte<>Vânzări.NomenclaturăMainSupplier

Mai puțin

Această operație este concepută pentru a verifica dacă primul operand este mai mic decât al doilea. De exemplu:

VânzăriCurrent.Suma< ПродажиПрошлые.Сумма

Mai mult

Această operație este concepută pentru a verifica dacă primul operand este mai mare decât al doilea. De exemplu:

SalesCurrent.Sum > SalesPast.Sum

Mai puțin sau egal

Această operație este concepută pentru a verifica dacă primul operand este mai mic sau egal cu al doilea. De exemplu:

VânzăriCurrent.Suma<= ПродажиПрошлые.Сумма

Mai mult sau egal

Această operație este concepută pentru a verifica dacă primul operand este mai mare sau egal cu al doilea. De exemplu:

SalesCurrent.Amount >= SalesPast.Amount

Operațiunea B

Această operație verifică prezența unei valori în lista de valori transmisă. Rezultatul operației va fi True dacă valoarea este găsită sau False în caz contrar. De exemplu:

Articolul B (&Produs1, &Produs2)

Operațiune de verificare a prezenței unei valori într-un set de date

Operația verifică prezența unei valori în setul de date specificat. Setul de date de validare trebuie să conțină un câmp. De exemplu:

Vânzări Contrapărți către contrapărți

Operație de verificare a unei valori pentru NULL

Această operație returnează True dacă valoarea este NULL. De exemplu:

Vânzări.Contrapartea ESTE NULL

Operație de verificare a unei valori pentru inegalitatea NULL

Această operație returnează True dacă valoarea nu este NULL. De exemplu:

Vânzări Contrapartea NU ESTE NUL

Operații logice

Operațiile logice acceptă expresii de tip boolean ca operanzi.

Operațiunea NU

Operația NOT returnează True dacă operandul său este False și False dacă operandul său este True. De exemplu:

NOT Document.Consignee = Document.Expeditor

Operațiunea I

Operația AND returnează True dacă ambii operanzi sunt True și False dacă unul dintre operanzi este False. De exemplu:

Document.Consignee = Document.Expeditor AND Document.Consignee = &Contraparte

SAU operare

Operația SAU returnează True dacă unul dintre operanzii săi este True și False dacă ambii operanzi sunt False. De exemplu:

Document.Consignee = Document.Expeditor SAU Document.Consignee = &Contraparte

Funcții agregate

Funcțiile agregate efectuează o anumită acțiune asupra unui set de date.

Sumă

Funcția agregată Sum calculează suma valorilor expresiilor transmise acesteia ca argument pentru toate înregistrările de detalii. De exemplu:

Sumă (Vânzări. Sumă Cifra de afaceri)

Cantitate

Funcția Count calculează numărul de valori, altele decât NULL. De exemplu:

Cantitate (Vânzări. Contraparte)

Număr de diferite

Această funcție calculează numărul de valori distincte. De exemplu:

Cantitate (Vânzări diverse. Contraparte)

Maxim

Funcția primește valoarea maximă. De exemplu:

Maxim (Rămas.Cantitate)

Minim

Funcția primește valoarea minimă. De exemplu:

Minim(Rămas.Cantitate)

In medie

Funcția obține media valorilor non-NULL. De exemplu:

Medie (Cantitate rămasă)

Alte operațiuni

Operațiunea SELECT

Operația Select are scopul de a selecta una dintre mai multe valori atunci când sunt îndeplinite anumite condiții. De exemplu:

Selectați Când Sumă > 1000 Apoi Sumă În caz contrar 0 Sfârșit

Reguli pentru compararea a două valori

Dacă tipurile de valori comparate sunt diferite unele de altele, atunci relațiile dintre valori sunt determinate pe baza priorității tipurilor:

  • NULL (cel mai mic);
  • boolean;
  • Număr;
  • Data de;
  • Linia;
  • Tipuri de referință

Relațiile dintre diferitele tipuri de referință sunt determinate pe baza numerelor de referință ale tabelelor corespunzătoare unui anumit tip.

Dacă tipurile de date sunt aceleași, atunci valorile sunt comparate conform următoarelor reguli:

  • pentru tipul boolean valoarea TRUE este mai mare decât valoarea FALSE;
  • tipul Number are regulile obișnuite de comparare pentru numere;
  • pentru tipul Date, datele anterioare sunt mai mici decât cele ulterioare;
  • pentru tipul String - compararea șirurilor în conformitate cu caracteristicile naționale stabilite ale bazei de date;
  • tipurile de referință sunt comparate pe baza valorilor lor (numărul de înregistrare etc.).

Lucrul cu valoare NULL

Orice operație în care unul dintre operanzi este NULL va produce un rezultat NULL.

Exista si exceptii:

  • Operația AND va returna NULL numai dacă niciunul dintre operanzi nu este fals;
  • Operația SAU va returna NULL numai dacă niciunul dintre operanzii săi nu este adevărat.

Priorități operaționale

Operațiunile au următoarele priorități (prima linie are cea mai mică prioritate):

  • B, ESTE NUL, NU ESTE NUL;
  • =, <>, <=, <, >=, >;
  • Binar +, Binar – ;
  • *, /, %;
  • Unar +, unar -.

Funcțiile limbajului de expresie ale sistemului de compoziție a datelor

calculati

Funcția Calculate este concepută pentru a calcula o expresie în contextul unei anumite grupări. Funcția are următorii parametri:

  • Expresie. Tastați șir. Conține o expresie calculată;
  • Gruparea. Tastați șir. Conține numele grupării în contextul căreia expresia urmează să fie evaluată. Dacă un șir gol este folosit ca nume de grupare, calculul va fi efectuat în contextul grupării curente. Dacă șirul GrandTotal este folosit ca nume de grup, calculul va fi efectuat în contextul totalului general. În caz contrar, calculul va fi efectuat în contextul grupării părinte cu același nume. De exemplu:
Sumă(Vânzări.Suma Cifra de afaceri) / Calculați(„Suma(Vânzări.Suma Cifra de afaceri)”, „Total”)

ÎN în acest exemplu rezultatul va fi raportul dintre suma pentru câmpul „Vânzări.Suma Cifra de afaceri” din înregistrarea grupării și valoarea aceluiași câmp în întregul aspect.

Nivel

Funcția este concepută pentru a obține nivelul curent de înregistrare.

Nivel()

NumberInOrder

Obțineți următorul număr de ordine.

NumberByOrder()

NumberInOrderInGrouping

Returnează următorul număr ordinal din gruparea curentă.

NumberByOrderInGroup()

Format

Obțineți un șir formatat al valorii transmise.

Șirul de format este setat în funcție de șir de format 1C: Întreprindere.

Opțiuni:

  • Sens;
  • Formatați șirul.

Format(Facturi consumabile. Sumă document, „NPV=2”)

Începutul perioadei

Opțiuni:

    • Minut;
    • Zi;
    • O săptămână;
    • Lună;
    • Sfert;
    • Deceniu;
    • Jumatate de an.

StartPeriod(DateTime(2002, 10, 12, 10, 15, 34), „Month”)

Rezultat:

01.10.2002 0:00:00

Sfârșitul perioadei

Funcția este concepută pentru a extrage o anumită dată dintr-o dată dată.

Opțiuni:

  • Data de. Tip Data. Data specificată;
  • Tipul perioadei. Tastați șir. Conține una dintre următoarele valori:
    • Minut;
    • Zi;
    • O săptămână;
    • Lună;
    • Sfert;
    • Deceniu;
    • Jumatate de an.

EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), „Săptămâna”)

Rezultat:

13.10.2002 23:59:59

AddToDate

Funcția este concepută pentru a adăuga o anumită valoare unei date.

Opțiuni:

  • Tip de mărire. Tastați șir. Conține una dintre următoarele valori:
    • Minut;
    • Zi;
    • O săptămână;
    • Lună;
    • Sfert;
    • Deceniu;
    • Jumatate de an.
  • Sumă – cu cât trebuie să măriți data. Număr de tip. Partea fracționată este ignorată.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), „Lună”, 1)

Rezultat:

12.11.2002 10:15:34

Diferența de dată

Funcția este concepută pentru a obține diferența dintre două date.

Opțiuni:

  • Expresie. Tip Data. data originală;
  • Expresie. Tip Data. Data scăzută;
  • Tip de diferență. Tastați șir. Conține una dintre următoarele valori:
    • Al doilea;
    • Minut;
    • Zi;
    • Lună;
    • Sfert;

DATEDIFERENCE(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), „DAY”)

Rezultat:

Subșir

Această funcție este destinat să extragă un subșir dintr-un șir.

Opțiuni:

  • Linia. Tastați șir. Șirul din care este extras subșirul;
  • Poziţie. Număr de tip. Poziția caracterului din care începe subșirul care urmează să fie extras din șir;
  • Lungime. Număr de tip. Lungimea subșirului alocat.

SUBSTRING(Conturi.Adresă, 1, 4)

Lungimea liniei

Funcția este concepută pentru a determina lungimea unui șir.

Parametru:

  • Linia. Tastați șir. Un șir a cărui lungime este specificată.

Linie(Contrapărți.Adresă)

An

Această funcție este concepută pentru a extrage anul dintr-o valoare de tip Date.

Parametru:

  • Data de. Tip Data. Data până la care este determinat anul.

AN (Cheltuieli.Data)

Sfert

Această funcție este concepută pentru a extrage numărul trimestrului dintr-o valoare de tip Date. Numărul sfertului variază în mod normal de la 1 la 4.

Parametru

  • Data de. Tip Data. Data până la care se determină trimestrul
QUARTER(Cheltuială.Data)

Lună

Această funcție este concepută pentru a extrage numărul lunii dintr-o valoare de tip Date. Numărul lunii variază în mod normal de la 1 la 12.

  • Data de. Tip Data. Data până la care este determinată luna.
MONTH(Cheltuială.Data)

Ziua Anului

Această funcție este concepută pentru a obține ziua anului dintr-o valoare de tip Date. Ziua anului variază în mod normal între 1 și 365 (366).

  • Data de. Tip Data. Data până la care se stabilește ziua anului.
DAYYEAR(ExpenseAccount.Date)

Zi

Această funcție este concepută pentru a obține ziua lunii dintr-o valoare de tip Date. Ziua lunii variază în mod normal între 1 și 31.

  • Data de. Tip Data. Data până la care se stabilește ziua lunii.
ZI (Cheltuieli.Data)

O săptămână

Această funcție este concepută pentru a obține numărul săptămânii din an dintr-o valoare de tip Date. Săptămânile anului sunt numerotate începând de la 1.

  • Data de. Tip Data. Data după care sunt determinate numerele săptămânii.
SĂPTĂMÂNĂ(Cheltuială.Data)

Zi a săptămânii

Această funcție este concepută pentru a obține ziua săptămânii dintr-o valoare de tip Date. Ziua normală a săptămânii variază de la 1 (luni) la 7 (duminică).

  • Data de. Tip Data. Data după care este determinată ziua săptămânii.
ZIUA SĂPTĂMÂNII (Cheltuieli.Data)

Ora

Această funcție este concepută pentru a obține ora din zi dintr-o valoare de tip Date. Ora zilei variază de la 0 la 23.

  • Data de. Tip Data. Data după care este determinată ora zilei.
HOUR(Cheltuieli.Data)

Minut

Această funcție este concepută pentru a obține minutul orei dintr-o valoare de tip Date. Minutul orei variază de la 0 la 59.

  • Data de. Tip Data. Data după care este determinat minutul orei.
MINUT(Cheltuieli.Data)

Al doilea

Această funcție este concepută pentru a obține secunda dintr-un minut dintr-o valoare de tip Date. Secunda dintr-un minut variază de la 0 la 59.

  • Data de. Tip Data. Data după care sunt determinate secundele minutei.
SECOND(Cheltuieli.Data)

Expres

Această funcție este concepută pentru a extrage un tip dintr-o expresie care poate conține tip compozit. Dacă expresia conține un alt tip decât cel cerut, va fi returnat NULL.

Opțiuni:

  • Expresie pentru a converti;
  • Indicație tip. Tastați șir. Conține un șir de tip. De exemplu, „Număr”, „Șir”, etc. Pe lângă tipurile primitive linie dată poate conține numele tabelului. În acest caz, se va încerca să se exprime o referire la tabelul specificat.

Express(Data.Props1, „Număr(10,3)”)

EsteNull

Această funcție returnează valoarea celui de-al doilea parametru dacă valoarea primului parametru este NULL.

În caz contrar, va fi returnată valoarea primului parametru.

YesNULL(Suma(Vânzări.Sumă Cifra de afaceri), 0)

Funcțiile modulelor comune

Expresia motorului de compunere a datelor poate conține apeluri la funcții globale module comune configuratii. Nu este necesară nicio sintaxă suplimentară pentru a apela astfel de funcții.

În acest exemplu, funcția „AbreviatedName” va fi apelată din modulul de configurare generală.

Rețineți că utilizarea funcțiilor comune ale modulului este permisă numai dacă este specificat parametrul corespunzător al procesorului de compoziție a datelor.

În plus, funcțiile modulelor comune nu pot fi utilizate în expresiile de câmp personalizate.

Pentru un management competent, orice organizație comercială are nevoie de primirea promptă a informațiilor despre starea curentă a mărfurilor, vânzărilor și profiturilor. Cu toate acestea, dacă te gândești că organizațiile lucrează adesea cu o gamă largă de bunuri și o cantitate mare contrapartidelor, atunci instrumentul de configurare a rapoartelor analitice joacă un rol important în obținerea informatie necesara. Să aruncăm o privire mai atentă asupra modului de lucru cu câmpurile personalizate în rapoartele standard ale programului (rev. 11).

Dezvoltarea platformei 1C: Enterprise 8 oferă utilizatorilor din ce în ce mai multe oportunități. De exemplu, în versiunea 8.2, rapoartele au devenit mai flexibile, permițându-le să fie personalizate pentru a se potrivi diferitelor cerințe fără ajutorul programatorilor calificați.

Modificarea setărilor raportului

Pentru a vizualiza sau modifica setările raportului, accesați meniul „Toate acțiunile” și selectați comanda „Modificare opțiunea”. După aceasta, în fața utilizatorului se deschide o fereastră cu setări pentru raportul deschis.

În partea superioară a ferestrei de setări, puteți vedea structura raportului, care nu este altceva decât o reflectare vizuală a coloanelor raportului și a grupărilor de rânduri ale acestuia, ceea ce face posibilă, în esență, să ne imaginăm ordinea în care sunt date analitice. afișate în acest raport.

În partea de jos a ferestrei de setări sunt afișate informațiile reale și setările de câmp, referitoare fie la raport, fie la elementele structurii acestuia (coloane și grupări de rânduri).

Câmpuri customizate

Într-un program 1C: Managementul comerțului 8 Setările raportului Ediția 11 oferă utilizatorilor mai multe opțiuni în generația lor.

În fereastra de editare a setărilor și a structurii raportului, am dori să atragem atenția specială utilizatorilor asupra filei „Câmpuri personalizate”, care vă permite să vă creați propriile câmpuri și să le adăugați la raport. Trebuie amintit că anterior utilizatorul putea folosi doar acele câmpuri care au fost implementate de dezvoltator.

Să ne uităm la utilizarea acestei funcții folosind un exemplu.

Să presupunem că șeful unei companii comerciale care vinde mărfuri în Moscova și regiuni dorește să personalizeze raportul „Istoricul vânzărilor” la cerințele sale, dorind să afișeze în el date despre vânzarea produselor în Moscova și regiunile în general, ca precum și partenerilor. Acest lucru este foarte ușor de realizat folosind câmpuri personalizate.

Astfel, un exemplu clar arată că setările flexibile pentru câmpurile personalizate într-un program standard 1C: Managementul comerțului 8 oferiți utilizatorului oportunități ample în setările de raport, permițându-vă să primiți rapid informatie necesaraîntr-o formă convenabilă.

Adăugarea propriilor coloane la rapoartele gata făcute.
În rapoartele realizate folosind „Schema de compunere a datelor” din modul utilizator, puteți adăuga propriile câmpuri, care vor fi afișate în timpul generării.
Puteți utiliza operații aritmetice în aceste câmpuri.

Cu mult timp în urmă am scris un raport „Vânzări de mărfuri prin transport” http://infostart.ru/public/16477/. În această publicație nu vom discuta despre relevanța și avantajele acesteia. Acest raport va fi folosit ca șablon pentru experimente și modificări. Mai mult, în comentarii au întrebat cum să adauge Fields.

Deschideți „Setări...” și accesați fila „Setări personalizate”.

2. Adăugați o „Expresie de câmp nouă”

Adăugarea câmpurilor este o înregistrare operatii aritmeticeîntre câmpurile disponibile (sunt permise cele marcate cu un pătrat verde). De asemenea, o caracteristică, dacă numele unui astfel de câmp este format din două sau mai multe cuvinte, acesta trebuie inclus între paranteze drepte. Se va dovedi așa - [Sale Value].

După salvare, acest câmp va deveni disponibil pentru selecție:

Cu ajutorul unor manipulări simple obțineți valoarea de care aveți nevoie. Această caracteristică vă permite să adăugați câmpuri obligatorii. În opțiunile de calcul de care aveți nevoie. Rentabilitatea, eficiența și alte valori vor fi luate în considerare în logica dvs. de calcul aritmetic.

În acest caz, munca dvs. nu va fi pierdută și o puteți utiliza data viitoare când deschideți raportul.

Funcții utilizate la scrierea câmpurilor.

  • Aritmetica „+, -, *, /” este de înțeles, cred că nu este nevoie să explicăm principiul funcționării lor.
  • Expresii booleeneîn sunt folosite pentru a determina selecţiile. « > ,< , = , >= , <= , <>, ȘI, SAU, NU." Aceste expresii sunt folosite cu operația de selectare.
  • Operațiuni de selecție. Folosit pentru a obține una dintre valorile posibile în conformitate cu condițiile specificate

ALEGERE
CÂND< Операция выбора >APOI<Выражение>
IN CAZ CONTRAR<Выражение>
Sfârşit
Exemplu:
ALEGERE
WHEN Cantitate > 0 și Sumă > 0 THEN „Corect”
ELSE "Eroare"
Sfârşit

Acesta este descifrat astfel: cu condiția ca cantitatea să fie mai mare decât zero și cantitățile sunt mai mari decât zero, va fi afișat textul „Corect”, iar dacă cel puțin una dintre condiții nu este îndeplinită, va fi afișat „Eroare”.

  • O funcție încorporată vă permite să efectuați anumite transformări cu câmpuri.

SUB-STRING („Expresie”, „Poziție de început”, „Poziție finală”) - selectează partea din „Expresie” limitată de cadrele „Start...” și „Final...”.
Cum se întâmplă acest lucru când valoarea Nomenclaturii este „Pastă de ciocolată”, formula Subșir (Nomenclatură,1,5) va afișa valoarea „Lipire”

Pentru a lucra cu data, utilizați funcțiile

AN(<Дата>), SFERT(<Дата>), LUNA(<Дата>), DAYYEAR(<Дата>), ZI (<Дата>), O SĂPTĂMÂNĂ(<Дата>), ZIUA SĂPTĂMNICĂ(<Дата>),ORA(<Дата>), MINUT(<Дата>), AL DOILEA(<Дата>)

Va fi afișată valoarea corespunzătoare numelui funcției.

START OF PERIODE(„Data”, „Shift Period”), SFÂRȘITUL PERIODEI(„Data”, „Shift Period”). Pentru datele funcției, valoarea expresiei datei este la începutul sau la sfârșitul datei specificate.

ADDCDATE („Data”, „Perioada de schimb”, „Suma cu care doriți să măriți data”) - funcția vă permite să măriți sau să micșorați data cu o anumită valoare.

DATE DIFERENCE („Data1”, „Data2”, „Perioada de schimb”) - Funcția este concepută pentru a obține diferența dintre două date.

„Perioada de schimb” este una dintre „minut, oră, zi, săptămână, lună, trimestru, an, deceniu, semianual”.

5. Funcțiile de agregare ale limbajului de interogare sunt utilizate la gruparea rezultatelor și calcularea totalurilor

SUMA (<>) suma aritmetică a tuturor valorilor incluse în eșantion.
IN MEDIE (<>) calculează valoarea medie a tuturor celor incluse în eșantion
MINIM (<>) calculează valoarea minimă din toate valorile incluse în eșantion
MAXIM (<>) calculează valoarea maximă din toate valorile incluse în eșantion
CANTITATE (<>) numără numărul de valori ale parametrilor incluse în eșantion. Această funcție vă permite să aveți opțiuni de utilizare. COUNT(*) - vă permite să numărați numărul de rânduri din rezultat. QUANTITY(DIFERENT „Expresie”) - vă permite să numărați numărul de valori diferite ale câmpului specificat.

Sumă (Alegere
Când Subșir (Nomenclatură, 1, 5) = „Lipire”
Apoi Cantitate *0,2
În caz contrar Cantitate *0,35
Sfârşit)

Rezultatul este suma valorilor; când „Paste” este prezent la începutul denumirii nomenclaturii, în acest caz cantitatea crește cu 0,2; dacă nu este prezentă, crește cu 0,35.

An([Document.Date])

Va fi afișat anul în care documentul a fost înregistrat/publicat.

Un exemplu mai complex, fără decodare.

Alegere
Când Trimestru([Document.Data]) = 1 AND Subșir(Nomenclatură, 1, 5) = „Lipire”
Apoi Cantitate * 0,2
Altfel Alegere
Când Trimestru ([Document.Data]) = 2
Apoi Cantitate * 0,3
Altfel Alegere
Când Trimestru([Document.Data]) = 3
Apoi Cantitate * 0,4
Altfel Alegere
Când Trimestru([Document.Data]) = 4
Apoi Cantitate * 0,5
Sfârşit
Sfârşit
Sfârşit
Sfârşit

Am examinat în detaliu setările rapoartelor implementate pe baza sistemului de control acces. Acum să ne uităm la cele mai subtile și setări detaliate opțiuni de raportare. Fereastra pentru setările „avansate” ale opțiunii de raport este apelată de comanda „Mai multe” - „Altele” - „Modificați opțiunea raportului”.

Fereastra pentru modificarea versiunii raportului este împărțită în două părți:

1. Structura raportului.

2. Setări raport.


Secțiunea de structură a opțiunii de raport este similară cu fila „Structură” din setările standard ale raportului. Scopul și configurația grupărilor sunt discutate în detaliu în partea 1 a articolului.

Tabelul structurii variantelor de raport, pe lângă coloana reală cu grupări, conține mai multe coloane suplimentare:

Secțiunea de setări ale opțiunii de raport oferă utilizatorului oportunități ample de a configura raportul pentru a se potrivi nevoilor sale. Aproape complet coincide cu setări standard raport discutat în partea 1. Să ne uităm la toate filele secțiunii și să notăm diferențele.

Secțiunea de setări este formată din următoarele file:

1. Parametri. Conține parametrii ACS disponibili pentru utilizator.

Parametrul SKD este o valoare utilizată pentru a obține date de raport. Aceasta poate fi o valoare de condiție pentru selectarea sau verificarea datelor, precum și o valoare auxiliară.


Tabelul de parametri este prezentat în formatul „Parametru” - „Valoare”. Dacă este necesar, puteți modifica valorile parametrilor. Făcând clic pe butonul „Setări personalizate Proprietăți element” se deschide setările personalizate ale elementului.


În această fereastră, puteți selecta dacă elementul va fi inclus în setările utilizatorului (adică, vizibil pentru utilizator la crearea unui raport), puteți seta prezentarea și modul de editare a elementului ( acces rapidîn antetul raportului, normal în setările raportului și indisponibil).

Proprietățile elementului cu setări personalizate au, de asemenea, câmpuri grupabile, margini, selecții și elemente de aspect condiționat.

2. Câmpuri personalizate. Conține câmpuri care sunt generate de utilizatorul însuși pe baza datelor selectate de raport.


Utilizatorul poate adăuga două tipuri de câmpuri:

  • Câmp nou de selecție...
  • Câmp nou de expresie...

Câmpurile de selecție vă permit să calculați o valoare pe baza unei anumite condiții. Fereastra de editare a câmpului de selecție conține un titlu de câmp și un tabel în care sunt specificate selecția, valoarea și prezentarea câmpului. Selectarea este o condiție, în funcție de care se va înlocui valoarea dorită.


De exemplu, să calculăm o estimare a numărului de vânzări. Vom presupune că dacă se vând mai puțin de 10 unități dintr-un produs, am vândut puțin, iar dacă sunt mai mult de 10 unități, am vândut foarte mult. Pentru a face acest lucru, vom seta 2 valori pentru câmpul calculat: prima va fi cu selecția „Număr de bunuri mai mic sau egal cu „10””, a doua cu selecția „Număr de mărfuri mai mare decât „10”. ””.

Câmpurile de expresie vă permit să calculați o valoare folosind algoritmi arbitrari. Ei pot folosi funcțiile limbajului de interogare și limbajul de programare 1C încorporat. Fereastra de editare a câmpului de expresie conține două câmpuri pentru expresiile înregistrărilor detaliate și rezumate. Înregistrările totale sunt grupări configurate în zona „Structura raportului”; acestea trebuie să utilizeze funcții de agregare („Suma”, „Minim”, „Maximum”, „Cantitate”).

De exemplu, să calculăm procentul mediu de reducere. Procentul mediu de reducere se calculează folosind formula: [Suma vânzărilor fără reducere] - [Suma vânzărilor cu reducere] / [Suma vânzărilor fără reducere]. Este important de reținut că valoarea vânzărilor fără reducere poate fi zero, așa că folosim operatorul SELECT pentru a verifica. Obținem următoarele expresii:

· Pentru intrări detaliate:

Alegere

Când [Suma vânzărilor fără reducere] = 0

Apoi 0

În caz contrar [Suma vânzărilor fără reducere] - [Suma vânzărilor cu reducere] / [Suma vânzărilor fără reducere]

Sfârşit

· Pentru înregistrările rezumative:

Alegere

Când Suma([Suma vânzărilor fără reducere]) = 0

Apoi 0

În caz contrar Sumă([Suma vânzărilor fără reducere]) - Sumă([Suma vânzărilor cu reducere]) / Sumă([Suma vânzărilor fără reducere])

Sfârşit

După cum am menționat mai devreme, în exprimarea înregistrărilor totale folosim funcția de agregare „Suma”.

3. Câmpuri grupabile. Conține câmpuri după care vor fi grupate rezultatele variantei de raport. Câmpurile grupate sunt configurate separat pentru fiecare grupare, dar puteți seta câmpuri grupate generale pentru o opțiune de raport dacă selectați rădăcina „Raport” în arborele de structură. Puteți adăuga un câmp din rezultatul raportului, un câmp personalizat sau puteți selecta un câmp automat, apoi sistemul va selecta câmpurile automat. Această filă vă permite, de asemenea, să schimbați ordinea câmpurilor grupate.


4. Câmpuri. Conține câmpurile care vor fi afișate ca rezultat al variantei de raport. Câmpurile sunt configurate separat pentru fiecare grupare, dar puteți seta câmpuri comune pentru o opțiune de raport dacă selectați rădăcina „Raport” în arborele de structură. Puteți adăuga un câmp din rezultatul raportului, un câmp personalizat sau puteți selecta un câmp automat, apoi sistemul va selecta câmpurile automat. Această filă vă permite, de asemenea, să schimbați ordinea câmpurilor.

Câmpurile pot fi grupate pentru a evidenția în mod logic orice parte a raportului sau pentru a specifica un aranjament special de coloane. Când adăugați un grup, coloana „Locație” devine activă și vă permite să selectați una dintre opțiunile de locație:

  • Auto - sistemul plasează câmpuri automat;
  • Orizontală - câmpurile sunt poziționate orizontal;
  • Vertical - câmpurile sunt dispuse vertical;
  • Într-o coloană separată - câmpurile sunt situate în coloane diferite;
  • Împreună - câmpurile sunt situate într-o singură coloană.


5. Selectie. Conține selecțiile utilizate în varianta de raport. Configurarea selecțiilor a fost discutată în detaliu în partea 1 a acestui articol. Filtrele sunt configurate separat pentru fiecare grupare, dar puteți seta filtre generale pentru o opțiune de raport dacă selectați rădăcina „Raport” în arborele de structură.


6. Sortarea. Conține câmpurile de sortare utilizate în varianta de raport. Configurarea câmpurilor de sortare a fost discutată în detaliu în partea 1 a acestui articol. Sortarea este configurată separat pentru fiecare grupare, dar puteți seta câmpuri generale de sortare pentru o opțiune de raport dacă selectați rădăcina „Raport” în arborele de structură.


7. Înregistrare condiționată. Conține elemente de proiectare condiționate utilizate în varianta de raport. Configurarea aspectului condiționat a fost discutată în detaliu în partea 1 a acestui articol. Aspectul condiționat este configurat separat pentru fiecare grupare, dar puteți seta elemente generale de aspect condiționat pentru o opțiune de raport dacă selectați rădăcina „Raport” în arborele de structură.


8. Setări suplimentare. Conține setari aditionale intocmirea raportului. Vă permite să selectați un comun aspect raport, locația câmpurilor, grupări, detalii, resurse, totaluri, setați setările diagramei, controlați afișarea titlului, parametrilor și selecția, determinați poziția resurselor și fixați antetul și coloanele de grupare ale versiunii raportului.


În concluzie, aș dori să notez că setările raportului nu pot fi salvate doar ca opțiune de raport, ci și încărcate într-un fișier (meniul „Mai multe” - „Salvare setări”). Pentru a descărca, trebuie să selectați „Încărcare setări” și să selectați fișierul salvat. Astfel, putem transfera setările variantelor de raport între diferite baze de date care au aceeași configurație.


Pe baza acestui lucru, putem rezuma că utilizatorul nu poate personaliza în mod independent raportul pentru a se potrivi nevoilor sale, dar și poate să-și salveze setările și să le folosească în viitor, dacă este necesar.

Fiecare organizație, pentru a lua decizii de management în timp util și corecte, are nevoie de informații operaționale despre disponibilitatea mărfurilor în depozite, costul acesteia și vânzări. Organizațiile comerciale lucrează cu un număr mare de articole și contrapărți, iar acest lucru necesită o bună configurare a contabilității analitice și achiziția rapidă a informațiilor necesare din datele sale. Articolul discută tehnicile de bază pentru lucrul cu rapoarte standard în soluție standard„1C: Trade Management 8” (ediția 11), construită pe baza unui sistem de compunere a datelor, oferă recomandări practice utile, care vor fi utile atât utilizatorilor începători, cât și celor care au trecut la noua ediție din edițiile precedente.

De exemplu, să luăm raportul

  • Analiza disponibilitatii produselor;

Setări.

Într-o coloană Tip de comparație Nomenclatură

  • Egal
  • Nu este egal
  • Pe listă
  • Nu pe listă
  • In grup Nomenclatură;
  • Nu în grup Nomenclatură;
  • Într-un grup din listă Nomenclatură;
  • Nu într-un grup din listă Nomenclatură.

Sens

„Selectări rapide”

Pe măsură ce platforma 1C:Enterprise 8 se dezvoltă și apare noua versiune 8.2, rapoartele din sisteme devin mai flexibile, iar utilizatorii au din ce în ce mai multe oportunități de a le personaliza la cerințele lor fără ajutorul programatorilor.

Noile oportunități oferite de sistemul de compoziție a datelor (DCS) vă permit să experimentați beneficiile capabilităților 1C:Enterprise 8 atunci când creați rapoarte ca niciodată. Și, în ciuda faptului că interfața de raportare a suferit modificări semnificative (comparativ cu ediția 10.3 a configurației „Trade Management”, denumită în continuare UT), setările raportului sunt încă disponibile pentru utilizatorul obișnuit. Să ne uităm la câteva tehnici de bază pentru a lucra cu ele.

Primul lucru la care poți acorda atenție este selecțiile rapide. Acestea vă permit să afișați date într-un raport pe baza anumitor valori ale câmpurilor de raport în funcție de dorințele utilizatorului.

De exemplu, să luăm raportul Analiza disponibilității produselor în UT. Să observăm imediat că întreaga demonstrație a capabilităților de raportare din UT 11 va avea loc folosind exemplul a două rapoarte:

  • Analiza disponibilitatii produselor;
  • Venituri și costuri de vânzări.

Selectarea după anumite câmpuri se poate face fie direct în formularul de raport, fie folosind un buton Setări.

Într-o coloană Tip de comparație utilizatorul poate selecta diferite condiții de comparație. De exemplu, pentru teren Nomenclatură Puteți selecta următoarele tipuri de comparație:

  • Egal- raportul va fi construit numai pentru articolul selectat;
  • Nu este egal- raportul va fi generat pentru întreaga gamă de produse, cu excepția articolului selectat;
  • Pe listă- raportul se va baza pe o listă de articole;
  • Nu pe listă- raportul va fi construit pe întreaga gamă de produse, cu excepția articolelor selectate;
  • In grup- raportul va fi construit pe întregul articol aflat în folderul director selectat Nomenclatură;
  • Nu în grup- raportul va fi construit pe întreaga gamă de produse, cu excepția articolelor aflate în directorul selectat Nomenclatură;
  • Într-un grup din listă- similar cu comparația În listă, doar folderele din director sunt selectate ca valori de listă Nomenclatură;
  • Nu într-un grup din listă- similar cu comparația Nu este în listă, doar folderele din director sunt selectate ca valori de listă Nomenclatură.

Caseta de selectare din stânga câmpului de selecție indică faptul că selecția pentru acest câmp este „activată”, adică este luată în considerare de raport.

Câmpurile nebifate nu sunt luate în considerare chiar dacă ați selectat anumite valori pentru acele câmpuri.

În funcție de tipul de comparație selectat în coloană Sens este indicat un anumit element sau folder (grup) al directorului sau o listă de elemente sau foldere.

„Selectări rapide” sunt disponibile în toate soluțiile de pe platforma 1C:Enterprise 8.

Un exemplu de modificare simplă a setărilor raportului

Pentru a vizualiza/modifica setările raportului, trebuie să mergeți la meniu Toate acțiunile - Schimbați opțiunea.

În fața noastră se deschide fereastra de setări pentru opțiunea de raport selectată.

Structura raportului este afișată în partea de sus a ferestrei. În esență, aceasta este o afișare vizuală a grupărilor de rânduri și coloane ale raportului, adică în ce ordine vor fi afișate datele de analiză în raport în rânduri și coloane.

În partea de jos a ferestrei, sunt afișate informații referitoare la raport în ansamblu (dacă nivelul superior este selectat în structura raportului Raport), sau la o grupare specifică de rânduri sau coloane ale raportului (dacă este selectată o grupare la un nivel inferior), setări pentru afișarea informațiilor și proiectarea câmpurilor.

Exemplul 1

Pasul 1. Trebuie să eliminăm gruparea după caracteristicile produsului, lăsând doar gruparea după produs. Pentru a face acest lucru, în partea de sus a ferestrei de setări a raportului, faceți clic pe câmp Nomenclatură, Caracteristici. În partea de jos a ferestrei, accesați fila Grupuri.

Selectați câmpul Caracteristicăși faceți clic pe butonul Șterge panoul de comandă.

Confirmați modificările aduse setărilor raportului făcând clic pe butonul Terminați editareaîn colțul din stânga jos al ecranului.

Pasul 2. După eliminarea caracteristicii, sarcina noastră, conform condițiilor exemplului, va fi să adăugăm un grup de preț. În esență, această grupare ar trebui să fie la un nivel mai mic decât gruparea pe depozit, dar la un nivel mai mare decât gruparea pe articol. Prin urmare, în structura raportului vom evidenția o grupare Stoc.

Făcând clic pe el Click dreapta mouse, selectați comanda din meniul contextual Grup nou.

În fereastra de editare a câmpului de grupare care se deschide, selectați Nomenclator.Grupa de pret.

Făcând clic pe butonul Bine, vom vedea că la raport a fost adăugată o nouă grupare, subordonată grupării Stoc.

Acum să selectăm gruparea după produs și, fără a elibera butonul din dreapta al mouse-ului, să o tragem în interiorul (adică mai jos) gruparea după grup de preț. Vom obține structura prezentată în Figura 1. Rezultatul înființării raportului este prezentat în Figura 2.

Orez. 1. Structura raportului rezultat

Orez. 2. Rezultatul personalizării raportului

Lucrul cu câmpuri personalizate

Să aruncăm o privire mai atentă la noile opțiuni de personalizare a rapoartelor din programul 1C: Trade Management 8.

Sub forma editării structurii și setărilor raportului nostru, să fim atenți la filă Câmpuri customizate.

Anterior, am adăugat câmpuri în raport, a căror listă a fost prespecificată de dezvoltator. Folosind această filă, ne putem crea propriile câmpuri de care avem nevoie - Câmp de selecție sau Câmpul de expresie.

Exemplul 2

Să personalizăm raportul „Istoricul vânzărilor” (opțiunea raportului „Venituri și costul vânzărilor”). Vom afișa datele vânzărilor în funcție de parteneri și de gama de produse. Să presupunem că compania noastră vinde mărfuri în Moscova și în regiuni. Astfel, fiecare client din baza de informații aparține unei anumite regiuni geografice (atributul „Business Region” din directorul „Partners”). Putem grupa cu ușurință datele vânzărilor într-un raport în funcție de regiune, dar ce se întâmplă dacă suntem interesați de statistici mai agregate, în special de răspunsul la întrebarea „Câte bunuri au fost vândute la Moscova și câte în toate celelalte regiuni combinate”? Aici sunt utile „câmpurile personalizate”.

Pasul 1. Să deschidem raportul. Să mergem la formularul pentru configurarea structurii raportului ( Toate acțiunile -> Schimbați opțiunea). Să ștergem pe rând toate grupurile create anterior în raport - pentru a face acest lucru, selectați fiecare dintre ele și faceți clic pe butonul Șterge panoul de comandă sau utilizați tasta DEL.

La fel ca în exemplul anterior, să adăugăm o grupare la raport în funcție de partener și apoi de articol. Știm deja cum să facem asta, așa că nu va dura mult timp.

Pasul 2. Să creăm un nou câmp personalizat. Să deschidem marcajul Câmpuri customizateși executați comanda Adăugați -> Câmp de selectare nou.

Să dăm un nume noului nostru câmp - Regiunea în general.

Hai să facem clic pe butonul Adăuga. ÎN linie nouă faceți clic pe butonul din coloană Selecţie. În formularul de editare a selecției care apare, adăugați selecția după câmp Partener.Regiune de afaceri. Să alegem tipul de comparație Egal, sens - Moscova.

Hai să facem clic pe butonul Bine, după care vom reveni la fereastra de editare a câmpurilor personalizate. Apoi, trebuie să faceți clic pe butonul din coloană Sens iar în lista de selecție a tipurilor de date care apare, selectați Liniași scrieți ca valoare Moscova.

Să repetăm ​​operația. Să mai adăugăm un rând la tabel. De data aceasta pentru selecție după câmp Partener.Regiune de afaceri alegeți tipul de comparație Nu este egal.

Revenind la fereastra de editare a câmpului personalizat, în coloană Sens Hai să scriem Alte regiuni(vezi Fig. 3).

Orez. 3. Editarea unui câmp personalizat

Hai să facem clic pe butonul Bine. Noul nostru domeniu este gata.

Pasul 3. Să adăugăm noul nostru câmp la structura raportului. Selectarea nivelului superior cu mouse-ul Raport în structură, adăugați o nouă grupare. În recuzită Camp hai sa alegem Regiunea în general.

Să glisăm gruparea după partener și gruparea subordonată după articol în interiorul celui nou creat cu mouse-ul.

Să generăm un raport și să ne uităm la rezultat (prezentat în Fig. 4).

Orez. 4. Rezultatul generării raportului

Selecția și sortarea

Să revenim la fereastra de editare a structurii și setărilor raportului și să fim atenți la marcaje SelecţieȘi Triere.

Dacă elementul rădăcină este selectat în structura raportului ( Raport), atunci setările efectuate în aceste file se vor aplica întregului raport în ansamblu. Dacă este selectată o grupare de rapoarte, setările vor afecta numai acea grupare.

Exemplul 3

Ca urmare, raportul Istoricul vânzărilor Vor fi incluse doar acele implementări în care este specificat managerul. Ivanov Ivan Fedorovici.

Exemplul 4

Salvați modificările efectuate

Dacă modificați structura raportului, o puteți salva oricând folosind comanda Toate acțiunile -> opțiunea Salvare.

În formularul pentru salvarea unei opțiuni, puteți utiliza comutatorul pentru a selecta Salvați în versiunea existentă a raportului(în loc de una dintre opțiunile deja disponibile) sau Salvați noua optiune raport.

Acțiune