Crearea unei plăci de imprimare extern într-o aplicație gestionată pe un exemplu de configurare a salariului și

Evaluare: 5/5

Astăzi vreau să vă spun cum să creați o clișeelor ​​extern pentru configurare „Salariul și Managementul personalului 3.0“. În SPP 3.0 este cunoscută utilizarea subsistemelor bibliotecii standratnyh și prelucrare, astfel, Strutura arată destul de diferit. Când am pentru prima dată, a trebuit să facă o placă de imprimare pentru BSP în forme controlate (atunci era UT 11), primul lucru pe care m-am urcat pe unitatea de ETS, în scopul de a găsi există o documentație detaliată cu privire la orice proceduri de export, cu ce parametri ar trebui să fie obrabtke și cum funcționează totul. Acolo STI-mi un pic dezamăgit, pentru că acolo a spus, cu privire la modul în care ar trebui să apară proceduri în modulul de documente și setările de imprimare externe procedurile „Print“ sunt schimbate, astfel încât am fost nevoiți să căutăm informații din alte surse și alege subsistemul interior.

Ei bine, să începem. Faptul că am ajunge la final, acesta poate fi folosit ca un șablon.

Primul pas - evident. Creați un nou tratament. Îi atribuie un nume arbitrar: „ObrazetsPechati“.

Pasul Doi. Creați un aspect. Din moment ce avem un caz test, aspectul voi crea cel mai simplu, fără un singur parametru.

Crearea unei plăci de imprimare extern într-o aplicație gestionată pe un exemplu de configurare a salariului și

Pasul trei - cel mai interesant. Deschideți modulul de obiect și începe programarea. Potrivit BSP, atunci când înregistrarea de procesare externă, acesta (proces) este de a vă informa că ea știe ce obiecte este legat, cum este numit. Când a fost întrebat ce ea este în măsură să tratament ar trebui să returneze o listă de comenzi - un tabel de valori. În acest caz, prelucrarea este capabil de a obține o formă tipărită, astfel încât echipa va fi singura. Pentru formarea unui tabel de valori definesc o serie de proceduri care toate formele tipărite externe vor fi întotdeauna același:

// procedură care pregătește structura mesei de comandă

// Creați un tabel gol și comenzi pe coloană în ea
Comandă = new TablitsaZnacheny;

// Cum va descrierea formei tipărite pentru utilizator
Komandy.Kolonki.Dobavit ( "Prezentare" New OpisanieTipov ( "string"));

// Numele aspectul nostru, care ar putea distinge echipa numită în prelucrarea de imprimare
Komandy.Kolonki.Dobavit ( "ID", New OpisanieTipov ( "string"));

// Aici este definit ca echipa de tratament trebuie să fie numit
// Opțiunile sunt:
// - numele, în acest caz, identificatorul coloană trebuie să fie specificat de forma, care ar trebui să fie sistem deschis - OtkrytieFormy
// - VyzovKlientskogoMetoda - apel de procedură de export a clientului de la unitatea de procesare a formularului
// - VyzovServernogoMetoda - cauza procedura serverului de export de prelucrare a unui modul obiect
Komandy.Kolonki.Dobavit ( "utilizare" New OpisanieTipov ( "string"));

// Următorul parametru specifică dacă să se afișeze o notificare de la începutul și de prelucrare de terminare este necesară. Nu are nici un sens atunci când deschideți formularul
Komandy.Kolonki.Dobavit ( "PokazyvatOpoveschenie" New OpisanieTipov ( "boolean"));

// Pentru forma imprimată trebuie să conțină șirul PechatMXL
Komandy.Kolonki.Dobavit ( "modificator" New OpisanieTipov ( "string"));

// Creează o nouă linie în tabelul de comandă

DobavitKomandu (TablitsaKomand de funcții, View, ID, utilizarea, PokazyvatOpoveschenie = Minciuni, Modifier = "")
NovayaKomanda TablitsaKomand.Dobavit = ();
NovayaKomanda. Prezentare = Prezentare;
NovayaKomanda. Id = Id;
NovayaKomanda. Utilizare = utilizare;
NovayaKomanda. PokazyvatOpoveschenie = PokazyvatOpoveschenie;
NovayaKomanda. Modificator Modificator =;
KonetsFunktsii

În continuare, vom începe rutina programului de export, care va fi numit printr-un program cu adaos de procesare externă a fișierului în directorul.

SvedeniyaOVneshneyObrabotke () funcția de export
ParametryRegistratsii = structură nouă;
MassivNaznacheny = new Array;
MassivNaznacheniy.Dobavit ( "Dokument.PriemNaRabotu");
ParametryRegistratsii.Vstavit ( "View", "PechatnayaForma"); // poate fi - ZapolnenieObekta, DopolnitelnyyOtchet, SozdanieSvyazannyhObektov.
ParametryRegistratsii.Vstavit ( "destinație" MassivNaznacheny);
ParametryRegistratsii.Vstavit ( "Name", "Hello World"); // denumirea sub care prelucrarea va fi înregistrată în directorul de tratamente externe
ParametryRegistratsii.Vstavit ( "Version", "1.0");
ParametryRegistratsii.Vstavit ( "BezopasnyyRezhim", TRUE);
ParametryRegistratsii.Vstavit ( "Information", "Sample"); // acest lucru va apărea în descrierea utilizatorului pech.formy
TablitsaKomand PoluchitTablitsuKomand = ();
DobavitKomandu (TablitsaKomand, "Hello World", "Aspect", "VyzovServernogoMetoda" Adevărul, "PechatMXL");
ParametryRegistratsii.Vstavit ( "Echipa" TablitsaKomand);
Întoarcere ParametryRegistratsii;
KonetsFunktsii

De fapt, în ea și trebuie să alegeți de fiecare dată când creați o nouă placă exterioară. Dintr-o bucată de cod arată că acesta se leagă, vom documenta „recrutare“, respectiv Compuneți propriul său. Formularul de imprimare numit vom fi „Hello World“, din nou, schimba pe cont propriu. Aici, în șablonul va fi convenabil să scrie bileberdu în mod explicit că a prins ochiul, nu uitați să-l repare, apoi, în vzglya mea „Hello World“ vine la un moment oportun. Versiunea - este pentru tine, scrie ce vrei, acesta va fi afișat sub forma unui element de referință procesoare de date externe. Cuvântul „Sample“ - de asemenea, văzută numai sub formă de plăci de imprimare director. Apoi, adăugați o comandă, aici de-al doilea parametru a trecut la numele butonului, asta e ceea ce utilizatorul va vedea în documentul sub elementul de meniu „Print“.

Pasul patru - nu mai puțin interesant.

-Și aici și acolo, nu mai funcționează, și procedura.

-Și cum să obțineți layout?

-Trimite-un modul funcție a subsistemului de imprimare la nivel mondial.

Iată textul procedurii:

Procedura de imprimare (MassivObektov, KollektsiyaPechatnyhForm, ObektyPechati, ParametryVyvoda) Export
Dacă UpravleniePechatyu.NuzhnoPechatatMaket (KollektsiyaPechatnyhForm, "Model") Atunci
UpravleniePechatyu.VyvestiTablichnyyDokumentVKollektsiyu (KollektsiyaPechatnyhForm,
"Layout", "Layout"
SformirovatTabDokumntObraztsa (MassivObektov, ObektyPechati));
ENDIF;
KonetsProtsedury

Acum lămurire. În prima linie a procedurii este o condiție pic neponyanoe. Faptul este că, atunci când apelați procedura de imprimare, sistemul ne oferă un tabel de valori, ceea ce indică faptul că ar trebui să imprimăm. Funcția Posuti UpravleniePechatyu.NuzhnoPechatatMaket (.) Verifică liniile de tabelă în care valorile din coloana linia „ImyaVREG“ cu numele de aspect. În practică, în cele mai multe cazuri, un lucru inutil, deoarece Tratamentul nostru va fi în măsură să formeze numai o singură placă de imprimare. Ie Această condiție poate fi omisă și operația nu va fi afectată.

Următoarea UpravleniePechatyu.VyvestiTablichnyyDokumentVKollektsiyu (.) - este doar adaugă un aspect tabular în cazul în care doriți, apoi să-l afișeze. Dacă aveți nevoie pentru a arăta documentul foaie de calcul într-o fereastră (nu tipic), atunci nu numesc această procedură, și apoi doar scrie codul.

De asemenea, doresc să adaug că procedura de imprimare se face pe client, și puteți deschide apoi orice formă, în scopul de a cere mai multe informații de la utilizator trebuie să imprime după cum este necesar.

Următoarea SformirovatTabDokumntObraztsa (.) - o funcție, pe care o vom scrie în unitatea de procesare și care returnează un document de calcul tabelar. În 100 din 100 de cazuri, acesta va fi server, deoarece avem nevoie pentru a obține valoarea detaliilor obiectelor enumerate în parametrul „MassivObektov“.

Pasul cinci - formează structura.

URA, vom ajunge în cele din urmă până la formarea algoritmului aspect, achiziția de date, etc.

Funcția SformirovatTabDokumntObraztsa (MassivObektov, ObektyPechati)
tabDok = New SpreadsheetDocument;
aspect = PoluchitMaket ( "Model");

oblastShapka Maket.PoluchitOblast = ( "pălărie");
tabDok.Vyvesti (oblastShapka);

Asta e tot, vă mulțumesc pentru atenție

Am mințit
UT avansat 11.0.9.5 bază de date Demo
Totul funcționează bine.

În modulul de management al documentelor (de exemplu, raport de cheltuieli) 5 parametri
Procedura de imprimare (MassivOb ektov, ParametryPechati. KollektsiyaPechatn yhForm, ObektyPechati, ParametryVyvoda) Export

Și în manipularea noastră - 4. Nu copiați procedura de imprimare, funcția de copiere, care returnează un document de calcul tabelar. În procedura mea de imprimare se va substitui provocarea mea „SformirovatTa bDokumntObraztsa (.)“ Un apel pe care le-ați copiat

Aici chiar și trage!
Procedura de imprimare (MassivOb ektov, KollektsiyaPechatn yhForm, ObektyPechati, ParametryVyvoda) Export
Dacă UpravleniePechatyu.NuzhnoPechatatMaket (KollektsiyaPechatn yhForm, "PF_MXL_ZayavkaT rebovanieNaSkla e") Atunci
UpravleniePechatyu.VyvestiTablichnyyDokumentVKollektsiyu (KollektsiyaPechatn yhForm,
"PF_MXL_ZayavkaT rebovanieNaSkla d", "PF_MXL_ZayavkaT rebovanieNaSkla etc."
SformirovatPech atnuyuFormuZakaz NaPeremeschenie (M assivObektov, ObektyPechati));
ENDIF;
KonetsProtsedury

parametrii actuali insuficiente în modulul (modulul total de DopolnitelnyOt chetIObrabotki, linia 746)