Cereri simple. Cereri de pachete Solicitare lot 1C 8.3

Este necesară o solicitare de lot atunci când cererea este prea complicată pentru ao formula și a face să funcționeze eficient. Pentru a înțelege ce cerere de pachete poate fi utilizată de o schemă:

Apropo, opțiunile de lot pentru interogări au devenit disponibile numai în Decizia 8.1.11.67.4 - astfel încât să nu știți cum funcționează în practică. Dacă spui primitiv, este suficient să creați o serie de solicitări și să le conectați prin simbolul ";". De exemplu:

Rezultatul revine la ultima. Apropo, cererile de pachete au suport în fiecare consolă de conservare. Un exemplu de execuție prin consola de solicitare:

De ce nu pot face fără cereri de lot?

Introduceți un rezultat intermediar într-o masă temporară, presupunem să o folosim în unele solicitări următoare. Fără disponibilitatea tabelului temporar, o astfel de solicitare intermediară ar trebui repetată din nou. Dacă nu există cunoștințe despre modul în care lucrează o interogare în lot și cum să o utilizați, puteți efectua unul câte unul, folosind aceste tabele investite - a fost așa mai înainte, acum nu merită cheltuieli în acest moment, pentru că avem un Eficace și simplă solicitarea lotului în 1c. Este convenabil pentru el, nu mai amintiți unde ar trebui să existe o masă temporară. Pentru a minimiza și a viteji, utilizați capabilitățile CCD. Sistemul va selecta, sortează, postați. Iată cum această inovație este poziționată de dezvoltatorii unei soluții populare și fiabile.

Anunțul cererilor de lot de la dezvoltatorii 1C
  • Optimizarea substanțială a programului programului în ansamblu;
  • O creștere a scalabilității unei soluții cunoscute;
  • Viteză eficientă datorită implementării capacităților localizării lotului;
  • Administrarea sistemului simplu și ușor de înțeles;
  • Cele mai bune oportunități de integrare cu alte soluții.
Care sunt funcționalitatea cererilor în 8.1.11?

Se solicită să îmbunătățească semnificativ munca cu tabele temporare. Funcționarea solicitărilor de pachete implică faptul că orice tabel format pentru o cerere specifică din pachet funcționează în timp ce cererea de lot nu și-a terminat pe deplin acțiunea sau până când echipa sa realizat pentru distrugerea sa. Acum puteți obține ca rezultat al celei mai recente solicitări - va fi o comandă de a efectua () și o întreagă gamă de rezultate prin metoda de execuție ().

Algoritm pentru crearea competentă a unei cereri de lot

Deci, acum știm că o cerere de lot este câteva cereri care sunt descrise de noi ca o cerere generală. Acestea trebuie să fie executate unul de celălalt. Orice rezultat intermediar în timpul întregului lanț al cererilor incluse poate fi plasat într-o masă temporară. Cu o astfel de structură, orice solicitare se poate referi la aceste date intermediare. Este important ca rezultatele oricărei interogări plasate într-o masă temporară să poată fi utilizate în mod repetat. În același timp, nu mai trebuie să prescrie același lucru de mai multe ori.

Contra Metoda.

Vorbind despre beneficiile utilizării cererilor de lot, merită menționat faptul că aparent minus. Faptul este că, cu un astfel de algoritm de acțiune, sistemul este forțat constant să creeze tabele în care stochează întreaga bază de date. Timpul se întâmplă atât la crearea fiecărui tabel, cât și la îndepărtarea ulterioară. Iată un exemplu:

Ca rezultat, avem o masă:

Acum folosim o cerere de lot, amintiți-vă că avem nevoie de un simbol punct și virgulă pentru asta, obținem:

Rețineți că a 3-a solicitare combinată rezultatele primelor două, ne uităm la ceea ce sa întâmplat:

Acum vom încerca să adăugăm frumusețe și să schimbăm ușor textul pentru a 3-a solicitare, astfel cum:

Acum avem ce sa întâmplat:

Rămâne să combine coloanele cu o nomenclatură și să pună zerouri în celule goale.

Ele cresc foarte mult lizibilitatea, ceea ce reduce probabilitatea erorilor \u003d\u003e am destul de suficient de acest lucru.

În limba încorporată a cererilor 1C: Întreprinderile de versiune 8.0 Nu a existat nicio capacitate de a utiliza tabele temporare și de a scrie cereri de pachete. În același timp, a fost adesea necesar să se efectueze calcule complexe într-o singură interogare (adică un singur ciclu de interacțiune client - Server 1C: Întreprinderi - Server DBMS). Pentru a rezolva astfel de sarcini, s-au folosit subqueries - apeluri nu la obiecte de metadate, ci la eșantioane din aceste obiecte. De regulă, subqueriele au fost efectuate cu o grupare și au fost adesea folosite în consedii.

Optimizatorul de server DBMS (indiferent de DBMS pe care îl utilizați) nu optim întotdeauna o astfel de solicitare. În acest caz, problema pentru optimizator este alegerea metodei corecte de conectare. Există mai mulți algoritmi pentru conectarea a două eșantioane. Selectarea acestui sau algoritmul depinde de câte înregistrări vor fi conținute într-una și într-un alt eșantion. În cazul în care conectați două mese fizice, DBMS poate determina cu ușurință volumul ambelor eșantioane pe baza statisticilor existente. Dacă unul dintre probele de legătură este o substanță, atunci devine foarte dificil să înțelegeți cât de multe înregistrări devine foarte dificilă. În acest caz, DBM-urile pot fi confundate cu alegerea unui plan, care va duce la o scădere catastrofală a performanței interogării.

Rescrierea interogării pe metoda de mai sus este de a simplifica funcționarea optimizorului DBMS. În cererea rescrisă, toate probele care participă la conexiuni vor fi mese fizice, iar DBMS poate determina cu ușurință dimensiunea fiecărui eșantion. Acest lucru va permite DBMS garantat să aleagă cele mai rapide dintre toate planurile posibile. Mai mult, DBMS va face alegerea potrivită independent de orice condiții. Solicitarea similară solicită, va funcționa la fel de bine pe orice DBMS, ceea ce este deosebit de important atunci când se dezvoltă soluții de circulație. În plus, cererea este mai bine citibilă în acest fel, este mai ușor de înțeles și de depanare.

Trebuie să se înțeleagă că, prin rescrierea cererii în acest fel, am fi făcut o încetinire a acestuia datorită costurilor suplimentare generale - creând tabele temporare. Dacă DBMS nu se înșeală cu alegerea planului, atunci poate efectua o cerere veche mai rapidă decât nouă. Cu toate acestea, această încetinire va fi întotdeauna extrem de minoră. Dimensiunea încetinirii depinde de DBMS utilizat și de performanța echipamentului. Într-un caz tipic, mai multe milisecunde pot prelua crearea unei mese de timp. Adică aceste încetiniri nu pot avea un efect vizibil asupra performanței sistemului și, de regulă, poate fi neglijată.

Solicitări simple

Luați în considerare modul în care sa schimbat (mai corect, a fost completat) sintaxa cererilor din următorul exemplu: se efectuează documentul de cheltuieli, care conține lista de produse din partea tabelului și numărul acestuia. Pentru a efectua acest document, este necesar să se controleze soldurile negative înregistrate în registrul de redresuri al reziduurilor reziduale.

Figura arată structura de configurare.

Creați o cerere la tabelul virtual al rămășițelor registrului de acumulare și al părții tabulare a documentului. Pentru a ține cont de posibile repetări ale rândurilor din document, vom grupa înregistrări.

Desigur, cererea de mai sus nu este suficient de optimă. Optimizăm folosind interogări imbricate: grupate o parte tabară înainte de a conecta la tabelul rezidual al documentului, trimiteți la parametrii tabelului virtual. Lista produselor de produse ca o condiție pentru calcularea reziduurilor. Ca rezultat, cererea va arăta astfel:


Dacă interogarea necesită date din resturile diferitelor registre, valoarea filtrului și cel de-al doilea atașament vor fi repetate în fiecare parametru al tabelelor virtuale, iar sistemul va apărea la fiecare atașament pentru a primi date în baza de date a informațiilor.

Tabele temporare

De la un moment dat, solicitările de utilizare a tabelelor temporare au apărut în interogări, pentru care se utilizează managerul de tabel temporar. De fapt, managerul de tabel temporar conține o descriere a spațiului de nume de tabel temporar și asigură crearea și ștergerea acestora din baza de date.

Tabelele temporare sunt stocate fizic în baza de date, deoarece acestea ar trebui utilizate cu atenție, deoarece Subsistemul disc este cea mai mică parte posibilă a echipamentului, iar viteza de creare și de ștergere a tabelelor depinde direct de ea.

Modificați cererea cu utilizarea tabelelor temporare. Tabelele temporare vor conține o parte tabară a documentului într-o formă grupată și o listă de produse pentru filtrarea tabelelor virtuale:

Aplicarea tabelelor temporare în interogare necesită utilizarea instrucțiunilor de plasare pentru a forma o nouă tabelă temporară, în timp ce rezultatul interogării nu este transmis conținutul tabelului, ci numărul de înregistrări care au fost plasate într-o masă temporară.

În plus, puteți utiliza instrucțiunea de distrugere - în timp ce tabelul temporar este șters, în caz contrar tabelele temporare vor fi distruse de către managerul de tabel temporar împreună cu tabelele.

În interogarea principală, numele tabelelor de timp a fost utilizat ca indicație a sursei de date (acestea ar trebui să fie atribuite sinonimului). Puteți utiliza tabele temporare ca sursă care, cu aplicația corectă, vă permite să reduceți textul interogării și să măriți viteza (când utilizați o masă temporară în diferite secțiuni ale interogării).

Cereri de pachete

Solicitările de loturi extind semnificativ funcționalitatea tabelului temporar și furnizează noi caracteristici atunci când lucrați cu cereri.

Din punct de vedere spumatic, mai multe cereri pot fi descrise în interogarea pachetului, ambele interdependente pe parcursul meselor temporare și independente. Ca rezultat, pare să execute în mod constant toate solicitările și, în final, gama de rezultate ale fiecărei cereri sau rezultatul este doar acesta din urmă. Obținerea unei matrice de rezultate de interogare se face utilizând metoda de performanță () a cererii de obiect și pentru a obține rezultatul numai ultima interogare servește metoda de execuție ().

Solicitările lotului din textul interogării trebuie să fie separate prin simbolul "". Spațiul de nume al tabelelor virtuale dintr-o solicitare separată în lot este unul. Nu este nevoie să utilizați Manager temporar de masă, dar este posibil dacă aveți nevoie să transferați tabele temporare într-o altă solicitare de pachete.

Modificați procedura bazată pe cererile de lot:

De fapt, definiția interogării a fost eliminată, iar managerul de tabel temporar nu a fost utilizat, textele solicitărilor au fost unite. Ca rezultat, textul solicitării a achiziționat un aspect mai ușor de citit.

După execuția interogării, argeratorii variabili vor conține 3 elemente. Primele două sunt numărul de înregistrări DCC plasate în tabele temporare și înregistrări în listă, va fi o probă cu câmpurile Doc_Nity, Nomenclature și Reg_.

Variabila de rezultate conține doar o probă.

Astfel, cererile de loturi reprezintă un instrument foarte convenabil pentru scrierea și citirea interogărilor complexe.

Blogul de bunăvoință 1c.

Platforma 1C Enterprise vă permite să efectuați în mod secvențial câteva cereri la un moment dat. În 1c, acest lucru se numește pachetul de interogare. Într-un pachet, fiecare solicitare este împărțită la un "punct cu o virgulă".

Pentru a realiza performanța treptată a cererilor în ambalaj, sunt create inițial tabelele temporare, atunci se formează condițiile pentru partajarea acestora, cum ar fi filtrele, compușii, asociațiile, sunt formate. Datorită acestui fapt, rezultatul final se realizează. Tabelele temporare obținute ca urmare a oricăror cereri din pachet continuă să existe până la executarea pachetului ca întreg sau înainte de a executa interogarea, care distruge tabele temporare.

În plus, utilizarea cererilor de lot și a tabelelor temporare mărește semnificativ lizibilitatea întregului segment al acestui cod. Cererile complexe care conțin și cererile investite sunt foarte greu de perceput. Cu toate acestea, dacă ați împărți o cerere lungă complexă pentru mai multe, și chiar să utilizați mese temporare, aceasta va face posibilă obținerea nu numai o creștere a percepției, dar în majoritatea cazurilor conduce la o creștere a productivității.

Un alt detaliu important în favoarea solicitărilor lotului din 1c este ceea ce, spre deosebire de cererile investite, putem obține un rezultat separat al fiecărei solicitări din pachet.

Un exemplu de creare a unui pachet de interogare în 1c

Ce ar arăta la exemplul Cum de a crea un pachet de interogare, vom folosi designerul de interogare care va fi numit, pentru claritate, de la consola de solicitare. Astfel, putem vedea imediat rezultatul pachetului.

Creați o solicitare de lot simplu. Propun să introduc imediat textul cererii consolei și apoi să deschidem constructorul și să vedeți cum se formează pachetul de interogare. Adăugați o nouă solicitare consolei și introduceți următorul text:

Hosier.rodel,

Codul comercial,

Hossiest.Chodvilitation,

HOSIST.NAME,

Hosier.vid,

Comercial. Tradus,

Senzațional. Asociate,

Plancocks. Sursa este scumpă

////////////////////////////////////////////////////////////////////////////////

Hosh Estatevidysubkonto. Producători ca un număr,

Hozhertevidysubkonto.vidsubkonto ca un parisubono,

Hoshrechevidysubkonto .vidsubto. Numele ca nume,

Hoshreschevidysubkonto.vidsubtno.tip Semne ca un tip de lemn,

Hoshrestevidysubkonto. Este Sooooooota ca și la rândul său,

Hosh estatevidysubkonto.sumova ca summovova

Plancocks. Ne pare rău. Videtsubonto ca Hizerterherevidysubkonto

FILTREAZĂ DUPĂ

Hoshrestevidysubkonto.

Se pare așa:

Acum, să mergem la designerul de solicitări. Aici vom fi interesați de fila "Pachet de solicitare":

După cum puteți vedea, avem un pachet de la două cereri. Schimbarea de două ori pe oricare dintre ele, puteți să o editați:

Faceți clic pe butonul "OK" și încercați să vizualizați rezultatul solicitării lotului.

Setați parametrul "cont". Puteți alege orice cont din planul de conturi. După cum probabil ați ghicit deja, acest pact de interogare trebuie să obțină proprietățile contului. Faceți clic pe "Rulați" și vedeți rezultatul:

Metode de realizare () și pachetul executiv ()

În plus față de metoda de execuție (), care va alterna toate cererile din pachet și va returna rezultatul ultimei interogări, în 1c există o metodă perfectă (). Acesta returnează o serie de eșantioane ale fiecărei interogări din pachet. În exemplul de mai sus, această metodă este efectuată.

Assults \u003d interogare. Valoare ();

Selection1 \u003d rezultate masive. Cum ar fi ();

Dacă eșantionul1. Următorul () Apoi

// acțiunea de eșantionare 1

Încheiat;

SELECTIVIDESUBConTo \u003d Adresăris.shirt ();

Înregistrarea lucrărilor cu solicitări de pachete în 1C 8.3 și 8.2 Pentru prima dată, a apărut compania de bunăvoință 1c.

Anchete Conceput pentru a extrage și a procesa informații din baza de date pentru a furniza utilizatorului în formularul dorit. Procesarea aici se înțelege gruparea câmpurilor, a șirurilor de sortare, calcularea rezultatelor etc. Modificați datele utilizând cereri în 1c nu poate!

Interogarea este executată în conformitate cu instrucțiunile specificate - solicitare de text. Textul interogării este întocmit în conformitate cu sintaxa și regulile. limba de interogare. Interogare Limba 1C: Enterprise 8 Pe baza standardului SQL.Dar are unele diferențe și extensii.

Schema de lucru cu cererea

Schema generală de lucru cu o cerere constă în mai multe etape consecutive:

  1. Crearea unei solicitări de obiect și stabilirea textului interogării;
  2. Setați parametrii de solicitare;
  3. Executarea interogării și obțineți rezultatul;
  4. Bypass rezultatul interogării și procesării datelor obținute.

1. Obiect. Anchetă Are o proprietate Textcare trebuie să atribuie textul interogării.

// Opțiunea 1
Solicitare \u003d cerere nouă;
Anchetă . Text =
"ALEGE
| Kursivalyut.teriod,
| Coastevalyut.valyuta,
| Kursivalyut.kors.
| Este.

| Unde.
;

// Opțiunea 2.
Interogare \u003d o nouă cerere("ALEGE
| Kursivalyut.teriod,
| Coastevalyut.valyuta,
| Kursivalyut.kors.
| Este.
| Înregistrări. Cursament ca coerenaval
| Unde.
| Kursivalyut.valuta \u003d & valută »);

2. Valorile parametrilor setare se efectuează prin metodă Parametru de instalare (< Имя>, < Значение>) . Parametrii din textul interogării sunt notate de simbol " & "Și de obicei utilizate în condiții de selecție (secțiunea Unde) și în parametrii tabelelor virtuale.

Anchetă);

3. După atribuirea textului și setați parametrii, cererea trebuie efectuată și obținerea rezultatului executării. Execuția este efectuată prin efectuarea (), care returnează obiectul Rezultat înregistrator. Din rezultatul interogării, puteți:

  • obțineți o probă utilizând metoda SELECT (< ТипОбхода>, < Группировки>, < ГруппировкиДляЗначенийГруппировок>) ;
  • valorile neclacute în tabelul valorilor sau în arborele valorilor utilizând metoda de descărcare (< ТипОбхода>) .

// obținerea unui eșantion

Probă \u003d Înregistrarea rezultatelor. Alege();

// obținerea unui tabel de valori
Rezultat reprove \u003d cerere. A executa ();
Masa \u003d Înregistrarea rezultatelor. Descărca();

4. Bypass eșantionul rezultatului interogării, puteți utiliza ciclul:

Pana cand Eșantionare. Următorul () Ciclu
Raport (eșantion. Curce);
Endcycle;

Un exemplu complet de lucru cu solicitarea poate arăta astfel:

// Etapa 1. Crearea unei interogări și setarea textului interogării
Solicitare \u003d cerere nouă;
Anchetă . Text =
"ALEGE
| Kursivalyut.teriod,
| Coastevalyut.valyuta,
| Kursivalyut.kors.
| Este.
| Înregistrări. Cursament ca coerenaval
| Unde.
| Kursivalyut.valuta \u003d & valută »;

// Etapa 2. Setarea parametrilor
Anchetă . Parametrul de instalare ("valută", selectat);

// Etapa 3. Efectuarea unei solicitări și primirea de eșantionare
Rezultat reprove \u003d cerere. A executa ();
Probă \u003d Înregistrarea rezultatelor. Alege();

// eșantion bypass.
Pana cand Eșantionare. Următorul () Ciclu
Raport (eșantion. Curce);
Endcycle;

Compoziția textului interogării

Textul interogării este alcătuit din mai multe secțiuni:

  1. Descrierea cererii - lista câmpurilor selectate și a surselor de date;
  2. Combinarea cererilor - expresii "îmbinați" și "combinați totul";
  3. Comandarea rezultatelor - expresia "Streamline prin ...";
  4. Auto-comandă - expresie "comandă automată";
  5. Descrierea finală - expresie "rezultate ... de ...".

Numai prima secțiune este obligatorie.

Tabele temporare și cererile de loturi

Limba de interogare 1C suportă utilizarea tabele temporare - tabele obținute ca urmare a executării cererii și păstrată temporar.

Puteți întâmpina adesea o situație în care trebuie să utilizați tabelul bazei de date ca o sursă de interogare, dar rezultatul executării unei alte interogări. Această sarcină poate fi rezolvată utilizând interogări imbricate sau tabele temporare. Utilizarea tabelelor temporare vă permite să simplificați textul unei interogări complexe, despărțirea acesteia în părți, precum și, în unele cazuri, accelerează execuția interogării și a reduce numărul de încuietori. Un obiect este folosit pentru a lucra cu mese temporare. Distribuția managerului. Crearea unui tabel temporar se efectuează utilizând un cuvânt cheie pentru a loc, urmat de numele tabelului de timp.

Manager \u003d Noua bază de date managerială;
Solicitare \u003d cerere nouă;
Anchetă . Cărți de manager \u003d gestionate;

Anchetă . Text =
"ALEGE
| Valută. Cod,
| Valute. Nume
| Așezați satul
| Este.
| Director. Depozite ca monede »;

Rezultat reprove \u003d cerere. A executa();

Pentru a utiliza tabelul temporar, în alte solicitări, trebuie să atribuiți un manager de masă temporar comun la aceste solicitări.

Solicitarea lotului - Aceasta este o cerere care conține mai multe solicitări separate de simbolul ";". La executarea unei interogări în lot, toate solicitările incluse în acesta sunt efectuate secvențial, iar rezultatele tuturor tabelelor temporare sunt disponibile pentru toate cererile ulterioare. Atribuirea explicită a managerului de masă temporară la cererile de pachete nu este necesară. Dacă nu este atribuit managerul de tabel temporar, atunci toate tabelele temporare vor fi șterse imediat după executarea interogării.

Pentru solicitările de pachete, metoda de performanță este disponibilă (), care efectuează toate solicitările și returnează o serie de rezultate. Tabelele temporare într-o solicitare lot vor fi prezentate cu un tabel cu un singur șir și o coloană "cantitate" în care este stocat numărul de înregistrări. Puteți utiliza metoda de depanare a solicitărilor lotului. Performanță permanentă(): Returnează conținutul real al tabelelor temporare și nu numărul de înregistrări.

// eșantion de lucru cu o solicitare lot
Solicitare \u003d cerere nouă;
Anchetă . Text =
"ALEGE
| Valute. Nume
| Este.
| Manual. Depozite ca monedă
|;
| Selectați
| Nomenclatură. Nume
| Este.
| Director. Namerenclatură ca nomenclatură ";

Listing \u003d Cerere. Performanță ();

Tzvalyuti. \u003d Listarea [0]. Descărcare ();
Tznenclatură \u003d rezultând [1]. Descărcare ();

// Exemplu de utilizare a tabelelor temporare într-o cerere de lot
Solicitare \u003d cerere nouă;
Anchetă . Text =
"ALEGE
| Bunuri. Link ca marfă
| Puneți Twiowers
| Este.
| Director. Namerenclatură ca bunuri
| Unde.
| Bunuri. Producător \u003d & producător
|;
| Selectați
| Ttovars.vovar,
| Profesionalitate,
| PTU.zena,
| PTU.Link ca încărcătură utilă a documentului
| Este.
| Vtovars ca Vttovary
| Documentul compus stâng. Nu este disponibil
| Vtovarsa.thovar \u003d vtu.Nenklatura »
;

Anchetă . Parametru de instalare ( "Producător", Producător);

Rezultat reprove \u003d cerere. A executa ();
Probă \u003d Înregistrarea rezultatelor. Alege();

Pana cand Eșantionare. Următorul () Ciclu

Endcycle;

Tabele virtuale

Tabele virtuale - Acestea sunt tabele care nu sunt stocate în baza de date și formează o platformă. În esență, acestea sunt solicitate de investiții la una sau mai multe mese fizice efectuate de platformă. Tabelele virtuale primesc informații numai de la registre și, în principal, destinate rezolvării sarcinilor foarte specializate.

Există următoarele tabele virtuale (parametrii posibili sunt indicați în paranteze):

  • Pentru registrele de informații:
    • Felii (<Период>, <Условие>) - cele mai vechi înregistrări pentru data specificată;
    • Tăiat (<Период>, <Условие>) - cele mai recente înregistrări pentru data specificată;
  • Pentru registrele de acumulare:
    • Reziduuri (<Период>, <Условие>) - reziduuri la data specificată;
    • Se transformă (<НачалоПериода>, <КонецПериода>, <Периодичность>, <Условие>) - tranzacții de perioada;
    • Rămas (<НачалоПериода>, <КонецПериода>, <Периодичность>, <МетодДополненияПериодов>, <Условие>) - resturi și cifra de afaceri pentru perioada;
  • Pentru registrele contabile:
    • Reziduuri (<Период>, <УсловиеСчета>, <Субконто>, <Условие>) - resturi la data specificată în contextul conturilor, măsurătorilor și subcontoului;
    • Se transformă (<НачалоПериода>, <КонецПериода>, <Периодичность>, <УсловиеСчета>, <Субконто>, <Условие>, <УсловиеКорСчета>, <КорСубконто>) - se transformă în perioada în contextul conturilor, măsurătorilor, COR. Conturi, subconto, Cor. subconto;
    • Resideborotov (<НачалоПериода>, <КонецПериода>, <Периодичность>, <МетодДополненияПериодов>, <УсловиеСчета>, <Субконто>, <Условие>) - rămășițele și revoluțiile în contextul conturilor, măsurătorilor și subcontoului;
    • Repatiplect (<НачалоПериода>, <КонецПериода>, <Периодичность>, <УсловиеСчетаДт>, <СубконтоДт>, <УсловиеСчетаКт>, <СубконтоКт>, <Условие>) - cifra de afaceri pentru perioada din secțiunea Contul de contul DT, CT, subconto dt, subconto ct;
    • Moopsubkonto (<НачалоПериода>, <КонецПериода>, <Условие>, <Порядок>, <Первые>) - mișcări împreună cu valorile subconto;
  • Pentru registrele de calcul:
    • Baza(<ИзмеренияОсновногоРегистра>, <ИзмеренияБазовогоРегистра>, <Разрезы>, <Условие>) - date de registru de bază;
    • Date date (<Условие>) - datele de programare;
    • Vizualizare reală (<Условие>) - Perioada reală de acțiune.

Când lucrați cu tabele virtuale, selectați selecția din parametrii tabelelor virtuale și nu în starea unde. Acest lucru este extrem de dependent de timpul de execuție al interogării.

Solicitați designerul

Pentru a accelera intrarea textelor de interogare, platforma are instrumente speciale: Solicitați designerul și Designerul interogării cu prelucrarea rezultatului. Pentru a apela designerii, trebuie să faceți clic dreapta și să selectați elementul dorit:

De asemenea, designerii pot fi chemați din meniul principal. Text.

Folosind designerul de interogare, programatorul poate construi interactiv textul interogării. Pentru aceasta, mouse-ul este selectat de mesele și câmpurile dorite, conexiunile, grupările, rezultatele etc. Această abordare economisește timp și scapă de posibile erori. Ca urmare a lucrării sale, designerul de interogare generează textul interogării.

Un designer de prelucrare a interogării cu o prelucrare a rezultatelor, în plus față de formarea textului interogării, creează un fragment de cod gata pentru a obține și procesa date.

Recrutarea schemei de obiect

Platforma vă permite să creați și să editați programul de interogare folosind un obiect. Schemescrew.. Obiectul are o singură proprietate. Pacheteîn care obiectul este stocat pentru proprietățile tuturor cererilor editate în acest moment. Obiectul schemei este susținut de următoarele metode:

  • Setați setproof (< Текст>) - completează proprietatea înregistrărilor pachetului pe baza textului de solicitare transmis;
  • Obțineți setul() - returnează textul interogării formate pe baza înregistrărilor pachetului;
  • Findarameters () - returnează parametrii solicitării.

Luați în considerare un exemplu de lucru cu schema de obiect. Pentru formarea software-ului textului interogării

FILTREAZĂ DUPĂ
Valută. Cod.

Codul din limba încorporată poate arăta astfel:

Schema Record \u003d recrutarea de noi scheme;
Pachetul1. \u003d Înregistrarea schemei. Înregistrări de pachete [0];
Operator1. \u003d Pachet1. Operatori [0];
// adăugarea unei surse
Înregistrarea tabelului \u003d operator1. Surse. Adăuga ( "Manual.Valuta", "Valute");
// adăugarea de câmpuri
Monstru \u003d Operator1. Selecționate. Adăugați ("valute. Link", 0);
Bucată \u003d Operator1. Selecționate. Adăugați ("valută. Cod", 1);
// Indicarea pseudonimelor câmpurilor
Pachetul1. . Coloane [0]. Pseudonim \u003d "valută";
Pachetul1. . Coloane [1]. Pseudonym \u003d "cod";
// adăugarea de condiții
Operator1. . Selecţie. Adăuga ( "Nu este o pereche");
// Adăugarea comenzii
Pachetul1. . Ordin. Adăugați (geek);
Text Quirk \u003d recrutarea schemei. Obțineți setul();