Jednostavna uputa - kako prikazati slike u izvješćima na ACS-u. komentari na "Korištenje ACS-a za ispis dokumenata"

Stvorimo vanjsko izvješće koje će prikazivati ​​izvještajne informacije o stanju dionica i njegovom prometu. Potrebne informacije zahtijeva zahtjev pomoću skupa podataka tipa "Zahtjev", koji sadrži tekst zahtjeva:
ODABERITE
_DemoNomenklatura.Ref AS Nomenklatura
MJESTO StvarnaNomenklatura
OD
Imenik._DemoNomenklatura KAKO _DemoNomenklatura
GDJE
NE _DemoNomenklatura.Ukloni oznaku
A NE _DemoNomenklatura.Ovo je Grupa
;

////////////////////////////////////////////////////////////////////////////////
ODABERITE
ActualNomenclature.Nomenclature,
_DemoRemains of GoodsInStoragePlacesRemains and Promet.Storage,
_DemoGoodsBalancesInStoragePlacesBalancesAndTornover.QuantityBeginning Balance,
_DemoGoodsBalancesInStoragePlacesBalancesAndTornover.QuantityFinal Balance,
_DemoRemains of GoodsInStoragePlacesRemains andTurnovers.NumberIncoming,
_DemoGoodsBalancesInStoragePlacesBalances andTurnovers.QuantityExpense,
_DemoRemains of GoodsInStoragePlacesRemains andTurnovers.NumberTurnover
OD
ActualNomenclature AS ActualNomenclature
LIJEVA VEZA Registar akumulacije._Demo Ostaci robe u skladištima.Ostaci i promet KAO _Demo Ostaci robeInStoragePlacesOstaci I Prestani
Ažurna softverska nomenklatura.Nomenklatura = _DemoProductsBalancesIn StoragePlacesBalancesAndTurnovers.Nomenclature

Kao rezultat, izvješće sadrži sljedeća polja (vidi sliku 1):

Budući da su informacije preuzete iz virtualne tablice "Stanja i promet", ACS automatski stvara dva parametra podataka Period Start (Početak i Period završetka), koji su neophodni za postavljanje ograničenja razdoblja uzorkovanja podataka. Radije ne bih radio s takvim parametrima izravno, već postavljam njihove vrijednosti kroz drugi parametar koji će biti dostupan korisniku za uređivanje (vidi sliku 2).
Izvještaj se nosi sa svojim zadatkom, ali glava izvješća prilično je suha. Tijekom svog rada pronašao sam nekoliko načina za dizajniranje zaglavlja izvješća:

  1. Postavljanje zaglavlja polja na kartici ACS "Skupovi podataka";
  2. Konfiguriranje zaglavlja polja na kartici ACS "Postavke";
  3. Programsko postavljanje zaglavlja polja;
  4. Postavljanje zaglavlja izvješća pomoću izgleda;
  5. Pročišćavanje rezultata ( proračunska tablica);
Razmotrimo ih detaljno.

1. Postavljanje zaglavlja na kartici ACS "Skupovi podataka"

Ovdje je sve jednostavno, stavite kvačicu ispred svojstva polja "Naslov" (tj. Poništite automatski naslov) i unesite traženi tekst naslova (vidi sliku 4).
Ako trebate postaviti izgled za cijelo polje, a ne samo za njegov naslov, tu je svojstvo polja "Izgled" pomoću kojeg možete postaviti određeni izgled polja, na primjer, promijeniti font ili postaviti boja pozadine (vidi sliku 5).
Ovdje moje znanje o kartici "Skupovi podataka" završava.

2. Konfiguriranje zaglavlja polja na kartici ACS "Postavke"

Da biste postavili naslov polja, morate odabrati potrebno polje, desnim klikom otvoriti kontekstni izbornik i odabrati stavku "Postavi naslov" (vidi sliku 6)
Da biste grupirali polja (na primjer, prema vrsti podataka), morate dodati polje za grupiranje i u njega smjestiti potrebna polja (vidi sliku 7), gniježđenje je neograničeno.
Također se možete poigrati sa svojstvom "Location" polja za grupiranje, koje određuje vrstu grupiranja polja.

Te se radnje mogu izvoditi i u načinu 1C: Enterprise otvaranjem postavki izvješća, ALI stavka "Odabrana polja" mora biti uključena u postavke izvješća (vidi sliku 8).
Ovim je dovršen jednostavan dio prilagodbe zaglavlja izvješća. Od prednosti gore navedenih radnji: izvodi se sva konfiguracija standardna sredstva... Od minusa: nemogućnost postavljanja zaglavlja polja s više linija.

3. Programsko postavljanje zaglavlja polja

Platforma vam omogućuje programsko postavljanje zaglavlja polja, štoviše, postavljanje više linija, što zauzvrat omogućuje fleksibilno i dinamično postavljanje zaglavlja polja prilikom generiranja izvješća.

Da bismo to učinili, u modulu izvješća definiramo postupak Prilikom sastavljanja rezultata... U ovom ćemo postupku napisati kod za postavljanje zaglavlja polja.

// 1. Nabavite prilagođene postavke.
Postavke CD-a = ThisObject.SettingsComposer.GetSettings ();

// 2. Dobivamo vrijednost parametra "Period" iz kojeg određujemo datum početka i završetka razdoblja.
ParameterPeriod = NewDataCompositionParameter ("Razdoblje");
Razdoblje = Postavke CD-a.DataParameters.FindParameterValue (ParameterPeriod) .Value;
Početak razdoblja = Datum početka starta;
PeriodEnd = Period.EndDate;

// 3. Pripremite informacije o redefiniranju zaglavlja polja. Da biste to učinili, stvorite
// niz koji će sadržavati informacije: FieldName - vrijednosti svojstva "Path" u
// skup podataka (vidi sliku 1), Zaglavlje - tekst zaglavlja.
FieldList = Novi niz;
pStartPeriod = Format (BeginPeriod, "DF = dd.MM.gggg; DF =" Prazan datum "");
FieldStarting Balance = Nova struktura ("FieldName, Title", "AmountStarting Balance", "Preostalo do" + Symbols.PS + lineStartPeriod);
ListFields.Add (Saldo početnog polja);
stEndPeriod = Format (EndPeriod, "DF = dd.MM.gggg; DF =" Prazan datum "");
FieldEnd Remaining = Nova struktura ("FieldName, Title", "AmountFinal Remainder", "Saldo by" + Symbols.PS + lineEndPeriod);
ListFields.Add (FieldEnd Remaining);

// 4. Nabavite popis polja koja se nalaze u grupiranju "Ostaci" (vidi sliku 7) i
// postavljanje novog naslova petljanjem kroz elemente.
SelectedFields = Postavke CD-a.Selected.Elements; // Prva razina polja.
SelectedFieldsRemains = SelectedFields.Elements; // Grupiranje ostataka polja.
Za svako odabrano polje iz odabranih polja ostaje ciklus
Za svaki element niza s popisa petlja
CompositionField = NewDataCompositionField (ArrayElement.FieldName);
Ako je SelectedField.Field = Polje izgleda tada
SelectedField.Header = ArrayItem.Header;
Završi ako;
Kraj ciklusa;
Kraj ciklusa;

// 5. Učitajte izmijenjene postavke korisnika natrag.
ThisObject.SettingsComposer.DownloadSettings (Postavke CD-a);

Rezultat izvješća (vidi sliku 10):
Metoda je teža od svega navedenog, ali sviđa mi se.

4. Postavljanje zaglavlja izvješća pomoću izgleda

Za fleksibilnije prilagođavanje izgled Izvješće u ACS-u predviđa izradu izgleda. U postavkama izvješća izradite još jedno grupiranje "detaljnih zapisa" i postavite naziv "DZ niz" za ovo grupiranje (vidi sliku 11).
Na kartici Izgledi dodajte raspored zaglavlja grupiranja. Za izgled u dokumentu proračunske tablice izradite zaglavlje izvješća (zaglavlje izvješća trebalo bi sadržavati onoliko zaglavlja polja koliko je prikazano u detaljnom zapisu) i naznačiti područje dokumenta proračunske tablice za izgled (pogledajte sliku 12).
Kao rezultat, izvješće ima sljedeće zaglavlje (vidi sliku 13):

Slika 13. Izgled ACS-a kao zaglavlja izvješća
Po mom mišljenju, izgledi imaju jedan veliki nedostatak, to je nemogućnost obnove prema zadanoj grupi korisnika, pa bi ih trebalo koristiti ako je obrazac za izvještavanje reguliran i ne može se mijenjati. Pokušajte postaviti grupiranje za grupiranje "RowDZ" i vidjet ćete da izgled nije u redu.

Na web mjestu za podršku informacijskoj tehnologiji nalazi se članak Korištenje unaprijed definiranih izgleda koji detaljno opisuje kako se koriste izgledi u ACS-u.

5. Finalizacija rezultata (proračunska tablica)

Ova metoda koristi predivnu metodu proračunskih tablica FindText () već za primjenu ovom metodom potrebno je onemogućiti standardnu ​​obradu generiranja rezultata izvješća.

Započnimo. Onemogućite standardno generiranje, za to u modulu izvješća za događaj Prilikom sastavljanja rezultata postavite varijablu StandardProcessing na False i napišite vlastiti izgled rezultata:
StandardProcessing = False;
Layout Composer = Novi DataComposition Layout Composer;
LayoutComposition = LayoutComposer.Run (
Shema ThisObject.DataCompositionStem,
ThisObject.SettingsComposer.Settings,
DataDecryption);
Obrađivač sastava = Novi procesor sastavljanja podataka;
LayoutProcessor.Initialize (LayoutData, DecodeData, True);
OutputProcessor = NewDataCompositionOutputResultProcessorIn tablični dokument;
OutputProcessor.SetDocument (DocumentResult);
OutputProcessor.Output (LayoutProcessor);
Pojedinosti, programski izgled rezultata izvješća opisan je u članku

Kombinirani rezultat prikazuje se u proračunskoj tablici - varijabli DocumentResult. Dalje, nakon generiranja rezultata i izlaza u dokument proračunske tablice, napišemo kod za zamjenu jednog teksta ćelije drugim. Na primjer, u zaglavlju izvješća promijenite naziv grupiranja "Ostaci" u "Ostaci zaliha" (vidi sliku 14):
Ćelija = DocumentResult.FindText ("Ostaje");
Ako Cell<>Nedefinirano Tada
Cell.Text = "Predmet ostaje";
Završi ako;

Također možete postaviti formatiranje za pronađenu ćeliju, vidjeti svojstva ćelije dokumenta proračunske tablice u pomoćniku za sintaksu.

Ovu sam metodu nedavno otkrio za sebe, jednostavna je i omogućuje vrlo fleksibilan rad sa zaglavljem izvješća, glavno je da tekst ćelije ima jedinstveni tekst.

p.s. možda imate u svom arsenalu još jedan način dizajniranja zaglavlja polja?

Značajke izrade izvješća u 1C v8 u debelom klijentskom načinu

Kako odabrati opciju?

  • Postavite gumb "Odabir opcije" na ploču s izvješćima
  • Na obrazac stavite polje "OnDate"

Uzorak koda: ProcedureFormSelectOptions (Button) layout = GetLayout ("MainDataCompositionSchema"); spVariants = Nova lista vrijednosti; Za svaku opciju iz Layout.OptionsSettings Ciklus spVariants.Add (option.Settings, option.Presentation); Kraj ciklusa;

izbor = spVariants.SelectItem (); Ako je izbor = Nedefiniran, onda se vratite; Završi ako;

Postavke Composer.LoadSettings (selection.Value);

Obrazac (); Kraj postupka

Postupak OnDateWhenChanging (Element) Generate (); Kraj postupka

Postupak Generate () FormElements.Result.Clear (); SettingsComposer.Settings.DataParameters.SetParameterValue ("Razdoblje", OnDate); BuildResult (Elementi obrasca.Result); Kraj postupka

Otvorite postupak () OnDate = CurrentDate (); Obrazac (); Kraj postupka

Značajke izrade izvještaja putem ACS-a

Generiranje izvješća korak po korak

  1. Stvorite izvješće u čvoru Izvješća
  2. Stvorite izgled u izvješću čija je vrsta Shema sastavljanja podataka
  3. Postavljeno u svojstvima izvješća: Glavna shema sastava podataka = Izrađen izgled
  4. U svojstvima izvješća postavite podsustav kojem pripada (izvješće u Enterpriseu prikazat će se u gornjem navigacijskom oknu)
  5. Stvorite zahtjev u izgledu (stavka: Dodaj skup podataka - zahtjev)
  6. Na kartici Parametri izgleda, poništite sve retke u stupcu Ograničenje pristupa - tj. svi će parametri biti dostupni korisniku za uređivanje
  7. Na kartici Postavke izgleda, u prozoru u kojem je prikazan čvor Izvještaj, stvorite novo grupiranje bez navođenja polja grupiranja - stvorit će se detaljan redak
  8. Na kartici Postavke izgleda, u prozoru u kojem se nalazi dodatni set oznake, odaberite dodatne. Kartica Parametri - označite sve parametre kvačicom i na svakom parametru pritisnite gumb Svojstva stavke korisničkih postavki, otvorit će se prozor postavki parametara, gdje morate potvrditi okvir - Uključiti parametar u korisničke postavke
  9. Na kartici Postavke izgleda, u prozoru u kojem se prikazuje dodatni skup kartica, odaberite dodatne. Kartica SelectedFields - tamo trebate dodati stupce koji će biti prikazani u izvješću
  10. Pokrenite Enterprise, otvorite izvješće, postavite vrijednosti parametara, generirajte (provjerite je li odabrana glavna opcija za generiranje izvješća)

Kako mogu dodati parametar koji korisnik ne može uređivati?

Na primjer, moramo postaviti parametar upita "Infobase"

  • U obrascu za raspored, na kartici Parametri poništite potvrdni okvir "Uključi u dostupna polja" i "Ograničenja pristupačnosti" za traženi parametar
  • U obliku izgleda izgleda, na kartici Postavke na potkartici (ispod) Parametri poništite traženi parametar, otvorite svojstva (gumb s ključem), na ovom obrascu:
    • Poništite "Uključi u korisničke postavke"
    • Način uređivanja postavljen na "Nedostupno"


  • U modulu obrasca izvješća, u obrađivaču događaja "OnVariantLoadOnServer" (možete i OnOpening, ali NE OnCreateAtServer, jer se izvršava PRIJE učitavanja postavki izvješća i postavke će biti prebrisane) programski postavite parametar:

& AtServer postupak prilikom učitavanja OptionOnServer (Postavke)

// Postavljanje parametra Settings = Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase); Kraj postupka

Kako postaviti opcije za izvješće?

  • U obliku predloška izgleda na kartici Postavke u polju s lijeve strane možete stvoriti potrebne inačice izvješća

Kako postaviti grupiranje?

  • U obliku izgleda izgleda na kartici Postavke u polju gore desno možete stvoriti potrebne grupe

Kako programski prikazati izvještaj?

U modulu obrasca:

& Na klijentskom postupku Generiraj izvješće Izvrši ()

ThisForm.ComposeResult ();

Kraj postupka

Kako mogu testirati izvještaj?

Trebate učiniti:

  • Stvaranje situacije u testu klijenta - najprikladniji je način kroz tablicu situacija
  • dobiti obrazac izvješća - form = GetForm ("Report.Processes.Form.Report Form");
  • preuzimanje datoteka željena opcija izvješće - postavite parametar proširenja obrasca izvješća "OptionKey" (naziv postavke u predlošku sastava podataka)
  • učitati potrebne postavke izvješća -? za popunjavanje parametra proširenja obrasca izvješća "UserSettings" (tip "UserDataCompositionSettings") nije uspjelo, sve je komplicirano, pogledajte dolje.
  • otvoreni obrazac - obrazac.
  • izvršiti formaciju - form.ComposeResult ();
  • provjerite sadržaj obrasca dokumenta proračunske tablice Rezultat - bilo bi lijepo imati funkcije usporedbe s referencom mxl
  • close form - form.Close (); - ili ga možda ne trebate otvoriti, trebate provjeriti

vidi također

  • opis: izbornik Pomoć / Pomoćnik za sintaksu / kartica Sadržaj / Objekti / proširenja upravljanog sučelja aplikacije upravljani oblik/ Upravljano proširenje obrasca za izvješće / parametre obrasca

Kako mogu učitati potrebne postavke izvješća?

Dokumentacija opisuje da postoji takav parametar za proširivanje oblika izvještaja "UserSettings" tipa "UserDataCompositionSettings", ali postoji vrlo složena struktura objekta, pa ga nije bilo moguće koristiti.

Stvarno djelotvorna shema:

1. Stvorite parametre u izvješću

  • Razdoblje tipa Standardno razdoblje
  • Odabir tipa ListValues ​​(bilo bi bolje imati strukturu, ali ona nije na popisu tipova parametara, kao ni proizvoljan tip)

2. Proslijedite potrebne parametre u postupak GetForm:

razdoblje = Novo standardno razdoblje; period.Variant = VariantStandardPeriod.ArbitraryPeriod; period.StartDate = currentDate; period.EndDate = sutrašnji datum;

odabir = Nova lista vrijednosti; selection.Add (Testing.GetObject (stSituation, "BP1"), "BusinessProcess");

stParameters = Nova struktura ("Ključ varijante, razdoblje, odabir", "Glavna", točka, odabir); // OpenFormModally ("Report.Process Movement.Form.ReportForm", stParameters); form = GetForm ("Report.Process Movement.Form.Report Form", stParameters);

3. U rukovateljima događaja obrasca postavite parametre

& Funkcija OnServer cnGet (popis, pogled) Izvoz za svaku stavku s popisa Lista petlja Ako item.View = pogled Zatim vrati item.Value; Završi ako; Kraj ciklusa; Povrat nije naveden; EndFunction

& Postupak OnServer SetValueUserSettings (Postavke, ime, vrijednost) za svaki element iz postavki. Elementi petlje IfTypeValue (element) = Tip ("DataCompositionSettingsParameterValue") Tada ako je niz (element.Parameter) = Ime Zatim element.Value = Vrijednost; item.Usage = True; Završi ako; Završi ako; Kraj ciklusa; Kraj postupka

& Postupak OnServer SetValueCustomSelection (Postavke, ime, vrijednost) za svaku stavku iz postavke.Elements petlja IfTypeVal (item) = Tip ("DataCompositionFlection") Zatim za svaki odabir iz stavke. Element petlja ako je red (pick.LeftValue) = Ime Zatim filtriraj .RightValue = Vrijednost; selection.Use = True; Završi ako; Kraj ciklusa; Završi ako; Kraj ciklusa; Kraj postupka

& AtServer postupak prilikom učitavanja OptionOnServer (Postavke)

CurrentVariantName = PresentCurrentVariant;

Postavke = Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase);

Kraj postupka

& AtServer Postupak prilikom učitavanja korisničkih postavkiOnServer (postavke) Postavke = Report.ConfigurationComposer.UserSettings;

<>"00010101" Zatim Postavke = Report.ConfigurationComposer.UserSettings; SetUserSettingValue (Postavke, "Razdoblje", Parametri.Period); Završi ako;

ssBusinessProcess = spGet (Parameters.Selection, "BusinessProcess"); Ako je ssBusinessProcess<>Nedefinirano zatim SetCustomSelectionValue (Postavke, "BusinessProcess", ssBusinessProcess); Završi ako;

Kraj postupka

Bilješke:

  • Postoje parametri podataka, odnosno ono što je postavljeno u parametrima zahtjeva za ACS
  • Neki od njih dodijeljeni su u postavci varijante u UserSettings (u svojstvima parametra nalazi se oznaka "Uključi u korisničke postavke"
  • Čak i ako se prilikom učitavanja na poslužitelj potrebne vrijednosti učitaju u parametre podataka, tada se otvara obrazac u koji se automatski učitavaju postavke spremljene posljednji put. Te postavke prilikom generiranja izvješća "prekidaju" postavke podataka
  • U obrađivaču WhenLoadingUserSettingsOn na poslužitelju, prenosi se objekt Postavke kopija stvarne postavke, tako da za promjenu postavki koje će se pojaviti na obrascu morate ispuniti objekt Report.

Kako napraviti višestruke (popisne) parametre upita u ACS-u?

U zahtjevu morate upotrijebiti izraz "U (& ParameterName)"(vidi logičke izraze u jeziku upita 1Cv8)

Prilikom konfiguriranja izgleda kruga ACS-a na kartici "Parametri", za taj parametar stavite kvačicu u stupac "Popis dostupnih vrijednosti". U ovom slučaju, kada odaberete parametar, ACS prikazuje obrazac za uređivanje popisa u koji možete dodati bilo koju vrijednost parametra.

Kako napraviti onemogućene parametre zahtjeva u ACS-u?

U zahtjevu za ACS morate koristiti konstrukcije okružene vitičastim zagradama "{}" .

Ako je u obrascu izvješća (ploča brzo postavljanje) uklanja se iz odgovarajućeg parametra, a zatim se ova konstrukcija uklanja iz zahtjeva.

Za više detalja vidi Proširenje jezika upita za sustav sastavljanja podataka (1Cv8)

Kako izraditi izvještaj s rasponom po stupcima?

Da biste to učinili, u postavci varijante izvješća (uređivanje izgleda sastava podataka, kartica "Postavke", polje gore desno), morate dodati "Tablica" kao prvo grupiranje.

Nakon toga, grane "Redovi" i "Stupci" pojavljuju se u čvoru "Tablica", gdje se dodaju potrebne grupe.

Kako prilagoditi izlazni format polja?

U uređivaču predloška sastava podataka, na kartici "Skupovi podataka", u gornjem desnom dijelu nalazi se popis polja izvješća.

Dvije su mogućnosti:

  1. Prilagodite vrijednost stupca "Izraz pogleda"
    • ovdje možete unijeti jezični izraz koji daje željeni niz
    • ne radi s poljima resursa
  2. Prilagodite vrijednost stupca "Izgled"
    • u dizajnu postoji svojstvo "Format" - ovo je vrijednost slična parametru jezične funkcije "Format", možete postaviti željeni prikaz
    • ovdje se ne može izvršiti pretvorba tipa

Izrazi izračuna mogu se navesti za polja resursa (kartica Resursi) - na primjer,

Zbroj (vrijeme) / 3600,0

za pretvaranje iz sekundi u sate.

Potrebna točnost može se postaviti putem polja "Dizajn" na kartici "Skupovi podataka".

Specifičnosti postavljanja parametara sustava za sastavljanje podataka

Postoje i zahtijevaju različite obrade najmanje TRI vrste parametara:

Parametri podataka

Parametri podataka definirani su u ACS zahtjevu (izvor podataka).

Parametri podataka prosljeđuju se upitu izvora podataka i određuju podatke koji će se dohvatiti.

Objekt SettingsComposer ima posebno svojstvo za rad s parametrima podataka SettingsComposer.Settings.Data Parametri

Može se postaviti pozivanjem obrasca

Postavke = Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase);

Izbor

Odabiri se nalažu na primljene podatke nakon dohvaćanje iz izvora podataka.

Objekt SettingsComposer ima posebno svojstvo za rad s odabirima Postavke Odabir postavki skladatelja.

Na primjer: Postavke = Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase);

Za svaki element From Parameters.Selection CycleSelectionElement = Settings.Selection.Elements.Add (Type ("DataCompositionOptionOption")); SelectionElement.ComparisonType = DataCompositionComparisonType.Equal; SelectionItem.LeftValue = NewDataCompositionField (element.View); SelectionItem.RightValue = element.Value; Kraj ciklusa;

Postavke po želji korisnika

Korisničke postavke definiraju podatke koje korisnik može prilagoditi na obrascu.

Prilagođene postavke mogu se prikazati na obrascu u posebnoj tablici, a mogu se pozvati gumbom "Postavke" i iz izbornika "Sve radnje".

Postavke po želji korisnika povezani s parametrima podataka i odabirima na prilično složen način, ova se veza može vizualno konfigurirati, ali je nekako nezgodno programski s njima raditi.

Do sada nije pronađeno ništa bolje kako postaviti vrijednosti postojeće zbirke po indeksu, koji se sam po sebi može pokrenuti prilikom promjene rasporeda ACS-a u vizualnom uređivaču.

Osim toga, ako je neki parametar podataka proglašen korisničkim definiranim, tada instalacija softvera parametar podataka (vidi gore) nije dovoljan, vraćena vrijednost prilagođena postavka prekida postavljanje parametra podataka. Stoga za takve parametre nema smisla postavljati parametar podataka, morate odmah instalirati prilagođena postavka.

Prikladno mjesto za postavljanje potrebnih vrijednosti je rukovatelj događajima "OnLoadingUserSettingsOnServer" proširenja obrasca izvješća.

& Postupak OnServer prilikom učitavanja korisničkih postavki OnServer (Postavke)

Ako Parameters.Period.Završi datum<>"00010101" Zatim Postavke = Report.ConfigurationComposer.UserSettings; Settings.Elements.Value = Parametri.Period; Završi ako;

Kraj postupka

Korištenje objektnog izvora podataka

Da biste koristili skup podataka tipa tipa objekta, morate proslijediti vanjski izvor podataka metodi Initialize metode Data Composition Processor.

DataDecryption = Nedefinirano;

Layout Composer = Novi DataComposition Layout Composer; LayoutComposer = LayoutComposer.Run (DataCompositionSchema, SettingsComposer.Settings, DecodeData);

Obrađivač sastava = Novi procesor sastavljanja podataka; LayoutProcessor.Initialize (LayoutDetails, Nova struktura ("Data", GetExternalSourceData ()), DecryptionData);

U prilogu je jednostavan primjer (da bi primjer funkcionirao, morate imati priručnike "Izvođači" i "Ugovori izvođača").

Danas ćemo razmotriti rješenje zanimljivog problema - izlaz slika u izvještaj.

Za što je ovo korisno?

Ovdje nekoliko primjera:

  • Cjenik sa slikama proizvoda i logotipom u zaglavlju
  • Upitnici zaposlenika s fotografijama
  • Izmirenje naselja pečatom i potpisom u podrumu
  • Izvješća / obrasci za ispis pomoću skeniranja ispisa

U videu također analiziramo programiranje izvještaj o SKD-u. Koristi se ovaj način generiranja izvještaja u tipične konfiguracije - ovo je još jedan razlog da ga pažljivo gledate :)

Unaprijed definirani izgledi u ACS-u

Unaprijed definiranim izgledima možete nadjačati zadani izgled izvješća.

U ovoj lekciji, pored postavljanja problema, razmotrite:

  • Pohranjivanje binarnih podataka u konfiguraciji modela
  • Sposobnost korištenja ACS rasporeda za prikaz slika

Izrada izvještaja o ACS-u pomoću softvera

Da biste riješili problem prikazivanja slika u izvješću na ACS-u, trebate ga generirati programski.

Programskim generiranjem izvještaja moguće je pozivanje na binarne podatke.

Tijekom ovog vodiča, napravimo:

  • Izlaz rezultata izgleda u dokument proračunske tablice
  • Korištenje podatkovnog objekta
  • Dohvaćanje binarnih podataka iz baze podataka
  • Programsko stvaranje crteža u proračunskoj tablici

Prikazivanje slike u izvješću ACS-a

U ovoj lekciji izvodimo posljednje korake: u izvještaj izlazimo prethodno dobivene binarne podatke.

Da bi se to učinilo, slika se dodaje u dokument proračunske tablice, nakon čega se prikazuje u izvješću.

Univerzalnost algoritma za izlaz slike

Razvijeni algoritam za prikaz slika je univerzalan - s bilo kojom promjenom u strukturi izvješća, algoritam nastavlja raditi.

Zapravo, to ćemo dokazati u ovoj lekciji.

Uz to, razmotrit ćemo značajku generiranja pozadine izvješća o ACS-u (izrada izvješća pomoću planiranih zadataka).

Prikazivanje slike u zaglavlju izvješća

Često u zaglavlju ili podnožju izvješća morate prikazati statičnu sliku.

Čini se jednostavnim zadatkom, ali u slučaju ACS-a morate znati kako ga riješiti:

  • Korak 1. Programski generirajte izvješće
  • Korak 2. Izradite zasebni izgled sa željenim zaglavljem ili podnožjem
  • Korak 3. Prije popunjavanja izvješća ACS, prikažite odjeljak s potrebnim podacima.

Ovaj videozapis jasno pokazuje rješenje problema.

Sretno gledanje! :)

Posljednjih dana objavljujemo materijale na ACS-u.

A što ako programer / realizator 1C ne poznaje ACS? Možda zapravo nije toliko važno?

Ok, pogledajmo što će čekati stručnjaka koji zapisuje izvještaje "na koljenu" (na primjer, koristeći ručni izlaz u dokument proračunske tablice).

Ne pucajte u pijanista, on svira najbolje što može.

Izvješća praktički u svim tipičnim konfiguracijama na temelju SKD-a.

Za stručnjaka bez znanja ACS-a, popunjavanje standardnih izvještaja postaje lutrija - zašto i kako se u izvješću prikazuje ta ili ona brojka, kako dodati nove izvore, gdje urediti izračunate brojke u kodu ...

ACS - standard izvještavanja u tipičnim konfiguracijama, a 1C ne piše komentare računajući na one koji još nisu proučavali standarde :)

Puno vremena do vraga ...

Bez ACS-a razvoj izvještaja uglavnom se vrši ručno.

Ovo je, naravno, super - izađi kao Rambo s odvijačem u zubima i voli to raditi svima :)

Kao rezultat - veliki troškovi rada za izradu izvješća i njegovo uklanjanje pogrešaka... A bilo kojeg menadžera / kupca barem će ovo uznemiriti: "čudno, ali on to stvarno razumije ??"

A kada je riječ o naknadnoj reviziji izvješća, to često postane glavobolja (pogotovo ako se radi o tuđem izvješću) ...

Razvojna putovanja klijentima radi promjene grupiranja u izvješću

SKD vam omogućuje primanje izvješća o kvaliteti nema programiranja. Okosnica je gotova za par minuta, zatim - lukovi.

Korisnici mogu prilagoditi takva izvješća bez uključivanja programera, generirati nekoliko mogućnosti prezentacije - dijagrame, grafikone, popise, tablice.

Ostvarite ovu svestranost u softverskim izvješćima nemoguće u razumnom roku.

Stoga - zvono, tramvaj, idemo ... Ovo je takav profesionalni rast za 1C-nadimak ...

“Nemate isti, već s dugmadima od sedefa? - Nažalost - ne ... ”(c)

A ako trebate dobiti neke podatke iz drugog sustava - iz druge 1C baze podataka ili uopće ne iz 1C?

Korištenjem ACS-a možete stvoriti izvješće koje radi s podacima trenutnog IB-a i prima podatke iz drugog izvora - nije potrebno programiranje.

Bez Vanjski ACS podaci će se dobiti programski, a ne na naj trivijalniji način.

Ako želiš svladati SKD profesionalno i to svakodnevno primijeniti u svom radu, prijavite se na tečaj:

Podrška - 2 mjeseca... Obim tečaja - 34 akademska sata.

Ne odgađajte trening!

Kada kreirate izvješća pomoću sustava za sastavljanje podataka (ACS), prikladno je prikazati parametre izvješća (barem one najčešće korištene) na obrascu kako ne biste prisilili korisnika da kopa u standardni prozor postavki ACS-a.

Razmotrimo kako se to može učiniti pomoću uobičajenih 1C obrazaca. Odmah rezervirajmo da će se ovaj članak usredotočiti na izlaz parametara u obrazac, tj. sami parametri u ACS-u već moraju biti stvoreni.

Postoje dva načina za prikaz parametara ACS-a u uobičajenom obliku:

  • izlaz tablice postavki parametara u cijelosti
  • izlaz pojedinih parametara u obliku polja za unos.

Tablica postavki parametara prikazana na obrascu slična je tablici postavki parametara koju generira ACS. Da biste je prikazali na obrascu, morate stvoriti kontrolu Tabelarno Polje, u kojem u vlasništvu Podaci istaknuti SettingsComposer.Settings.Data Parametri

U tom će se slučaju korisniku prikazati svi ACS parametri koji nemaju ograničenje dostupnosti.

Međutim, u nekim se slučajevima ova metoda možda ne čini tako lijepom i ne baš vrlo jednostavnom za upotrebu. Razmotrimo kako prikazati parametre ACS-a na obrascu odvojeno u obliku običnih polja za unos.

  1. Stvorimo detalje izvješća koji odgovaraju parametrima. U našem primjeru to će biti rekviziti Datum početka, Datum završetka, Organizacija... Postavimo odgovarajuće tipove podataka za njih.
  2. Stvorimo polje za unos na obrascu za svaki od parametara i povežimo ih kroz svojstvo Podaci s pojedinostima izvješća. Za svako polje za unos bilo bi lijepo stvoriti natpis uz naziv parametra tako da korisnik razumije koji parametar uređuje.
  3. Za svako polje za unos trebate stvoriti proceduru za obrađivač događaja Kad se promijeni, koji će postaviti vrijednost koju odabere korisnik na ACS parametre. U primjeru sam stvorio jedan postupak i dodijelio mu promjenu događaja za sva tri polja unosa. Odnosno, kada se promijeni jedan parametar, sva tri se resetiraju. Sa stajališta izvedbe, ovo najvjerojatnije nije učinkovito, ali od tada parametara nema puno, razlika nije uočljiva. Kada veliki broj parametre treba izvesti postavku svakog u zasebnom postupku. Dakle, kod postupka za rukovatelj Kad se promijeni izgledat će ovako:

    Postupak ParametriOnChange (Stavka)

    ParameterDateStart = Povezivač postavki. Postavke. Parametri podataka. Elementi. Pronađi ("BeginningPeriod"); // Pretraživanje se izvodi imenom parametra ACS
    ParameterDateStart. Upotreba = True; // Parametar će se koristiti pri odabiru
    ParameterDateStart. Vrijednost = Datum početka; // Parametru se dodjeljuje vrijednost atributa izvješća

    ParameterDateCon = Povezivač postavki. Postavke. Parametri podataka. Elementi. Pronađi ("EndPeriod");
    ParameterDateCon. Upotreba = True;
    ParameterDateCon. Vrijednost = Krajnji dan (Krajnji datum);

    ParameterOrg = Povezivač postavki. Postavke. Parametri podataka. Elementi. Pronađi ("Organizacija");
    ParameterOrg. Upotreba = True;
    ParameterOrg. Vrijednost = Organizacija;

    Kraj postupka

Gotovo svi parametri dostupni u dijaloškim okvirima postavki ispisa (postavke pisača, svojstva stranice) mogu se navesti izravno prilikom generiranja proračunske tablice.

Razmotrimo svojstva i metode proračunske tablice povezane s postavkama ispisa (u navedenim primjerima "TabDoc" je objekt tipa "Dokument proračunske tablice").

Vlasništvo "Ime pisača" omogućuje vam postavljanje pisača koji nije zadani za ispis. Naziv mora odgovarati nazivu pisača postavljenog u sustavu:

TabDoc.PrinterName = "Canon iR1133";

Kada ispisujete seriju dokumenata, možete uštedjeti vrijeme postavljanjem zastavice za raščlanjivanje:

TabDoc.ParseCopy = Tačno;

Broj primjeraka može se odrediti kako slijedi:

TabDoc.Broj kopija = 5;

Naravno, možete postaviti polja:

TabDoc.Lijeva margina = 20; // Lijeva margina 20 mm, ostale margine 10 mm (prema zadanim postavkama)

Još nekoliko svojstava stranice:

TabDoc.Page Orientation = Orijentacija stranice.Pejzaž; TabDoc.InsistanceOnPage = 2; // 2 stranice TabDoc bit će postavljene na list. Autoscale = true; // slično postavkama zuma širine stranice

Ako je potrebno, možete odrediti određenu vrijednost skaliranja u postocima (svojstvo "Ispis skala" ).

Vlasništvo "Veličina stranice" omogućuje vam postavljanje standardnih veličina stranica - "A3", "A4", "A5" ( puni popis opcije su dostupne u pomoći 1C).

TabDoc.Page Size = "A3"; // slovo A mora biti englesko

Za veličina po izboru papira (Prilagođeno), možete odrediti vrijednosti za visinu i širinu stranice (u mm):

TabDoc.PageSize = "Prilagođeno"; // nestandardni TabDoc.PageHeight = 350; TabDoc.Sirina stranice = 350;

Također je u proračunskoj tablici dostupna kontrola izlaza zaglavlja i podnožja i njihovog sadržaja. To se radi pomoću svojstava "Zaglavlje stranice" i "Podnožje". Na primjer:

TabDoc.HeaderFooter.Office = true; // ispisat će se zaglavlje TabDoc.FooterSizeTop = 7; // veličina podnožja 7 mm (zadano 10 mm) TabDoc.HeaderFooter.VerticalPosition = VerticalPosition.Top; TabDoc.HeaderFooter.StartPage = 2; // zaglavlje se prikazuje s druge stranice FontFootboard = Novi font ("Courier New", 8, True); TabDoc.HeaderFooter.Font = HeaderFont; // kurziv font TabDoc.HeaderFooter.TextVCenter = "Zaglavlje"; TabDoc.HeaderFooter.TextRight = "Stranica [& Broj stranice] iz [& PagesTotal]"; // paginacija TabDok.HeaderFooter.TextLeft = "[& Date]"; // trenutni datum

Generirani dokument šalje se na ispis metodom "Tip()". Dvije su moguće opcije poziva.

1) Izravno na pisač:

TabDoc.Print (dijalog ModePrint. Ne koristi); TabDoc.Print (točno);

2) Prije ispisa prikazat će se dijaloški okvir ispisa:

TabDoc.Print (ModePrintDialogueUse.Use); TabDoc.Print (netočno);

Osim toga, možete kontrolirati paginaciju dokumenta. Broj stranica u dokumentu možete procijeniti na temelju postavki trenutnog pisača kako slijedi:

TabDoc.Broj stranica ();

Koristeći metode "CheckOutput ()" i "CheckConnection ()" Možete utvrditi da li dokument s proračunskom tablicom ili niz područja s proračunskim tablicama odgovara visini i širini stranice na trenutnim postavkama pisača.

Treba imati na umu da rad posljednje tri metode ovisi o instaliranom pisaču. Ako je metoda ne može pronaći, izbacuje se iznimka.

Metode dopuštaju prisilno umetanje prijeloma stranica "DisplayVerticalPage Separator ()" i "DisplayHorizontalPage Separator ()" .

Dakle, možete kontrolirati ispis stranice po stranicu i kontrolirati punjenje stranice:

Ako nije TabDoc.CheckOutput (niz izlaznih opcija), tada TabDoc.OfferHorizontalPageSplitter (); Završi ako

Važna karakteristika platforme 1C: Enterprise 8.2 je strogo razdvajanje svojstava i metoda prema kontekstu izvršenja. Ako su sva gore navedena svojstva dostupna u bilo kojem kontekstu, tada navedene metode nisu dostupne na tanak klijent... Iznimka je metoda "Print ()" čija je dostupnost iz očitih razloga ograničena na klijentsku stranu. To znači da bi se forma proračunske tablice trebala dogoditi na poslužitelju i poslati na ispis u klijentskom postupku.