ACS i vanjski izvori podataka. Skup podataka je objekt. Skd vanjski izvor podataka, učitati iz TK i zatim dobiti stanja za svaki dokument Naziv objekta koji sadrži podatke skd

Ponekad se dogodi da podatke u izvješću nije moguće dobiti upitom ili kombinacijom 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 sastava podataka? Uostalom, SKD alat je moćan i praktičan. Ispostavilo se da je moguće koristiti podatke iz tablice vrijednosti kao izvor podataka za izvješće u ACS-u i to uopće nije teško učiniti. Ovaj će članak pokazati kako izraditi takvo izvješće za obične obrasce.
Dakle, kako izraditi SKD izvješće koristeći podatke iz tablice vrijednosti? O svemu redom.
Najprije otvorite konfigurator i kreirajte novo vanjsko izvješće.

Otvorite objektni modul i izradite unaprijed definiranu proceduru OnResultComposition(ResultDocument, DecryptionData, StandardProcessing)

Unutar ovog postupka prikupit ćemo podatke i generirati izvješće.
U proceduri WhenComposingResult 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 sheme dobivamo zadane postavke.

  • Šaljemo podatke za dešifriranje u odgovarajuću varijablu.

  • Izgled oblikujemo pomoću alata za izradu izgleda.

  • Šaljemo shemu, postavke i podatke za dešifriranje u izgled izgleda.

  • Povezivanje vršimo pomoću link 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, ključ strukture mora odgovarati nazivu objekta u shemi sastava podataka, vrijednost je generirana tablica vrijednosti), podatke za dešifriranje.

  • Čistimo polje dokumenta proračunske tablice.

  • Rezultat prikazujemo u proračunskoj tablici.
Rezultat je sljedeći kod:
DataCompositionSchema = GetLayout( "Shema rasporeda osnovnih podataka"); //Postavke = Shemakompozicije podataka.DefaultSettings; // - Ako učinite kao što je gore prikazano (preporučeno na nekim resursima), onda kada mijenjate postavke u načinu klijenta // nećete vidjeti te promjene, jer će postavke uvijek biti zadane. Kako to učiniti ispravno - u nastavku Postavke = Skladatelj postavki. GetSettings(); DecryptData = New DataCompositionDecryptData; Layout Layout Builder = Novi Izgled podataka Layout Layout Builder; LayoutLayout = LayoutComposer. Izvrši (Shema sastavljanja podataka, postavke, podaci za dešifriranje); ExternalDataSet = Nova struktura( "Primjer tablice vrijednosti", TZZaključak); DataCompositionProcessor = Novi DataCompositionProcessor; DataCompositionProcessor. Inicijaliziraj(LayoutLayout, ExternalDataSet, DecodeData); DokumentRezultat. čisto(); OutputProcessor = Novi izlazni procesorofDataCompositionResultIntoSpreadsheetDocument; Izlazni procesor. PostaviDokument(DokumentRezultat); Izlazni procesor. Izlaz (Procesor za sastavljanje podataka); Dodaj izgled izgleda izgleda. Možemo ostaviti naziv kao zadani.

Mi stvaramo skup podataka. Da bismo to učinili, dodajemo novi skup podataka tipa Objekt. U polje Name objekta koji sadrži podatke postavljamo ime koje smo naveli kao ključ prilikom kreiranja strukture ExternalDataSet. Zatim dodajemo polja. Nazivi moraju točno odgovarati nazivima stupaca u tablici vrijednosti. Zatim možemo navesti važeće vrijednosti, formate itd.

Dodajte resurse ako je potrebno. Oni će brojati rezultate. U našem slučaju to su polja Količina i Količina.

U kartici Postavke pomoću konstruktora postavki formiramo zadanu verziju izvješća

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


To je sve. Dovoljno jednostavno, zar ne?

Rezultirajuće izvješće za primjer može se preuzeti

Ponekad je za dobivanje određenog rezultata asemblera potrebno kreirati veze skupova podataka u ACS-u. O tome kada je to potrebno i kako to učiniti, pokušat ćemo reći u našem članku.

Shema sastava podataka implementirana u 1C podržava tri vrste izvora podataka (Sl. 1)

Izvori podataka

Najočitiji i najčešće korišten izvor podataka od strane programera je zahtjev.

Alat za izradu upita implementiran u verziji 8 od 1C vrlo je zgodan i u većini slučajeva možete povezati nekoliko tablica zajedno, napraviti potrebna grupiranja i odabire izravno u njemu.

U složenim slučajevima, kada je potrebno ili prikladnije koristiti izvršavanje nekog koda (na primjer, učitavanje podataka iz datoteke treće strane) ili kada nije moguće koristiti upit, izvor podataka “Object” dolazi do spašavanje. Proizvoljni kod koji se izvodi u modulu mora imati neku strukturu na izlazu, kojoj ACS može pristupiti.

Treći izvor podataka je "Kombinacija". Zapravo, ovaj izvor se može smatrati jednom od vrsta komunikacije. Kombinira (svodi nekoliko tablica u jednu), međutim, bez usporedbe slučajnosti pojedinih polja. To jest, ako dvije tablice koje se spajaju imaju 3 odnosno 4 retka, tada će rezultirajući izvor podataka imati 7 redaka.

Formulacija problema

Kao poligon za testiranje odabrat ćemo SCP bazu, verzija 1.3.92.3, koja radi u normalnom modu aplikacije.

Susrećemo se sa sljedećim zadatkom: samo pomoću ACS-a izraditi izvješće koje bi prikazivalo tablicu kupljenih artikala iz dokumenta, s cijenama preuzetim iz datoteke koju je poslala druga ugovorna strana.

Dakle, moramo:

  1. Uzmite tabularni dio dokumenta o primitku;
  2. Učitajte datoteku u izvor podataka "Objekt";
  3. Povežite ova dva izvora određenim parametrom (u našem slučaju to će biti kod);
  4. Ispišite dobivenu tablicu.

Proces izvršenja

Prođimo kroz sve gore navedene korake:

  • Izrađujemo zahtjev za tabelarnim dijelom dokumenta o primitku (slika 2)

sl.2

  • Stvorite objekt skupa podataka (Sl.3);

sl.3

Ovdje je važno obratiti pozornost na "Ime objekta koji sadrži podatke", to je ime koje ćemo morati navesti u kodu modula izvješća.

  • Idite na modul izvješća i tamo kreirajte proceduru “O sastavu rezultata” (slika 4);


sl.4

Nećemo opisivati ​​postupak dobivanja podataka iz vanjske datoteke, obratit ćemo pozornost na dio koda koji mora biti prisutan u izgledu kako bismo mogli primiti podatke za “Skup podataka 2” (Sl. 5).

sl.5

Važno! Prilikom stvaranja "Objekta" u kodu procedure prilikom povezivanja, vrijednost parametra StandardProcessing mora biti False.

Idite na karticu Veze skupa podataka.

Povezivanje skupova

Idemo na odgovarajuću karticu sheme (slika 6).

Vidimo tablični odjeljak koji je vrlo sličan tabličnom odjeljku koji se nalazi u alatu za izradu upita, uz nekoliko iznimaka. Izvorni skup i odredišni skup veza ne mogu se postaviti na Sve, ali je dodano nekoliko dodatnih stupaca.

U odnosima skupova podataka možete uspostaviti samo odnos sličan vanjskom lijevom spoju alata za izradu upita.

Prije stvaranja veze, definirajmo svrhu stupaca:

  1. Izvor veze je prvi skup podataka iz kojeg će se uzeti sve dostupne vrijednosti;
  2. Komunikacijski prijamnik je skup podataka iz kojeg će se odabrati vrijednosti koje odgovaraju našem stanju;
  3. Izvorni izraz je polje ili izraz prvog skupa podataka s kojim se treba usporediti;
  4. Izraz primatelja je izraz polja ili zavisnog skupa;
  5. Parametar – ako navedete naziv parametra u ovom polju, tada će se komunikacija sa skupom prijemnika vršiti samo prema vrijednosti navedenoj u parametru;
  6. Popis parametara - određuje mogućnost korištenja popisa vrijednosti kao parametra;
  7. Uvjet veze - određivanjem izraza ovdje koristeći izvorna polja, možete stvoriti uvjet čije će ispunjenje poslužiti kao signal za uspostavljanje veze;
  8. Početna vrijednost - pokazuje početnu vrijednost odnosa;
  9. Obavezna veza - određuje jesu li uključena polja korištena u izvoru (postavljeno na FALSE) ili u cilju (postavljeno na TRUE) i na temelju toga dodaje vezu u izgled.

Tako:

  • Rezultat našeg zahtjeva djelovat će kao izvor veze;
  • Objekt će djelovati kao primatelj;
  • Izvorni izraz bit će "NomenclatureCode";
  • Izraz primatelja "Nomenklatura";
  • Komunikacija će biti obavezna (Slika 7).

Da smo kao uvjet komunikacije naveli naziv bilo koje nomenklature, ili njegovu vrstu reprodukcije, ili nešto drugo, mogli bismo dobiti točniji uzorak za našu zadaću. Rezultat našeg djelovanja može se vidjeti na sl. 8

sl.8

Nije bilo podudaranja za donja dva retka izvješća u datoteci s cijenama.

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 1s zahtjev, samo je jezik upita malo proširen. Radi praktičnosti, možete koristiti konstruktor upita.

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

Unija - unija nekoliko skupova podataka tipa upita i objekata.

U ovom ćemo članku ukratko pregledati 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: Zahtjev; Objekt; Udruga. Zahtjev je uobičajeni 1s zahtjev, samo je jezik upita malo proširen. Radi praktičnosti, možete koristiti konstruktor upita. Objekt je vanjski skup podataka, kao što je tablica vrijednosti. Unija - unija nekoliko skupova podataka tipa upita i objekata. Odnosi skupova podataka Ova kartica opisuje odnose 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 je da se u shemi sastava podataka, prilikom povezivanja skupova, uvijek koristi lijevo spajanje! Izračunata polja Na ovoj kartici možete kreirati dodatna polja koja nisu opisana na kartici Skupovi podataka. Izrazi za izračun uključuju jezik izraza za sastav podataka, polja iz osnovnih skupova podataka i neglobalne zajedničke funkcije modula. Resursi Resursi su zbirni podaci za grupiranje. Na kartici možete dodijeliti polja iz skupova podataka kao resurs, kao i iz izračunatih polja. Također, za resurse je naveden izraz po kojem se izračunavaju, a moguće je odrediti 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 skupu podataka upita. Svi parametri opisani u upitu pojavljuju se na kartici Parametri. Na ovoj kartici možete odrediti naslov, dostupne vrste, dostupnu vrijednost i još neke stvari. Više o opcijama kasnije. Izgledi Prema zadanim postavkama, sustav za sastavljanje podataka automatski generira izgled generiranog izvješća. Ali sustav također ima mogućnost da programer dizajnira pojedina 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 kada podatke iz jednog izvješća treba koristiti u drugom. Drugim riječima, "ugrađujemo" jednu shemu sastava podataka u drugu, označavajući odnos zajedničkim poljem. 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. Hijerarhijska struktura postavljena je u gornjem dijelu prozora. Struktura generiranja izvješća može se sastojati od sljedećih elemenata: Grupiranje; Stol; Dijagram; Ugniježđena shema 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 – različiti izbori zapisa izvješća; Redoslijed – sortiranje zapisa u izvješću; Parametri podataka – vrijednost parametara izvješća; Prilagođena polja - dodatna polja izvješća koje kreira korisnik; Uvjetno oblikovanje – postavlja se uvjetno oblikovanje zapisa izvješća; Ostale postavke - sve vrste dodatnih postavki kao što su: naslov izvješća, izgled dizajna, izgled polja itd....

41
Nedavno sam napravio izvješće s neodređenim brojem stupaca. Nisam bio voljan petljati se s kodom, odlučio sam to učiniti na ACS-u. Tu nije bilo problema, bilo je potrebno razvući rezultat na proizvoljan raspored (vlastiti naslov + ... 27
Iako učenici SKD-a naiđu na ovo prvi ili drugi dan, to bi trebalo biti u odjeljku FAQ. Jednostavan primjer programskog ispisa izvješća o izgledu pomoću zadanih postavki. //Dohvati shemu od... 18
Kod generiranja izvještaja na ACS-u standardno su sve grupacije proširene, ali se događa da je potrebno odmah nakon generiranja pokazati izvještaj sa sažetim grupama! Ovaj kod u modulu izvješća omogućuje vam sažimanje... 10
Na ovoj kartici možete odrediti kakve veze se prave između dva ili više skupova podataka, prema kojim parametrima i uvjetima..png 1. "Izvor veze" - naznačen je prvi skup podataka, od ... 9
Da se kod izrade izvješća zahtijeva da korisnik s ograničenim pravima generira izvješće potpuno bez provjere prava! Osobito ako je RLS konfiguriran. Postoji nekoliko načina za to: 1. Instalirajte...