Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Recenzije
  • Vanjski tiskani obrazac zup. Dodavanje eksterne ispisne forme u bazu podataka

Vanjski tiskani obrazac zup. Dodavanje eksterne ispisne forme u bazu podataka

Dobar dan.

Danas vam želim reći kako izraditi vanjske tiskane obrasce za konfiguraciju "Upravljanje plaćama i osobljem 3.0". Kao što znate, ZUP 3.0 koristi biblioteku standardnih podsustava, što znači da struktura obrade izgleda potpuno drugačije. Kada sam prvi put trebao napraviti tiskani obrazac za BSP u upravljanim obrascima (tada je to bio UT 11), prvo što sam napravio bilo je otići na ITS disk kako bih tamo pronašao detaljnu dokumentaciju o tome koje procedure izvoza, koji parametri trebaju biti obrađeno i kako sve to funkcionira. Ovdje me ITS malo razočarao, jer... tamo je sve rečeno o tome kako bi procedure trebale izgledati u modulu dokumenta, au vanjskom ispisanom obliku parametri procedure "print" su preuređeni, pa sam morao tražiti informacije u drugim izvorima i petljati s podsustavom iznutra .

Pa, počnimo. Ono što dobijemo na kraju može poslužiti kao šablona.

Prvi korak- očito. Kreirajmo novu obradu. Dodijelimo mu proizvoljan naziv: "Print Sample".

Drugi korak. Kreirajmo izgled. Budući da imamo testni primjer, napravit ću najjednostavniji izgled, bez ijednog parametra.

Treći korak- Najinteresantnije. Otvorite objektni modul i počnite s programiranjem. Prema BSP-u, prilikom registracije vanjske obrade, ona (obrada) mora naznačiti što može raditi, na koje objekte je povezana i kako se zove. Na pitanje koju obradu može učiniti, trebao bi vratiti popis naredbi - ovo je tablica vrijednosti. U našem slučaju obrada može ispisati jedan ispisani obrazac, tako da će biti samo jedna naredba. Da bismo generirali tablicu vrijednosti, definirat ćemo nekoliko postupaka koji će uvijek biti isti u svim vanjskim tiskanim obrascima:

//procedura koja priprema strukturu tablice naredbi

Funkcija GetTableCommand()

// Kreirajte praznu tablicu naredbi i stupce u njoj
Naredbe = Nova tablica vrijednosti;

// Kako će opis ispisanog obrasca izgledati za korisnika
Commands.Columns.Add("View", NewTypeDescription("Red"));

// Naziv našeg izgleda, kako bismo mogli razlikovati pozvanu naredbu u obradi ispisa
Commands.Columns.Add("Identifier", New TypeDescription("String"));

// Ovim se postavlja kako se naredba za obradu treba pozvati
// Moguće opcije:
// - OpeningForm - u ovom slučaju stupac identifikatora treba označavati naziv obrasca koji će sustav otvoriti
// - CallClientMethod - poziva proceduru izvoza klijenta iz modula obrasca obrade
// - Call ServerMethod - poziva poslužiteljsku eksportnu proceduru iz modula objekta obrade
Commands.Columns.Add("Upotreba", New TypeDescription("Red"));

// Sljedeći parametar određuje treba li se prikazati obavijest kada započne i završi posao obrade. Nema smisla pri otvaranju obrasca
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));

// Za ispisani obrazac, mora sadržavati niz PrintMXL
Commands.Columns.Add("Modifikator", New TypeDescription("Red"));

Tim za povratak;

EndFunction

//Stvara novi red u tablici naredbi

Funkcija AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NovaNaredba = Tablica naredbi.Dodaj();
Nova ekipa. Pogled = Pogled;
Nova ekipa. Identifikator= Identifikator;
Nova ekipa. Usage = Upotreba;
Nova ekipa. ShowAlert= Prikaži upozorenje;
Nova ekipa. Modifikator= Modifikator;
EndFunction

Funkcija InformationOnExternalProcessing() Izvoz
Parametri registracije = Nova struktura;
ArrayDestinations = Novi niz;
Array of Assignments.Add("Document.Hiring");
Parametri registracije.Insert("View", "PrintForm"); //možda - popunjavanje objekta, dodatno izvješće, stvaranje povezanih objekata...
Parametri registracije.Insert("Destination", Array of Destination);
Parametri registracije.Insert("Name", "Hello World"); //ime pod kojim će obrada biti registrirana u imeniku vanjske obrade
Parametri registracije.Insert("Version", "1.0");
Parametri registracije.Insert("SafeMode", TRUE);
Registration Parameters.Insert("Information", "SAMPLE");//ovako će korisniku izgledati opis obrasca za ispis
Tablica naredbi = GetCommandTable();
AddCommand(CommandTable, "Hello World", "Layout", "CallServerMethod", True, "MXL Print");
Parametri registracije.Insert("Naredbe", Tablica naredbi);
ReturnRegistrationParameters;
EndFunction

Zapravo, morat ćete petljati s njim svaki put kada izradite novu vanjsku formu za ispis. Iz dijela koda jasno je da ćemo ga povezati s dokumentom "Zapošljavanje", prema tome vi napišite svoj. Naš tiskani obrazac zvat će se "Hello World", opet ćemo ga promijeniti u naš. Ovdje bi bilo zgodno napisati očigledan bilbord u predložak tako da upada u oči, kako ga kasnije ne biste zaboravili ispraviti; po mom mišljenju, "Hello world" dobro dođe. Verzija je za vas, napišite što želite, bit će prikazano u obliku elementa u imeniku vanjske obrade. Riječ "UZORAK" također je vidljiva samo u obliku imenika tiskanih obrazaca. Zatim dodajemo naredbu, ovdje je drugi parametar naziv gumba, to je ono što će korisnik vidjeti u dokumentu u stavci izbornika "ispis".

Ovaj skup od tri procedure dovoljan je da se obrada doda u direktorij eksterne obrade, sav ovaj zbunjujući kod je usluga i nema nikakve veze s algoritmom ispisa. Zapravo, autori BSP-a su nas natjerali da programiramo na tako težak način da ako ste prije odmah počeli pisati funkciju "Ispis", sada kada pišete obradu od nule, a ne prema uzorku, gubit ćete vrijeme na usluga. Ranije su parametri registracije bili izborni i bili su naznačeni u izgledu obrade, sada sve izgleda mnogo ozbiljnije. Prvi dojam kad sam ovo vidio je super, toliko mogućnosti, sve je unificirano... ali u praksi uvijek kreiram samo jednu naredbu u jednoj obradi, i povežem je s jednim dokumentom. Oni. zapravo, trebam dva retka za registraciju: naziv objekta, naziv gumba. A ovdje je sve tako... dobro, dobro, nije na meni da sudim.

Četvrti korak- ništa manje zanimljivo.

PRINT funkciju?

Ali ne, sada to nije funkcija, već procedura.

Kako mogu vratiti izgled?

Pošaljite ga funkciji modula globalnog podsustava ispisa.

u redu

Evo teksta ovog postupka:

Procedura Ispis (niz objekata, zbirka obrazaca za ispis, objekti ispisa, izlazni parametri) Izvoz
Ako PrintManagement.NeedPrintLayout(CollectionPrintForms, "Layout") Zatim
Upravljanje ispisom. Izlaz TabularDocumentIntoCollection(CollectionofPrintForms,
"Izgled", "Izgled",
GenerateTabDocumentSample(niz objekata, Ispis objekata));
završi ako;
Kraj postupka

Sada za pojašnjenje. Prvi redak postupka sadrži pomalo nejasan uvjet. Činjenica je da kada pozovemo proceduru ispisa, sustav nam prosljeđuje tablicu vrijednosti, koja označava što trebamo ispisati. U biti, funkcija ManagePrint.NeedPrintLayout(...) provjerava prisutnost retka u tablici vrijednosti u kojem se u stupcu "Ime" nalazi redak s nazivom izgleda. U praksi je u većini slučajeva stvar beskorisna, jer... naša će obrada moći generirati samo jedan tiskani obrazac. Oni. Ovaj uvjet se može izostaviti i neće utjecati na performanse.

Zatim, Upravljanje ispisom Izlaz TabularDocumentIntoCollection(...) - to je ono što dodaje tablični izgled tamo gdje je potreban, tako da se zatim može prikazati na ekranu. Ako trebate prikazati svoj dokument proračunske tablice u vlastitom prozoru (ne u standardnom), nemojte pozivati ​​ovu proceduru, već jednostavno napišite svoj kod ovdje.

Dodao bih i to da se procedura ispisa izvodi na klijentu te po potrebi ovdje možete otvoriti besplatnu formu kako biste od korisnika zatražili dodatne podatke potrebne za ispis.

Zatim, GenerateTabDocumentSample(...) je funkcija koju moramo napisati u modulu za obradu i koja vraća tabularni dokument. U 100 od 100 slučajeva to će biti temeljeno na poslužitelju, jer... moramo dobiti vrijednost detalja iz objekata navedenih u parametru "Object Array".

Peti korak- izrada izgleda.

Hura, napokon ćemo prijeći na algoritam izgleda, dohvaćanje podataka itd.

Ali u našem uzorku ponašat ćemo se prozaično i ovdje neću ni komentirati)))

Funkcija GenerateTabDocumentSample(niz objekata, Ispis objekata)
tabDoc = Novi tabularni dokument;
raspored = GetLayout("Izgled");

AreaHeader = Layout.GetArea("Header");
tabDoc.Output(areaHeader);

Vrati TabDoc;
EndFunction

To je sve, hvala na pažnji

Pitanje:

Molim te reci mi gdje 1C ZUP 3 dodati bankovne podatke organizacije tako da se odražavaju u potvrdama za zaposlenike? Na primjer, u Potvrda o prihodima (slobodan obrazac) iz imenika Zaposlenici.

Odgovor:

Seminar “Lifehacks za 1C ZUP 3.1”
Analiza 15 životnih hakova za računovodstvo u 1C ZUP 3.1:

KONTROLNA LISTA za provjeru obračuna plaća u 1C ZUP 3.1
VIDEO - mjesečna samoprovjera računovodstva:

Obračun plaća u 1C ZUP 3.1
Korak po korak upute za početnike:

Činjenica je da u 1C ZUP-u nema potrebe za pohranjivanjem podataka o tekućem računu organizacije. Ne koristi se ni u jednom dokumentu. Dakle, ti se podaci nigdje ne unose u program i nemaju gdje doći u ispisani obrazac.

Postoje dvije mogućnosti. Svaki put unesite te podatke ručno u generirani obrazac ili ih unesite jednom po izgled tiskanog obrasca(sekcija izbornika Administracija - Ispisani obrasci, izvješća i obrada - Izgledi ispisanih obrazaca).

Pogodnije je koristiti drugu opciju.

U popisu izgleda potrebno je pronaći izgled željenog ispisnog obrasca (naziv izgleda je isti kao i naziv samog obrasca) i kliknuti na naredbu Uredi. U prozoru koji se otvori potrebno je izvršiti potrebne ispravke i zapisati ih.

Nakon spremanja izgleda, ove promjene će se prikazati svaki put kada se ovo izvješće generira za bilo kojeg zaposlenika.

Da biste prvi saznali o novim publikacijama, pretplatite se na ažuriranja mog bloga:

Razmotrimo pisanje najjednostavnijeg tiskanog oblika 1s 8.1 - 8.2 koristeći primjer konfiguracije Računovodstvo poduzeća 2.0. Recimo da trebate napisati vanjski tiskani obrazac za dokument: prikazati osnovne podatke dokumenta, kao i iz tabelarnog dijela Roba: nomenklatura, cijena, količina i iznos.

Rezultirajući primjer možete preuzeti s .

U konfiguratoru 1C poduzeća 8 stvoriti vanjsku obradu ( Datoteka->Novo->Vanjska obrada), postavite naziv, kreirajte potrebne podatke za vanjski tiskani obrazac Referenca objekta s tipom DocumentLink Prodaja roba i usluga.

Izrada izgleda tiskanog obrasca

Dodaj novi raspored, ostavite vrstu izgleda dokument proračunske tablice. Na rasporedu stvaramo tri područja: Zaglavlje, podaci I Podrum. To možete učiniti odabirom potrebnog broja redaka i klikom na izbornik Tablica->Imena->Dodijeli naziv (Ctrl+Shift+N).

Nakon toga počinjemo postavljati tekst i parametre u područja. Stavićemo to u zaglavlje naziv tiskanog obrasca, broj dokumenta I organizacija, te također nacrtati granice zaglavlja tablice i napisati nazive stupaca. Prilikom kreiranja parametra u svojstvima ćelije, na kartici Izgled trebate postaviti svojstvo Punjenje u smislu Parametar.

U području Podaci kreirajmo parametre za prikaz redaka u tabličnom dijelu( Nomenklatura, cijena itd.), i na području Podrum za ukupne iznose po količini i iznosu.

Programiranje

Idemo na objektni modul ispisne forme Akcije->Otvori objektni modul.

Kreirajmo ondje funkciju izvoza koja je obavezna za tiskane obrasce. Pečat().

Ispis funkcije () Izvoz EndFunction

U funkciji za koju ćemo kreirati varijablu dokument proračunske tablice, u koji će biti ispisan ispisani obrazac, dobivamo raspored I područja rasporeda.

TabDoc = novi TabularDocument; Izgled = GetLayout("Izgled" ); HeaderArea = Layout.GetArea("Header" ); AreaData = Layout.GetArea("Podaci" ); AreaFooter = Layout.GetArea("Podnožje" );

Ispunimo parametre šeširi i dovesti do dokument proračunske tablice.

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

Da biste dobili redove tablice Roba koristimo zahtjev.

Zahtjev = novi Zahtjev; Request.SetParameter("Link", ObjectLink); Query.Text = "SELECT | Prodaja roba i usluga Roba Nomenklatura, | Prodaja roba i usluga Roba. Iznos, | Prodaja roba i usluga Roba Cijena, | Prodaja roba i usluga Roba, količina|OD | Dokument Prodaja robe i usluga Roba KAKO Prodaja robe i usluga Roba|GDJE | Prodaja roba i usluga Roba. Link = &Link";

Pojedinosti prosljeđujemo parametru zahtjeva Referenca objekta, naznačiti u stanju GDJE, da su nam potrebni podaci samo iz dokumenta iz kojeg izvodimo tiskani obrazac. Da bismo dobili ogledni upit, prvo ga izvršavamo, a zatim odabiremo retke.

Odaberite = Query.Run().Select();

Zatim u petlji ispunjavamo parametre područja Podaci za svaki redak uzorka dokumenta i prikazati ih u dokument proračunske tablice. Također izračunavamo ukupne vrijednosti u petlji količinama I iznose. Nećemo popunjavati svaki parametar zasebno, već ćemo se pridržavati procedure Ispunite PropertyValues((<Приемник>, <Источник>) iz globalni kontekst, kopira vrijednosti svojstava <Источника> na svojstva <Приемника> . Spajanje se vrši prema imenima svojstava. Više o ovome možete pročitati u pomoćnik za sintaksu 1C Enterprise 8.

Ukupni zbroj = 0; TotalQuantity = 0; While Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDoc.Output(AreaData); Kraj ciklusa ;

Ispunite i prikažite područje Podrum.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

Vraćanje dovršenog tabličnog dokumenta iz funkcije Pečat().

povratak TabDoc;

Ako koristite jednu od standardnih konfiguracija, tada nakon vraćanja dokumenta proračunske tablice 1C prikazat će ispisani obrazac na ekranu. Također možete koristiti metodu proračunske tablice za ispis. Pokazati().

5. Povezivanje ispisanog obrasca s dokumentom

U standardne konfiguracije 1C 8 Postoji imenik za registraciju vanjskih tiskanih obrazaca Vanjska obrada. Za povezivanje idite na izbornik u poslovnom načinu rada Usluga->Dodatna izvješća i obrade->Dodatni eksterni tiskani obrasci.

Dodajte novi element imenika, učitajte ispisani obrazac s diska i odaberite vrstu dokumenta.

Sada u dokumentu Prodaja roba i usluga Pojavit će se novi ispis.

Auto-registracija tiskanog obrasca

Kako biste osigurali da prilikom povezivanja ispisne forme ne morate ručno odabrati vrstu dokumenta, možete konfigurirati automatska registracija. Da biste to učinili, dodajte novi izgled i pozovite ga Postavke_Automatska registracija(to je jedini način) iu njegovu prvu ćeliju upisujemo Dokumentacija.<Наименование документа> (ili Imenici.<Наименование справочника> ).

Sada, kada povezujemo obrazac za ispis, od nas će se tražiti da koristimo parametri automatske registracije.

Ovaj članak opisuje kako spojiti vanjski tiskani obrazac na 1C bazu podataka koristeći primjer konfiguracije "Trade Management 11.2"

Konfiguracija “Trade Management 11.2” je konfiguracija na “MANAGED” obrascima!

Naše upute "pokazuju" kako povezati vanjski tiskani obrazac u informacijskoj bazi 1C s konfiguracijom na "MANAGED" obrascima, naime:

  • "Računovodstvo 3.0"
  • "Upravljanje trgovinom 11.2"
  • "Upravljanje plaćama i osobljem 3.1"
  • "Sveobuhvatna automatizacija 2.0"
  • "Upravljanje malom tvrtkom 1.6"
  • "Maloprodaja 2.2"
  • i druge slične konfiguracije.

Da bismo spojili vanjski ispisni obrazac u 1C, morat ćemo proći kroz 11 koraka.

1 — Izbornik "Matični podaci i administracija" (U drugim konfiguracijama, kao što je Enterprise Accounting 3.0, može se jednostavno zvati "Administracija"). 2 — Odaberite „Ispisani obrasci, izvješća i obrada” (pogledajte sliku ispod ↓)

3 — Proširite podizbornik "Izvješća i obrada" (u drugim konfiguracijama, kao što je Enterprise Accounting 3.0, možda neće postojati takav podizbornik, pa odmah prelazimo na sljedeći korak). 4 — Označite okvir "Korištenje dodatnih izvješća i obrada". 5 — Idite na odjeljak: Dodatna izvješća i obrada. (vidi sliku ispod ↓) ()

6 — Kliknite gumb "Stvori". (vidi sliku ispod ↓)

U novim verzijama 1C (počevši od kolovoza 2016.), program ima ugrađeni mehanizam upozorenja o opasnosti korištenja nepoznate vanjske obrade koja može sadržavati "viruse"; u ranijim verzijama programa upozorenje se neće pojaviti! Ako se to dogodi, tada će za spajanje vanjske ispisne forme biti potrebno - 7 — kliknite gumb "Nastavi". (vidi sliku ispod ↓)

8 — Odaberite direktorij u kojem se nalazi obrada. 9 — Odaberite (obrada koja nam je potrebna). 10 — Kliknite gumb "Otvori". Ili, umjesto koraka 9 i 10, možete jednostavno dvaput kliknuti vanjski ispisani obrazac koji nam je potreban u prozoru za odabir. (vidi sliku ispod ↓)

Ako trebamo dodati prostor za dodatnu obradu (na primjer, ovo je univerzalni ugovorni obrazac s naše web stranice i trebamo naredbu za ispis ovog obrasca da se prikaže u nekom objektu u kojem nije inicijalno prikazan) - 11 — kliknite na redak plasmana ("Postavi u:", možda "Položaj:") i odaberite potrebne direktorije i dokumente. 12 — Dovršavamo korake za spajanje eksterne ispisne forme klikom na gumb "Snimi i zatvori". (vidi sliku ispod ↓)

To je sve! Čestitamo! Spojena je vanjska tiskarska ploča! Jesmo li sve napravili kako treba? Provjerimo...

Prije Evidentiranja i zatvaranja primijetili smo da se ovaj vanjski ispisani obrazac nalazi u dokumentu Promet roba i usluga, što znači da možemo otvoriti opcije ispisa bilo kojeg dokumenta tipa: “Promet roba i usluga”. pritisnite gumb "Ispis" i vidite da se pojavio prozor za odabir ispisanih obrazaca, među njima je - 13 — vanjski ispisni obrazac koji smo spojili (vidi sliku ispod ↓)

Sada je to sigurno to. Nadamo se da vam je ovaj članak bio koristan.

Idemo Servis->Dodatna izvješća i obrade->Opcijske vanjske tiskarske ploče.

Otvara se obrazac imenika s vanjskim ispisanim obrascima. U gornjem izborniku popisa kliknite Dodati. Pojavljuje se obrazac za kreiranje stavke imenika.

Pritisnite gumb Otvori i odaberite datoteku sa željenom formom za ispis. Nakon toga po potrebi postavite željeni naziv (polje Ime).

Ako ispisani obrazac sadrži parametre automatske registracije, pojavit će se poruka o tome. Klik Da.Ukoliko se to ne dogodi, potrebno je naznačiti s kojim dokumentom će ovaj obrazac biti povezan.Da biste to učinili, trebate dodati redak u tabelarnom dijelu „Pripadnost tiskanog obrasca“, gdje u „Prikaz objekta“ polje odabir vrste dokumenta s kojim povezujemo obrazac. Budući da se u našem primjeru radi o aktu otpisa materijala, odabiremo dokument Zahtjev-račun.

Nakon toga idite na bilo koji dokument Zahtjev-račun, kliknite Ispis i odaberite novododani obrazac.

Za BP 3.0, ZUP 3.0, UT 11, KA 2.0, ERP 2.0.

Kako bih demonstrirao dodavanje ispisanog obrasca u upravljano sučelje, pokazat ću dodavanje vanjskog obrasca fakture za plaćanje istoimenom dokumentu u Računovodstvu 3.0.

Idemo na odgovarajući odjeljak programa:


Potrebno je da je uključena zastavica za korištenje vanjskih izvješća i obrada, slijedite hipervezu na popis vanjskih objekata:

Kliknite na popis koji se otvori Stvoriti:


U dijaloškom okviru odaberite željenu datoteku:


Kartica vanjskog objekta je ispunjena: u izgledu vidimo tip osnovnog objekta na koji će se obrazac priložiti i odmah ispod njegovog naziva:


Napišimo i zatvorimo formu kreiranog vanjskog objekta.

Sada idemo na bilo koji dokument Račun za plaćanje kupcu i prikazati izbornik ispisa:


Najbolji članci na temu