Hapja programatike e formularëve në një aplikacion të menaxhuar 1C është dukshëm i ndryshëm nga hapja e tyre në një aplikacion të rregullt. Le të shohim së pari metodën e vjetër. Ai konsiston në marrjen e një formulari dhe më pas hapjen e tij në modalitetin normal ose modal (kur hapet në modalitet, forma bllokon programin).
GetForm(). Hapur ()
Kjo është metoda më e ngadaltë e hapjes së formularëve. Megjithatë, ju lejon të përpunoni në mënyrë programore formularin përpara se ta hapni atë. Për të përpunuar kodin, duhet të ndryshoni pak:
Formulari = GetForm( "Dokument. Pranimi i Mallrave dhe Shërbimeve. Formulari i Dokumentit")
;
//Këtu kryejmë veprime me formularin
Forma. Open();
Duhet pasur parasysh se kur të merret formulari, do të ekzekutohet një procedurë tjetër e ngjarjes WhenCreatedOnServer.
Le të shohim metoda të tjera që ju lejojnë të hapni formularët në një aplikacion të menaxhuar 1C më shpejt dhe me lehtësi. Në varësi të situatës specifike, mund të përdoren metoda të ndryshme.
Në këtë rast, gjithçka është jashtëzakonisht e thjeshtë.
RefLink = Drejtoritë. Nomenklatura. FindByCode("000000001");
OpenValue (RefLink) ;
Ekziston një funksion për këtë EnterValue (). Funksioni ka 3 parametra:
Si rezultat i ekzekutimit të funksionit, do të hapet forma e përzgjedhjes së paracaktuar për një objekt të llojit të specifikuar.
Vlera e ndryshueshme;
Array= Array i ri;
Array. Shto(Lloji( "DirectoryLink.Nomenklatura")
)
;
Array. Shto(Lloji( "DirectoryLink. Kundërpartitë")
)
;
TypeDescription= new TypeDescription(Array) ;
Res = EnterValue(Vlera, "Hint" , TypeDescription) ;
Metodat e mëparshme ju lejonin vetëm të hapni format e paracaktuara për objektet (forma e objektit ose formulari i përzgjedhjes). Nëse keni nevojë të hapni një formular të personalizuar, mund të përdorni funksionin OpenForm().
Ky funksion ka mjaft parametra. Le të shohim disa prej tyre:
Le të shohim se si përdoret funksioni OpenForm() në situata të ndryshme.
Çdo formë ka një atribut kyç. Në listën e detajeve të formularit theksohet me shkronja të zeza dhe zakonisht quhet Nje objekt në trajtat e elementeve të librave referues dhe dokumenteve. Objektet e tjera mund të kenë një emër tjetër. Për të hapur një formë të një objekti ekzistues, duhet të kaloni një parametër në formularin që hapet Celës me vlerën si referencë për një objekt.
&OnClient
Komanda e procedurës 1 (Komanda)
Parametri= strukturë e re;
Parametri. Insert("Key" , FindC() );
OpenForm(, Parametri);
Përfundimi i procedurës
&Në server
Funksioni FindC();
Drejtoritë e Kthimit. Kundërpalët. FindByRequisites ("TIN", "745107734623")
Funksioni i Fundit
Një funksion i thjeshtë do të bëhet këtu OpenForm() pa asnjë parametër.
&OnClient
Komanda e procedurës 1 (Komanda)
OpenForm( "Drejtoria. Kundërpalët. Formulari i objektit")
;
Përfundimi i procedurës
Ju duhet të kaloni një parametër Baza, vlera e së cilës do të jetë një referencë për objektin bazë të mbushjes. Kjo do të fillojë procedurën ProcessFill().
&OnClient
Komanda e procedurës 1 (Komanda)
Parametri= strukturë e re;
Parametri. Insert ("Baza", LinkToBuyerAccount) ;
OpenForm( "Dokument. Shitjet e Mallrave dhe Shërbimeve. Formulari i Objektit", Parametri);
Përfundimi i procedurës
Ky shembull do të krijojë një dokument Shitjet e mallrave dhe shërbimeve dhe plotësohet në bazë të një faturë për pagesë ndaj blerësit, lidhja në të cilën është transmetuar.
Përzgjedhja në format 1C mund të jetë e thjeshtë ose komplekse. Përzgjedhja e thjeshtë përfshin shprehje si Organizata = Horns and Hooves LLC. Përzgjedhja komplekse përfshin lloje të tjera krahasimi, p.sh. Në listë. Në këtë artikull do të shqyrtojmë organizimin e përzgjedhjes së thjeshtë, dhe një artikull i veçantë do t'i kushtohet përzgjedhjes komplekse.
Për të organizuar një përzgjedhje të thjeshtë, duhet të kaloni një parametër me një çelës në formularin që hapet Përzgjedhja, vlera do të jetë një strukturë në të cilën çelësi është emri i fushës së listës dinamike dhe vlera është të dhënat që kërkohen.
Për shembull, le të hapim formularin e listës së drejtorive Numrat GTD dhe bëni një përzgjedhje atje nga elementi i pronarit - drejtorisë Nomenklatura.
&OnClient
Komanda e procedurës 1 (Komanda)
Parametri= strukturë e re;
përzgjedhja= Struktura e re;
Përzgjedhja. Insert("Owner", LinkToNomenklature) ;
Parametri. Insert("Zgjedhja", Përzgjedhja) ;
OpenForm( "Direktori. Numrat GTD. Formulari i listës", Parametri);
Përfundimi i procedurës
Për ta bërë këtë, do t'ju duhet çelësi i regjistrimit të regjistrit të informacionit.
Çelësi i regjistrimit- këto janë vlerat e të gjitha matjeve dhe periudha (nëse regjistri është periodik). Kjo do të thotë, një çelës regjistrimi është parametri me të cilin një rekord mund të identifikohet në mënyrë unike.
Algoritmi i hapjes është si më poshtë:
&OnClient
Komanda e procedurës 1 (Komanda)
Parametri= strukturë e re;
KeyParameters= Struktura e re;
Parametrat kyç. Insert("Nomenklatura", LinkToNomenklatura) ;
Parametrat kyç. Insert("PriceType", LinkToPriceType) ;
Parametrat kyç. Insert("Periudha", Data);
KeyArray = Array i ri;
KeyArray. Shto (Parametrat kyçe) ;
EntryKey = E re( "Çelësi i regjistrimit të informacionit. Nomenklatura e çmimeve", KeyArray);
Parametri. Insert("Key", Record Key) ;
OpenForm( "Regjistri i informacionit. Çmimet e nomenklaturës. Formulari i regjistrimit", Parametri);
Përfundimi i procedurës
Kur hapni një formular të një objekti ekzistues, përveç emrit të formularit, duhet të tregoni edhe objektin, forma e të cilit duhet të hapet. Për ta bërë këtë, përdorni parametrin e formës kryesore dhe një lidhje me objektin me interes për ne.
Për shembull, nëse nga forma e listës së organizatave duhet të hapni formën e organizatës në të cilën ndodhet kursori, mund ta bëni këtë në mënyrën e mëposhtme:
Parametrat e formularit i kalojmë në formën e një strukture, ku emri i elementit të strukturës korrespondon me emrin e parametrit të formës, dhe vlera është vlera në të cilën duam të vendosim parametrin e formës.
Nëse dëshironi të hapni jo formën kryesore, por një formë arbitrare të një objekti të krijuar në konfigurues, në vend të emrit standard të formës kryesore (ObjectForm), tregoni fjalën Forma e ndjekur nga një pikë - emri i formës së krijuar në konfiguruesin.
Për shembull:
ReferenceToDirectoryElement = Elements.List.CurrentRow; FormParameters = Struktura e re ("Key", ReferenceToDirectoryElement); OpenForm("Directory.Organizations.Form.UniversalObjectForm",FormParameters);
Duhet të theksohet se në rastin kur, përveç një lidhjeje me një objekt, nuk duhet të kalohen parametra në formularin që hapet dhe është forma kryesore e objektit ekzistues që nevojitet, mund të përdorni një metodë më të thjeshtë. - hapni formularin duke përdorur procedurën OpenValue ():
OpenValue (Items.List.CurrentRow);
Kjo metodë është më pak e gjithanshme, por në disa raste kursen kohë dhe përpjekje. Për shembull, në rastin e shqyrtuar, një rresht i tillë mund të zëvendësojë të gjithë procedurën me tre rreshta që kemi shkruar më parë.
Sidoqoftë, duhet pasur kujdes kur përdorni këtë procedurë. Në disa raste, mund të shkaktojë thirrje shtesë në server, për shembull, kur ju duhet të hapni një formular artikulli të drejtorisë hierarkike. Kur përdorni këtë procedurë, platforma do të bëjë një thirrje shtesë në server për të përcaktuar nëse një element është grup apo jo, pasi duhet të hapen forma të ndryshme për elementin dhe për grupin.
Në të njëjtën kohë, ky informacion mund t'i njihet paraprakisht zhvilluesit brenda algoritmit të tij dhe, duke përdorur funksionin OpenForm(), zhvilluesi mund të hapë formularin e dëshiruar pa thirrje shtesë në server, duke specifikuar menjëherë emrin standard të kryesorit. formë.