1s SKD prijenos tablice vrijednosti. Primjer korištenja vanjskog izvora podataka u sustavu za pohranu. Prvo ću opisati što želimo dobiti kao rezultat.

25.01.2021 Vijesti

Na ovoj kartici možete kreirati neograničen broj skupova podataka. Skup podataka je izvor podataka.

Postoji nekoliko vrsta skupova podataka:

  • Zahtjev;
  • Objekt;
  • Udruga.

Zahtjev je uobičajeni 1C zahtjev, samo je jezik zahtjeva malo proširen. Radi praktičnosti, možete koristiti konstruktor upita.

Objekt je vanjski skup podataka, kao što je tablica vrijednosti.

Unija – kombiniranje nekoliko skupova podataka tipa upita i objekata.

U ovom ćemo članku ukratko proći kroz sve kartice dizajnera sheme sastava podataka. Skupovi podataka Na ovoj kartici možete kreirati neograničen broj skupova podataka. Skup podataka je izvor podataka. Postoji nekoliko vrsta skupova podataka: Upit; Objekt; Udruga. Zahtjev je uobičajeni 1C zahtjev, samo je jezik zahtjeva malo proširen. Radi praktičnosti, možete koristiti konstruktor upita. Objekt je vanjski skup podataka, kao što je tablica vrijednosti. Unija – kombiniranje nekoliko skupova podataka tipa upita i objekata. Odnosi skupova podataka Ova kartica opisuje odnose između skupova podataka. Ovdje možete odrediti koje skupove podataka želite povezati te po kojim poljima i s kojim parametrima. Najvažnija stvar koju treba zapamtiti: u shemi sastavljanja podataka, kada povezujete skupove, uvijek koristite Lijevi priključak! Izračunata polja Na ovoj kartici možete kreirati dodatna polja koja nisu opisana na kartici Skupovi podataka. Kao izraze za izračune možete koristiti jezik izraza za sastav podataka, polja iz glavnih skupova podataka, kao i funkcije neglobalnih zajedničkih modula. Resursi Resursi su zbirni podaci za grupiranje. Na kartici možete dodijeliti polja iz skupova podataka kao i izračunata polja kao resurs. Također, za resurse je naznačen izraz po kojem se izračunavaju, a moguće je naznačiti grupiranje po kojem će se izraz za resurse izračunati. Na temelju vrijednosti resursa izračunavaju se i ukupni iznosi izvješća. Parametri Parametri podataka obično se koriste u upitu skupa podataka. Svi parametri opisani u zahtjevu pojavljuju se na kartici Opcije. Na ovoj kartici možete odrediti naslov, dostupne vrste, dostupne vrijednosti i neke druge stvari. Više detalja o parametrima malo kasnije. Izgledi Prema zadanim postavkama, sustav za sastavljanje podataka automatski generira izgled generiranog izvješća. Ali sustav također omogućuje programeru da dizajnira pojedinačna područja izvješća (polja, grupiranja, resursi...). Svi pojedinačni izgledi područja stvoreni na ovoj kartici povezani su samo s trenutnim izvješćem. Ugniježđene sheme Ugniježđene sheme koriste se u slučajevima kada podatke iz jednog izvješća treba koristiti u drugom. Drugim riječima, "ugrađujemo" jednu shemu rasporeda podataka u drugu, označavajući vezu preko zajedničkog polja. Primjer korištenja ugniježđenih shema može se pronaći u ovom članku. Postavke Na ovoj kartici programer stvara standardne postavke za generiranje izvješća. Na vrhu prozora navedeno je hijerarhijska struktura. Struktura generiranja izvješća može se sastojati od sljedećih elemenata: Grupiranje; Stol; Dijagram; Ugniježđeni dijagram U donjem dijelu prozora navedene su postavke za cijeli izvještaj i za svaki element strukture izvještaja. Ukratko u karticama postavki: Odabrana polja – popis polja prikazanih u izvješću; Odabir – svi mogući odabiri zapisa izvješća; Redoslijed – sortiranje zapisa u izvješću; Parametri podataka – vrijednost parametara izvješća; Prilagodljiva Polja– dodatna polja izvješća koje kreira korisnik; Uvjetno oblikovanje – postavlja uvjetno oblikovanje zapisa izvješća; Ostale postavke - sve vrste dodatne postavke kao što su: naslov izvješća, izgled dizajna, izgled polja, itd....

Zdravo!
Danas želim opisati temu koju ne možete razumjeti bez ronilačke opreme :) ;)

Ronjenje znači da je ronjenje prilično duboko. Malo je referenci na ovu temu u literaturi i nećete je razumjeti dok ne dobijete želju. Neće biti ni poruke za takvu akciju ;) Usput, dokumentacija o tome govori vrlo loše i nedosljedno, morate se obratiti literaturi trećih strana.

Na primjer, toplo preporučujem "Razvoj složenih izvješća u 1C:Enterprise 8.2". Sustav sastavljanja podataka", (konkretnije, pogledajte stranice 224, 267 i 473)

U ACS-u postoje 2 vrste izvora podataka: Upit, objekt i unija (ovo se ne računa, nije izvor podataka, već procesor postojećih podataka). Pogledajte sliku 1:


Dakle, ako manje-više razumijemo kako raditi s izvorom (skupom) podataka tipa "Upit", onda postoje poteškoće sa skupom podataka "Objekt".

Prvo ću opisati što želimo dobiti kao rezultat:

Prijavi, korisnik je kliknuo " Oblik» i prikazao se popis stavki (vidi sl. 2):

Da, napravio sam jednu netočnost, naime: nema gumba " Oblik", ali postoji gumb " nova akcija"(Malo kasnije ću objasniti zašto se to dogodilo;)

Da da! Još jedna točka: cijeli ovaj popis izveden je iz skupa podataka "Objekt":

Riješenje:

  1. Napravite vanjsko izvješće;
  2. Dodajte raspored ACS-a, nazovimo ga “Glavna shema izgleda podataka”;
  3. Dodamo mu skup podataka "Objekt", dodijelimo mu naziv "Popis nomenklature" (trebao bi biti isti kao na slici 3);
  4. Ne eksperimentiramo previše s postavkama izvješća, neka sve bude jednostavno (vidi sliku 4)

Ok, pola posla obavljeno ;)

Generirajmo sada glavni obrazac izvješća (da, još jedna stvar! Moja konfiguracija radi na normalnom sučelju, ali mislim kontrolirani oblici naći ćeš rješenje ;) Dakle obrazac je:

Tu nastaje problem! Ako kliknemo na gumb “generiraj” (slika 5.), vidjet ćemo grešku!


Ovaj sam članak posvetio rješavanju ovog problema!

Nije bilo moguće presresti događaj gumba "Generiraj", pa sam odlučio upotrijebiti štaku. Pokrenuo sam konfiguraciju u načinu za otklanjanje pogrešaka i pokušao pronaći gumb "generiraj".

Ubacio sam proceduru “Generiraj” u formu, ali u njoj nema unosa, morao sam redefinirati radnju gumba “forma” prije otvaranja forme:


Na sl. Osim promjene djelovanja obrasca, slika 8 prikazuje primjer zahtjeva, njegovu obradu i prijenos generiranih podataka u sustav kontrole pristupa. Proučimo ga pažljivije:

  1. Generiramo ulazne podatke za sustav kontrole pristupa;
  2. Inicijaliziramo sustav kontrole pristupa;
  3. Rezultat prikazujemo NA OBRASCU (obratite pozornost i na ovo!).

Prisjetimo se dijagrama interakcije objekata sustava sastava podataka:

Shema rasporeda podataka u vanjskom izvješću dostupna je kao globalni objekt u metodi obrasca Shema sastavljanja podataka. Također mu možete pristupiti imenom tako da ga proslijedite metodi GetLayout(vidi sliku 8)

Glavni dio koda je ispod:

Zahtjev = Novi zahtjev; Query.Text = "SELECT | Nomenclature.Name as Nomenclature |FROM | Directory.Nomenclature AS Nomenclature"; NomenclatureList = Request.Run().Upload(); Skupovi podataka = Nova struktura ("Popis nomenklature", Popis nomenklature); //SKD = ​​​​GetLayout("MainData LayoutScheme"); SKD = ​​​​Shema sastavljanja podataka; LayoutComp = novi DataLayoutComposer; layoutComp = LayoutComp.Execute(SKD, SKD.DefaultSettings); CompDataProcessor = novi DataCompositionProcessor; ProcessorCompData.Initialize(layoutComp, DataSets); output = new DataCompositionResultOutputProcessorInTabularDocument; output.SetDocument(FormElements.Result); output.Output(ProcessorCompData, true);

Da! Evo još jednog lijepog trenutka!!!

U u ovom primjeru, kao što vidite (vidi sl. 2), izlaz se izvodi u obrascu, a ne u tablici. dokument! I to je jako dobro, jer možemo raditi s formom (programski presresti događaje elementa forme, izvoditi razne trikove s povlačenjem i ispuštanjem itd.;)

U tabličnom dokumentu možemo jednostavno prikazati obrađene podatke na ekranu i prenijeti kontrolu nad dokumentom na korisnika te ni na koji način ne možemo utjecati na daljnji proces uređivanja ovog sadržaja!

Vidi u sustav pomoći « Polje dokument proračunske tablice “, a ja ću samo dati izvadak iz ugrađene dokumentacije sustava 1c Enterprise 8.2:

“Polje dokumenta proračunske tablice je dokument proračunske tablice postavljen na obrazac. Zajedno s različitim mogućnostima dizajna dokumenta proračunske tablice, to vam omogućuje organiziranje obrade događaja koji se događaju prilikom odabira ćelija, slika, kao i drugih kontrola postavljenih u polje dokumenta proračunske tablice.”

U redu, kako kažu, sretno u borbi;)

Pažnja! Ovo je uvodna verzija lekcije, čiji materijali mogu biti nepotpuni.

Prijavite se na stranicu kao student

Prijavite se kao student za pristup školskim materijalima

Sustav za sastavljanje podataka 1C 8.3 za početnike: prikaz izvješća u obliku dijagrama

Danas ćemo nadopuniti izvješće iz prošle lekcije (točnije njegovu kopiju) mogućnošću prikaza istih podataka u obliku grafikona.

Postavljanje cilja

  • Napravite kopiju izvješća s prošle lekcije.
  • Prikažite iste podatke u obliku grafikona.
  • U ovom slučaju serije (kolone, Y os) trebaju biti proizvodi, a točke (X os) trebaju biti kupci. Vrijednosti stupca (duž Y osi) bit će količina hrane koju je klijent naručio.

Promjena kopije prethodnog izvješća

Izrađujemo kopiju izvješća sa zadnje lekcije pod nazivom “Lekcija 9” i tu kopiju otvaramo u konfiguratoru baze podataka “Gastronom”.

Promijenite naziv izvješća u "Lekcija 9" i kliknite gumb "Otvori dijagram izgleda podataka":

Skupove podataka nećemo mijenjati – naš je zadatak promijeniti njihovu prezentaciju za korisnika.

Stoga odmah idemo na karticu "Postavke" i usmjeravamo pozornost na lijevi stupac s opcijama izvješća.

Nismo prije radili s ovom kolonom, ali danas ću vam reći što ona znači.

Sve postavke koje napravimo na ovoj kartici (pomoću dizajnera čarobnog štapića ili ručno na dnu) odnose se na jednu od opcija izvješća koja je istaknuta na lijevoj strani prozora.

Prema zadanim postavkama, ova je opcija uvijek jedna i zove se "Glavna". Trik je u tome što se u korisničkom načinu rada možete jednostavno prebacivati ​​između ovih opcija.

A sada imamo glavnu opciju u čijim postavkama je naznačeno da se podaci prikazuju u obliku tablice:

Preimenujmo ovu opciju ovako ( dvostruki klik) i glavni u "Tablici":

Dodavanje nove opcije izvješća

Sada ćemo pomoću znaka plus dodati još jednu opciju (gdje ćemo staviti postavku za prikaz podataka u obliku grafikona):

Odmah nazovimo ovu opciju "Dijagram":

Postavljanje nove verzije izvješća

Kao što vidite, desno od ove opcije (označili smo je) je prazno, odnosno nema postavki. Kreirajmo ih pomoću našeg čarobnog štapića:

Ovaj put ćemo odabrati vrstu izvješća "Dijagram...":

Odaberite “Količina” kao polja za prikaz (po analogiji s tablicom):

Kao niz (Y os) označavamo polje "Hrana", a kao točke (X os) - polje "Kupci":

Ispalo je ovako:

Spremimo naše izvješće u konfigurator i pokrenimo ga u korisničkom načinu rada:

Vidimo stol... što je to?! Ali poanta je u tome da samo trebate odabrati drugu opciju izvješća. Kliknite na gumb "Odaberi opciju..." i odaberite opciju "Dijagram":

Dijagram je spreman

Kreirajmo ponovno izvješće:

Super, kakva ljepota

Obrada reference, nakon dovršetka svih koraka u ovom vodiču

Na kraju modula

Ovo zaključuje našu raspravu o osnovama sustava za sastavljanje podataka. Pokušao sam ispričati i objasniti jednostavni primjeri temeljna načela potrebna početnicima za rad sa sustavima kontrole pristupa.

Ako u vašoj budućnosti ( Savjetujem vam da to učinite nakon završetka škole) bit će potrebno dublje proučavanje sustava sastavljanja podataka - postoji prekrasna knjiga E. Yu. Khrustaleva "Razvoj složenih izvješća u 1C: Enterprise 8".

U ovom modulu stekli ste dovoljno znanja i praktičnih vještina da počnete čitati ozbiljniju literaturu na ovu temu.

Obavili smo odličan posao, vrijeme je za opuštanje!

Korištenje 1C sustavi za sastavljanje podataka nemoguće bez skupovi podataka. Može ih biti nekoliko u jednoj shemi rasporeda podataka. I oni mogu međusobno komunicirati na određeni način. Ili bolje rečeno ili ili ujediniti. U ovom članku ćemo pogledati spajanje skupova podataka. Kombiniranje skupova podataka u sustavu kontrole pristupa je slično.

Za kombiniranje dva ili više skupova podataka u sustavu kontrole pristupa potrebno je otići na karticu Skupovi podataka prethodno izraditi poseban skup podataka – uniju


Dobili smo ovu sliku


I ovom stvorenom objektu dodajemo setove koji će se izravno kombinirati. Dodajmo dva skupa podataka. Jedan će biti zahtjev, a drugi će, radi raznolikosti, biti objekt (vanjski izvor podataka). Kao ovo:


Kao primjer, razmotrite kombiniranje skupova podataka sa bilancama proizvoda.

U set koji ćemo koristiti ručno dodajemo polja Proizvod, količina i unesite naziv objekta koji sadrži podatke


Za skup podataka u kojem se koristi upit, podatke ćemo dobiti koristeći ostatke iz sljedećeg registra akumulacije:


Postavimo jednostavan zahtjev

SELECT Remaining Products.Product.View AS Product, Remaining Products.QuantityRemaining AS Remaining (SELECT Product, Remaining) FROM RegisterAccumulation.ProductsRemaining.Remaining AS Remaining Products

Da bismo se riješili skladišta, morali smo koristiti sastav podataka u zahtjevu (sve što je u vitičaste zagrade) i onemogućite oznaku za automatsko dovršavanje na dnu. Također, kao proizvod nije uzet element imenika, već njegova reprezentacija, tako da je tip bio isti kao u skupu s vanjskim izvorom podataka. Da bi podaci iz različitih skupova mogli pasti u jedno polje, moraju imati isto ime u polju Staza. Stoga za polje Ostaci hrane put je ručno ispravljen na Količina kako biste ga sinkronizirali s drugim skupom podataka. Zapravo, bolje je, naravno, koristiti željeni alias odmah u zahtjevu. U ovom slučaju to namjerno nisam učinio kako bih usmjerio pozornost na takvu značajku.

Sada pogledajmo izravno podatke.
U akumulacijskom registru imam pohranjena sljedeća stanja robe:

au vanjskom izvoru podataka ovo je slika

Konfigurirajmo shemu izgleda na najprimitivniji način.
Polje Količina Naravno, učinit ćemo to resursom, a na kartici postavki jednostavno ćemo ga dodati u strukturu Detaljni unosi. I naravno, ne zaboravimo staviti Proizvod I Količina na odabrana polja. A za potpunu sreću složit ćemo po proizvodima.


Kao rezultat pokretanja izvješća s ovim ACS postavkama dobivamo sljedeću tablicu

Kao što vidite, lampa, koja se nalazi u oba skupa podataka, predstavljena je u rezultatu upita s dva retka. Da biste ih saželi u jedan redak, morate malo izmijeniti strukturu ACS postavke a umjesto detaljnih zapisa, grupiranje po polju Proizvod.


I sada dobivamo rezultat bez duplih linija.

Ponekad se dogodi da podatke u izvješću nije moguće dobiti pomoću upita ili kombinacije upita. Za prikupljanje podataka morate koristiti neke postupke, a podaci se stavljaju u tablicu vrijednosti. Postavlja se pitanje - mogu li se ti podaci koristiti u shemi sastavljanja podataka? Uostalom, SKD alat je moćan i praktičan. Pokazalo se da je podatke iz tablice vrijednosti moguće koristiti kao izvor podataka za izvješće u sustavu kontrole pristupa i to nije nimalo teško napraviti. Ovaj će vam članak pokazati kako izraditi takvo izvješće za obične obrasce.
Dakle, kako izraditi ACS izvješće koristeći podatke iz tablice vrijednosti? Prvo najprije.
Najprije otvorite konfigurator i kreirajte novo vanjsko izvješće.

Otvorite objektni modul i izradite unaprijed definiranu proceduru prilikom sastavljanja rezultata (DocumentResult, Decryption Data, StandardProcessing)

Unutar ovog postupka prikupit ćemo podatke i generirati izvješće.
U postupku Prilikom sastavljanja rezultata onemogućujemo standardnu ​​obradu. Standardna obrada = False;
Zatim formiramo tablicu vrijednosti na proizvoljan način. Nazivi stupaca tablice vrijednosti moraju odgovarati budućim poljima skupa podataka u ACS-u:


Na primjer, dodajmo tri retka podataka. Zatim korak po korak stvaramo izlaz izvješća.

  • Iz dijagrama dobivamo zadane postavke.

  • Šaljemo podatke za dešifriranje odgovarajućoj varijabli.

  • Izgled stvaramo pomoću alata za izradu izgleda.

  • Dijagram, postavke i podatke o dekodiranju prenosimo u izgled izgleda.

  • Izgled izvodimo pomoću layout procesora. Da biste to učinili, izvršite metodu Initialize() procesora za komponiranje podataka. Kao parametre prosljeđujemo raspored sastava podataka, vanjske skupove podataka (tip: Struktura, strukturni ključ mora odgovarati nazivu objekta u shemi sastava podataka, vrijednost je generirana tablica vrijednosti), podatke za dešifriranje.

  • Očistite polje dokumenta proračunske tablice.

  • Rezultat prikazujemo u dokumentu proračunske tablice.
Rezultat je sljedeći kod:
DataLayoutSchema = GetLayout( "MainDataCompositionSchema"); //Postavke = Shemakompozicije podataka.DefaultSettings; // - Ako to učinite kao što je gore prikazano (preporučeno na nekim resursima), tada kada promijenite postavke u načinu klijenta // nećete vidjeti te promjene, jer će postavke uvijek biti zadane. Kako to učiniti ispravno - opcija u nastavku Postavke = Sastavljač postavki. GetSettings(); DecryptionData = newDataCompositionDecryptionData; LayoutLinker = newDataLayoutLayoutLinker; LayoutLayout = LayoutLocker. Izvrši (Shema sastavljanja podataka, postavke, podaci za dešifriranje); ExternalDataSet = Nova struktura( "Primjer tablice vrijednosti", TZOizlaz); DataCompositionProcessor = noviDataCompositionProcessor; DataCompositionProcessor. Initialize(LayoutLayout, ExternalDataSet, DecryptionData); DokumentRezultat. Čisto(); IzlazniProcesor = Novi IzlazniProcesorDataCompositionResultInTabularDocument; Izlazni procesor. PostaviDokument(DokumentRezultat); Izlazni procesor. Izlaz (Procesor za sastavljanje podataka); Dodavanje rasporeda dijagrama izgleda. Možemo ostaviti naziv kao zadani.

Stvaramo skup podataka. Da biste to učinili, dodajte novi skup podataka tipa Objekt. U polje Name objekta koji sadrži podatke postavljamo ime koje smo naveli kao ključ prilikom kreiranja strukture External DataSet. Zatim dodajemo polja. Nazivi moraju točno odgovarati nazivima stupaca u tablici vrijednosti. Zatim možemo odrediti prihvatljive vrijednosti, formate itd.

Dodajte resurse ako je potrebno. Na temelju njih će se izračunati rezultati. U našem slučaju to su polja Količina i Količina.

Na kartici Postavke pomoću dizajnera postavki stvaramo zadanu opciju izvješća

Spremamo naše izvješće. Pokrećemo ga u klijentu i kreiramo ga. Primjer pokretanja ACS izvješća korištenjem podataka iz tablice vrijednosti prikazan je na slici.


To je sve. Dovoljno jednostavno, zar ne?

Dobiveni primjer izvješća može se preuzeti