Ce este batched interogări în sistemul 1C Enterprise 8

Cred că toți vor fi de acord că subiectul interogare în 1C: Enterprise 8 poate astăzi lăuda relevanței lor. Acesta este motivul pentru care articolul de astăzi noastre am decis să dedicăm un subiect legat de asociația de interogare, obtinerea mai târziu la data documentelor în interogare și conexiune cereri 1C. Să începem toate la fel.

Deci, pentru a crea în 1C: Enterprise cerere lot să utilizeze plasarea propusă. Cererea de lot medie, cu un multiplu de cereri imediat descrise ca fiind o mare cerere. Toate acestea sunt realizate în ordine una după alta. Utilizarea oricăreia dintre aceste cereri, acestea pot fi plasate în interiorul unui tabel temporar și apoi se aplică o folosind deja ceea ce cealaltă cerere. Probabil ca majoritatea dintre voi va întreba: Care sunt avantajele acestei metode?

Avem răspunsul la această întrebare. Personal, cred că cel mai mare avantaj al acestei metode este posibilitatea de a pune rezultatele în interiorul mesei temporare așa-numitele. În ea, acestea pot fi folosite de mai multe ori. Mai mult decât atât, face cu toate acestea, nu va trebui să efectueze în mod repetat aceeași interogarea secundară, tot ce va trebuie este doar pur și simplu selectați datele dintr-un tabel terminat. Unii dintre voi va întreba: dacă există în această tehnică, ceea ce este contra. Desigur, la fel ca în tot ceea ce în lumea noastră, există unele dezavantaje clare la această metodă.

Cel mai semnificativ este faptul că, în timpul utilizării, în tabele temporare de pachete de cereri, sistemul poate genera un tabel de baze de date foarte real. Poate că unii vor întreba: deci ce este atât de greșit? Pe de o parte este bine. Dar, pe de altă parte, veți petrece o mare parte din timpul lor pentru a crea interogări, și după ce le utilizați, va trebui să-și petreacă ceva timp dar și pentru a le elimina.

De exemplu:
ALEGE
Nomenclatura,
Suma (Times) AS Cantitate
Sumă (Sumă) AS Sumă
PUT DokPrihod
DE LA
Dokument.PostuplenieTovarovUslug.Tovary
Grupate de Nomenclatură

Ca rezultat, după ce executați această interogare va indica doar numărul de înregistrări care au fost plasate în tabel. Rezultatele vor fi depozitate în același tabel. Hai să facem o cerere similară pentru chitanțe de cheltuieli. Pentru a face acest lucru, avem nevoie pentru a separa aceste două interogări folosind simbolul „;“. Că el este capabil să spună utilizatorul care începe sfârșitul unei cereri de pachete, iar celălalt.

ALEGE
Nomenclatura,
Suma (Times) AS Cantitate
Sumă (Sumă) AS Sumă
PUT DokPrihod
DE LA
Dokument.PostuplenieTovarovUslug.Tovary
Grupate de Nomenclatură
;

ALEGE
Nomenclatura,
Suma (Times) AS Cantitate
Sumă (Sumă) AS Sumă
PUT DokRaskhod
DE LA
Dokument.RealizatsiyaTovarovUslug.Tovary
Grupate de Nomenclatură

;
ALEGE
*
DE LA
DokPrihod AS DokPrihod
CONEXIUNE COMPLETE
DokRaskhod AS DokRaskhod
software-ul
DokPrihod.Nomenklatura = DokRaskhod.Nomenklatura

Din aceasta putem vedea că a treia interogare combină date de la aceste două interogări.

Să încercăm acum să conducă o anchetă, chiar mai frumos vedere. Pentru a face acest lucru, interogarea va încerca să înțeleagă ce cantitate și cantitatea am avut un credit, precum și orice consumabile. Pentru a face acest lucru ar trebui să fie un pic pentru a schimba textul de-a treia solicitare.

ALEGE
DokPrihod.Nomenklatura,
DokRaskhod.Nomenklatura,
DokPrihod.Kolichestvo AS KolPrihod,
DokPrihod.Summa AS SumPrihod,
DokRaskhod.Kolichestvo AS KolRaskhod,
DokRaskhod.Summa AS SumRaskhod
DE LA
DokPrihod AS DokPrihod
CONEXIUNE COMPLETE
DokRaskhod AS DokRaskhod
software-ul
DokPrihod.Nomenklatura = DokRaskhod.Nomenklatura

Ca rezultat, vom obține date privind veniturile și cheltuielile. Dar încă mai avem probleme legate de modul în care a fost posibil să se combine două coloane, „Nomenclator“ și „Nomenklatura1“? În acest caz, dacă luăm valoarea coloanei „Range“ noi în cele din urmă nu a primit valoarea ultima linie, dar dacă luăm valoarea coloanei „Nomenklatura1“, atunci nu ajunge în cele din urmă valoarea celui de al treilea rând. Pentru a face acest lucru, vospolzovatsya funcție „ESTNULL“.
Ca urmare, cererea va avea următoarea formă:

ALEGE
ESTNULL (DokPrihod.Nomenklatura, DokRaskhod.Nomenklatura)
CUM Nomenclatură,
DokPrihod.Kolichestvo AS KolPrihod,
DokPrihod.Summa AS SumPrihod,
DokRaskhod.Kolichestvo AS KolRaskhod,
DokRaskhod.Summa AS SumRaskhod
DE LA
DokPrihod AS DokPrihod
CONEXIUNE COMPLETE
DokRaskhod AS DokRaskhod
software-ul
DokPrihod.Nomenklatura = DokRaskhod.Nomenklatura

În acest caz, poate fi o altă problemă cu modul în care ar putea fi înlocuit cu o valoare numerică pe zero? Pentru a face acest lucru, trebuie din nou să „ESTNULL“ funcția vospolzovatsya și scrie interogarea:

ALEGE
ESTNULL (DokPrihod.Nomenklatura, DokRaskhod.Nomenklatura)
CUM Nomenclatură,
ESTNULL (DokPrihod.Kolichestvo, 0) AS KolPrihod,
ESTNULL (DokPrihod.Summa, 0) AS SumPrihod,
ESTNULL (DokRaskhod.Kolichestvo, 0) AS KolRaskhod,
ESTNULL (DokRaskhod.Summa, 0) AS SumRaskhod
DE LA
DokPrihod AS DokPrihod
CONEXIUNE COMPLETE
DokRaskhod AS DokRaskhod
software-ul
DokPrihod.Nomenklatura = DokRaskhod.Nomenklatura