Zëvendësimi i vlerave në drejtoritë 1c. Si të vendosni organizatën kryesore për zëvendësim në dokumente

Detyra jonë është si më poshtë. Tani e ruajmë çmimin e një artikulli në një regjistër të veçantë informacioni. Kur krijojmë ose ndryshojmë një dokument të Ofrimit të Shërbimit dhe shtojmë ndonjë artikull në pjesën tabelare, duam që çmimi aktual i këtij artikulli, i marrë nga regjistri i informacionit dhe që korrespondon me datën e dokumentit, të futet menjëherë në dokument.

Për ta bërë këtë duhet të bëjmë dy gjëra.

Fillimisht, shkruani një funksion të caktuar që do të kthejë çmimin aktual të artikullit dhe më pas thirrni këtë funksion në momentin kur artikulli shtohet në dokument dhe zëvendësoni çmimin e artikullit që ky funksion do të kthejë në dokument.

Meqenëse ka shumë të ngjarë të kemi nevojë për një "shërbim" të tillë jo vetëm në këtë dokument, por edhe në dokumente të tjera që përmbajnë nomenklaturë në pjesën tabelare, ne do ta vendosim funksionin në një vend "të aksesueshëm publikisht" - në një modul të përbashkët.

Në modalitetin e konfiguruesit

Funksioni që kthen çmimin e një artikulli

Së pari, ne do të krijojmë funksionin RetailPrice(), i cili do të na kthejë çmimin aktual të shitjes me pakicë të artikullit dhe do ta vendosim atë në modulin e konfigurimit të përgjithshëm.

Le të hapim konfiguruesin, në degën e moduleve të përgjithshme të përgjithshme, të shtojmë një objekt të ri konfigurimi Module dhe ta quajmë WorkWithDirectories.

Ne shohim që moduli ka kutinë e kontrollit Server të zgjedhur si parazgjedhje. Kjo do të thotë që instancat e këtij moduli do të kompilohen vetëm në anën e serverit.

Le të kontrollojmë kutinë e kontrollit Call server në mënyrë që procedurat dhe funksionet e eksportit të këtij moduli të mund të thirren nga klienti (Fig. 9.9).

Le të vendosim tekstin e mëposhtëm në të (Lista 9.1).

Le të shpjegojmë këtë funksion.

Për të marrë çmimin me pakicë, ne do t'i kalojmë funksionit dy parametra:

CurrentDate është një parametër i llojit të datës që përcakton pikën në boshtin kohor në të cilin ne jemi të interesuar për vlerën e çmimit me pakicë.

Në trupin e funksionit, ne fillimisht krijojmë një objekt ndihmës Selection.

Kjo është një strukturë që përmban përzgjedhje sipas dimensioneve të regjistrit. Me ndihmën e tij, ne përcaktojmë se do të jemi të interesuar për regjistrimet e regjistrave në të cilat dimensioni i regjistrit të Nomenklaturës është i barabartë me referencën ndaj elementit të drejtorisë që i është kaluar funksionit.

Emri i çelësit të strukturës ("Nomenklatura") duhet të përputhet me emrin e dimensionit të regjistrit të specifikuar në konfigurues, dhe vlera e elementit të strukturës (Elementi i Nomenklaturës) specifikon vlerën e zgjedhur për këtë dimension.

Në rreshtin e dytë, ne kontaktojmë menaxherin e regjistrit të informacionit të Çmimeve (Information Registers.Prices) dhe ekzekutojmë metodën GetLast(), e cila na kthen vlerat e burimeve të regjistrit të fundit të regjistrit që korrespondon me datën e kaluar në funksion ( CurrentDate) dhe vlerat e dimensioneve të regjistrit (Zgjedhja).

Metoda GetLast kthen një strukturë që përmban vlerat e burimeve, e cila ruhet në variablin ResourceValues. Në përgjithësi, një regjistër mund të ketë burime të shumta. Ekziston vetëm një burim në regjistrin tonë, por një strukturë që përmban një element të vetëm do të kthehet përsëri.

Prandaj, në rreshtin tjetër marrim çmimin me pakicë që kërkojmë duke specifikuar thjesht emrin e burimit të regjistrit që na nevojitet përmes një pike (ResourceValues.Price) dhe e kthejmë atë kur funksioni të ekzekutohet.

Tani ky funksion duhet të thirret në një moment në ekzekutimin e dokumentit.

Thirrja e një funksioni kur zgjidhni një artikull dhe plotësoni çmimin në dokument

Pra, detyra që na del përpara është si më poshtë. Kur redaktoni dokumentin e Ofrimit të Shërbimit, duhet të sigurohemi që fusha Çmimi të plotësohet automatikisht pasi përdoruesi të zgjedhë një shërbim. Për më tepër, çmimi i shërbimit duhet të përcaktohet në bazë të datës së krijimit të dokumentit.


Le të gjejmë dokumentin e Ofrimit të Shërbimit në konfigurues dhe të hapim formën e tij Document Form.

Klikoni dy herë në elementin e formës Lista e Nomenklaturës së Artikujve ose kliko me të djathtën për të hapur paletën e vetive për të (artiku i menysë së kontekstit të Vetive). Duke lëvizur në fund të listës, gjejmë ngjarjen OnChange, e cila ndodh pasi vlera e fushës ka ndryshuar.

Klikoni butonin e hapur B me ikonën e xhamit zmadhues në fushën e hyrjes.

Sistemi do të krijojë një shabllon për procedurën e mbajtësit për këtë ngjarje në modulin tonë të formularit dhe do të hapë skedën "Moduli i redaktuesit të formularit".

Le t'i shtojmë tekstin e mëposhtëm (Lista 9.2).

Le të komentojmë përmbajtjen e mbajtësit.

Rreshti i parë i mbajtësit është tashmë i njohur për ju nga procedurat Lista e artikujve Sasia në ndryshim dhe Lista e artikujve Çmimi në ndryshim. Së pari, marrim rreshtin aktual të pjesës tabelare të dokumentit, pasi do të na duhet më vonë dhe e ruajmë në variablin TabularPart Row.

Pastaj ne e quajmë funksionin tonë RetailPrice() nga moduli i përgjithshëm Working With Directories.

Si parametër i parë, i kalojmë këtij funksioni datën e dokumentit për të cilin duhet të marrim çmimin. Datën e dokumentit e marrim nga atributi kryesor i formës - Object.Date.



Funksioni kthen vlerën e fundit të çmimit dhe këtë vlerë e caktojmë në fushën Çmimi në rreshtin aktual të pjesës tabelare të dokumentit (TabularPartRow.Price).

Vini re se vetë procedura e listës së artikujve NomenclatureOnChange() fillon të funksionojë në modulin e formularit në anën e klientit, pasi është një mbajtës për ngjarjen interaktive të formularit. Kur krijoni një shabllon për këtë procedurë, platforma vendosi automatikisht direktivën e përpilimit &OnClient përpara përshkrimit të procedurës.

Pastaj thirret funksioni RetailPrice(). Meqenëse ky funksion nuk do të gjendet në anën e klientit, ekzekutimi do të transferohet në modulin e përbashkët Working with Directories, i cili funksionon në server. Pas përfundimit të funksionit, kodi i programit do të vazhdojë të ekzekutohet në klient.

Pse u përdor një "mashtrim" i tillë në këtë rast? Pse ishte e nevojshme të transferohej ekzekutimi i kodit në server?

Fakti është se çdo punë me bazën e të dhënave (leximi i të dhënave, shkrimi) është i mundur vetëm në server. Në këtë rast, na duhej të lexonim të dhënat më të fundit nga regjistri i informacionit për disa artikuj.

Veprime të tilla mund të kryhen vetëm në server, dhe nëse shikoni në asistentin e sintaksës për përshkrimin e metodës GetLast() të regjistrit të informacionit, do të vini re se kjo metodë është e disponueshme vetëm në server, në klientin e trashë dhe në lidhjen e jashtme.

Klienti i trashë dhe lidhja e jashtme janë aplikacione të klientëve të platformës së trashëguar që ekzistojnë për pajtueshmëri me zgjidhjet e aplikacioneve të vjetra.

Ne jemi duke zhvilluar një zgjidhje aplikacioni krejtësisht të re që funksionon në një klient të hollë ose një klient web. Prandaj, në rastin tonë, për të marrë ndonjë të dhënë nga baza e të dhënave, duhet të transferojmë ekzekutimin e kodit në server, të marrim të dhënat e nevojshme atje dhe t'i kthejmë këto të dhëna klientit. Kështu bëmë.

Në modalitetin 1C: Ndërmarrje

Le të kontrollojmë se si funksionon dokumenti ynë tani.

Le të hapim 1C: Enterprise në modalitetin e korrigjimit dhe të hapim regjistrin e informacionit të Çmimeve.

Për transistorin Philips, le të shtojmë një çmim të ri me një numër të ndryshëm (Fig. 9.10).

Tani le të hapim dokumentin Ofrimi i Shërbimit Nr. 1. Siç e mbani mend, me këtë dokument ne sapo "shfrytëzuam" një transistor të tillë.

Le ta lëmë datën e dokumentit të pandryshuar dhe të përsërisim zgjedhjen e tranzistorit në kolonën Nomenklatura të pjesës tabelare të dokumentit. Çmimi i tranzistorit do të vendoset automatikisht në 01/07/2009. Kjo është vlera më e fundit e çmimit në datën e dokumentit (Fig. 9.11).

Tani le të ndryshojmë datën e dokumentit në 07/13/2009 dhe të përsërisim përsëri zgjedhjen e tranzitorit. Do të vendoset një vlerë e re çmimi, më e fundit për këtë datë (Fig. 9.12).

Kështu, çmimi i shërbimit që është aktual në momentin e krijimit të dokumentit shfaqet në dokument.


Pyetje kontrolli

1. Cili është qëllimi i objektit të konfigurimit të Regjistrit të Informacionit?

2. Çfarë veçorish ka objekti i konfigurimit të Regjistrit të Informacionit?

3. Cilat janë ndryshimet kryesore midis regjistrit të informacionit dhe regjistrit të akumulimit.

4. Cilat fusha përcaktojnë çelësin e unike të regjistrit të akumulimit.

5. Çfarë është një regjistër periodik informacioni dhe çfarë është një regjistër i pavarur informacioni.

6. Si të krijohet një regjistër periodik informacioni.

7. Cili është dimensioni kryesor i një regjistri.

8. Si të merrni vlerat e burimeve të regjistrimeve më të fundit të regjistrit duke përdorur gjuhën e integruar.

Detyra 1. Krijimi i një liste rënëse

1. Hapni skedarin Ex03_1.xlsx.

2. Në një fletë Çmimi Ekziston një tabelë e mallrave me çmime.

3. Jepni emra vargjeve me emrin e produktit ( Produkt) dhe tabela e çmimeve ( Tabela) (foto 1). Emrat e diapazonit janë specifikuar për përdorimin e tyre të mëtejshëm në formula dhe për ta bërë më të lehtë punën me vargjet. Emri i diapazonit mund të vendoset përmes fushës së emrit të qelizës ose zgjidhni komandën në menynë e kontekstit Cakto një emër(natyrisht, në një rast ose në një tjetër, një varg qelizash duhet të zgjidhet më parë, siç tregohet në figurën 1).

Foto 1

4. Në fletën e shitjes në kolonë Emri i produktit krijoni një listë rënëse dhe plotësoni atë me të dhëna.

Për të krijuar një listë drop-down, ju duhet të zgjidhni qelizat (mund të keni disa në të njëjtën kohë) në të cilat dëshironi të merrni një listë rënëse dhe zgjidhni në skedën Të dhënat butonin Kontrollimi i të dhënave (Figura 2).

Figura 2

Në skedën e parë Opsione nga lista rënëse Lloji i të dhënave zgjidhni një opsion Listë dhe futeni në rresht Burimi= dhe emri i diapazonit me të dhënat e kërkuara (d.m.th. =Produkt) (Figura 3). Klikoni Ne rregull.

Rezultati i krijimit të një liste rënëse është paraqitur në Figurën 4.

Nëse grupi i vlerave në burim mund të ndryshojë, është më mirë të futni ose hiqni të dhënat në mes të listës.

Figura 3

Figura 4

Prezantimi i funksioneve MATCH dhe INDEX

Funksionet MATCH dhe INDEX përdoren kryesisht për të zëvendësuar automatikisht të dhënat në një tabelë nga një gamë e caktuar.

Sintaksa e funksionit

MATCH(vlera_kërkuese, grupi, lloji i përputhjes)

Arrayështë një bllok i përbërë nga një kolonë ose një rresht.

Lloji_përputhjeështë numri -1, 0 ose 1.

Nëse lloji i ndeshjesështë e barabartë me 1, atëherë funksioni KËRKONI gjen vlerën më të madhe që është më e vogël se kërkim_vlera ose e barabartë me të. Shikuar varg duhet të renditet në rend rritës.

Nëse lloji i ndeshjes barazohet 0, Se Funksioni MATCH gjen vlerën e parë që është saktësisht e barabartë me argumentin vlerë_kërkuese. Shikuar varg mund të jetë i çrregullt.

Nëse lloji i ndeshjesështë e barabartë me -1, atëherë funksioni KËRKONI gjen vlerën më të vogël që është më e madhe se vlerë_kërkuese, ose e barabartë me të. Shikimi_array duhet të renditet në rend zbritës.

Nëse lloji i ndeshjesështë lënë jashtë, supozohet të jetë e barabartë me 1 .

Funksioni KËRKONI kthen pozicionin e vlerës së kërkuar në grup, jo vetë vlerën.

Funksioni INDEKSI ka dy forma. Ne do të shqyrtojmë vetëm një.

INDEX (tabela; numri_rreshtit; numri_kolonave)

Ky funksion zgjedh nga një bllok (tabela) drejtkëndëshe një element të specifikuar nga numrat e rreshtave dhe kolonave, dhe këta numra numërohen nga elementi i sipërm majtas i bllokut.

Le të shohim se si funksionojnë këto funksione duke përdorur shembuj specifikë.

Detyra 2. Hyrje në funksionin MATCH

Duke përdorur funksionin MATCH(), përcaktoni pozicionin e produktit me emrin "Jogurt" në gamë Produkt. Për këtë:

1. në një libër elektronik Ex03_1.xlsx shkoni në fletë Çmimi dhe vendoseni kursorin e fletës në çdo qelizë të lirë;

2. fut formulën =MATCH("Kos";Produkt;0) në këtë qelizë, d.m.th. Ne tregojmë duke përdorur këtë funksion që duhet të gjejmë elementin "Kos" (vlera e tekstit në funksione tregohet gjithmonë në thonjëza) në diapazonin Produkt, lloji i përputhjes 0 – përputhje e saktë;

3. shtypni Enter. Si rezultat, duhet të merrni numrin 7 (Figura 5).

Figura 5

Në të vërtetë, nëse shikoni gamën Produkt, atëherë pozicioni i kosit korrespondon me këtë shifër. Vlen të kujtohet se pozicioni i vlerës në grup, d.m.th. në një interval të caktuar, të numëruar nga fillimi i diapazonit. Rezulton se nëse shtojmë një rresht të ri në fillim të tabelës së të dhënave, vlera "Kos" do të zhvendoset në rreshtin numër 8, por diapazoni Produkt fillon me vlerën "Qumështi", kështu që nga fillimi i diapazonit pozicioni i kosit në çdo rast do të korrespondojë me numrin 7 (Figura 6).

Figura 6

Ju lutemi vini re se vlera për funksionin MATCH() mund të specifikohet ose vetë vlera ose emri i qelizës në të cilën ndodhet kjo vlerë. Për shembull, hyrja =MATCH(A7;Produkt;0) do të japë të njëjtin rezultat si kur përdorni hyrjen =MATCH("Kos";Produkt;0).

Detyra 3. Hyrje në funksionin INDEX

Le të kujtojmë se funksioni INDEX() zgjedh nga një bllok (tabela) drejtkëndëshe një element të specifikuar nga numrat e rreshtave dhe kolonave, dhe këta numra numërohen nga elementi majtas lart i bllokut.

Përdorni funksionin INDEX() për të gjetur në një varg Produkt element i vendosur në pozicionin e pestë. Për këtë:

1. në një libër elektronik Ex03_1.xlsx në një fletë Çmimi vendosni kursorin e fletës në çdo qelizë të lirë;

2. Futni funksionin e mëposhtëm në këtë qelizë =INDEX(Produkt;5). Shtypni Enter. Rezultati është paraqitur në Figurën 7.

Figura 7

Vini re se ne specifikuam vetëm vlerat e gamës dhe numrin e rreshtit për funksionin INDEX. Ne nuk treguam numrin e kolonës. Ky parametër është opsional nëse kërkojmë një vlerë në një tabelë (varg) të përbërë nga një kolonë. Nëse duhet të gjejmë një vlerë në një tabelë (varg) të përbërë nga disa kolona, ​​atëherë në formulë, për një kërkim më të saktë të vlerës, është e nevojshme të tregohet numri i kolonës.

Në qelizën e re, futni formulën =INDEX(Tabela;8;2). Si rezultat, do të gjeni koston e proshutës (Figura 8).

Figura 8

Zëvendësimi automatik i të dhënave

Kur punoni me një listë rënëse, mund të automatizoni futjen e të dhënave në tabelë. Për shembull, ekziston një listë çmimesh që përmban emrat e mallrave dhe çmimet e tyre. Ju mund të organizoni zgjedhjen e emrit të produktit nga lista dhe zëvendësimin automatik të çmimit të produktit në tabelën përfundimtare.

Zëvendësimi automatik i të dhënave nga një tabelë kërkimi bazohet në përdorimin e kombinuar të funksioneve INDEX dhe MATCH.

Detyra 4. Kombinimi i funksioneve MATCH dhe INDEX

Në e-libër Ex03_1.xlsx në një fletë Shitjet në një kolonë Çmimi, duke përdorur funksionet MS Excel, sigurojnë zëvendësimin automatik të kostos së mallrave nga fleta Çmimi, në varësi të vlerës së zgjedhur nga lista rënëse në fletë Shitjet.

1. Vendosni kursorin e fletës së punës në qelizën C2 dhe futni formulën e mëposhtme në të:

2. Shtypni Enter. Si rezultat, do të merrni në qelizën C2 koston e produktit, emri i të cilit tregohet në kolonën ngjitur (Figura 9). Kur zgjidhni një emër tjetër produkti nga lista rënëse, vlera e çmimit do të ndryshojë në përputhje me rrethanat.

Figura 9

3. Duke përdorur shënuesin e plotësimit automatik, dublikojeni këtë formulë në fund të tabelës (Figura 10).

Figura 10

Le ta deshifrojmë këtë formulë. Kjo formulë fillon me funksionin MATCH, i cili na lejon të gjejmë pozicionin e vlerës nga qeliza B2 në fletën e punës Shitjet në varg Produkt nga shikimi Çmimi, dhe lloji i saktësisë 0. Për shembull, nëse përdorni listën e produkteve, e cila është paraqitur në figurën 10, atëherë funksioni SEARCH kërkon pozicionin e bukës, emri i së cilës tregohet në qelizën B2 nga kolona. Emri i produktit në varg Produkt në një fletë Çmimi. Ky pozicion do të jetë i barabartë me 3. Prandaj, në memorien e kompjuterit formula që kemi futur është

=INDEX(Tabela, MATCH(B2, Produkt, 0), 2)

do të marrë formën

=INDEX(Tabela,3,2)

Parametri "3" është rezultat i funksionit SEARCH.

Më pas, funksioni INDEX hyn në lojë, i cili do të kërkojë në interval Tabela në një fletë Çmimi vlera e vendosur në kryqëzimin e rreshtit të tretë dhe kolonës së dytë. (Ju lutemi kujtoni se diapazoni Tabela përbëhet nga dy kolona). Kjo vlerë do të jetë kostoja e produktit, në këtë rast buka = ​​27.

Detyra 5. Hartimi i tabelës përfundimtare

Në një fletë Shitjet në një kolonë sasi futni vlera arbitrare. Llogaritni vlerat në një kolonë Total.

Detyra 6. Detyrë e pavarur

Hapni skedarin Kornizat.xls . Kërkohet të automatizohen ndryshimet në paga në një fletë Personeli .

Për shembull, është e nevojshme të transferohen disa nga menaxherët dhe të transferohen menaxherët ose konsulentët e lartë te ngarkuesit. Ju duhet ta kryeni këtë operacion për katër punonjës. Bashkë me pozicionin duhet të ndryshojë edhe paga.

Krijoni një fletë të re dhe emërtoni atë Shtetit .

Kopjo në fletë Shtetit kolonat Titulli i punës Dhe Paga.

Hiqni punonjësit e kopjuar. Për këtë:

1. Zgjidhni kolonat e pozicionit dhe pagës.

2. Në skedën Të dhënat klikoni butonin Hiqni dublikatat .

3. Hiqni shenjën e kontrollit nga kolona Paga.

4. Klikoni butonin Ne rregull.

Në mënyrë që të jetë në gjendje të ndryshojë pozicionet, në fletë Personeli Në kolonën e pozicionit, krijoni një listë rënëse. Në këtë rast, do t'ju duhet të ndryshoni edhe pagën zyrtare për ta bërë këtë, ne do ta automatizojmë këtë proces në mënyrë që kur të ndryshoni pozicionin tuaj, vetë Excel-i të ndryshojë pagën; Për ta bërë këtë, ne përdorim funksionet: SEARCH dhe INDEX.

Udhëzimet

1. Zgjidhni në fletë Shtetit varg pozicionesh. Jepni një emër gamës së zgjedhur titulli i punës.

2. Zgjidhni në fletë Shtetit diapazoni i pagave. Jepni një emër gamës së zgjedhur paga.

3. Në një fletë Punonjësit në kolonë Paga shkruani formulën që do të kërkoni në fletën e punës Shtetit në varg titulli i punës pozicioni që korrespondon me pozicionin e punonjësit, dhe më pas nga diapazoni paga fletë Shtetit ka futur një pagë që korrespondon me pozicionin e gjetur.

4. Pasi të keni futur formulën, sigurohuni që paga që rezulton të përputhet me pagën e pozicionit të punonjësit nga fleta Shtetit.

5. Ndryshimi i pagës së Ch. kontabilist në fletë Shtetit. Kontrolloni nëse paga përkatëse ka ndryshuar në fletë Punonjësit.

/
Kontabiliteti për Ukrainën /
Puna me dokumente, libra referimi dhe raporte

Si të vendosni organizatën kryesore për zëvendësim në dokumente

Ky seksion përshkruan se si të krijohet një organizatë parësore për zëvendësimin automatik në dokumente të reja.

Instalimi nga drejtoria

Në drejtorinë e organizatave (menyja "Ndërmarrja" - "Organizatat") organizata kryesore është e theksuar me shkronja të zeza. Kjo do të thotë që gjatë krijimit të dokumenteve të reja do të futet automatikisht.

Për ta bërë një organizatë tjetër kryesore, duhet të zgjidhni këtë organizatë në listë dhe të klikoni mbi butonin Vendosja kryesore në panelin e komandës.

Kodi i lidhjes Preoix Emri l w 00000001 me Dobro 000000001 DB Do5ro5ut 00000006 DU Do st eka dhe instalimi 00000005 NF National S0000001 nsho Organizata jonë" width="757" height="216" border="0"

SHËNIM
Organizata kryesore ruhet në cilësimet e përdoruesit. Për secilin përdorues, organizata kryesore tregohet individualisht.

Përzgjedhja e dokumenteve sipas organizatës kryesore

Në cilësimet përdorues(menyja "Shërbimi" - " Cilësimet e përdoruesit") mund të vendosni modalitetin për zgjedhjen automatike të dokumenteve nga organizata kryesore. Kjo do të thotë se vetëm dokumentet e organizatës kryesore do të shfaqen në të gjitha revistat dhe listat e dokumenteve.

Përzgjedhja e dokumenteve në revista kontrollohet nga flamuri Kontabilitet për të gjitha organizatat. Kur instalohet, revistat shfaqin dokumente për të gjitha organizatat. Kur flamuri pastrohet, vetëm dokumentet për organizatën kryesore shfaqen në revista.

Nëse është e nevojshme, organizata kryesore mund të ndryshohet drejtpërdrejt në cilësimet e përdoruesit në grupin "Vlerat bazë për zëvendësim në dokumente dhe drejtori".

Le të zgjidhim problemin e mëposhtëm. Është e nevojshme që kur krijoni ose ndryshoni një dokument të Ofrimit të Shërbimit dhe kur shtoni ndonjë gamë shërbimesh në pjesën tabelare, të futet menjëherë çmimi aktual i marrë nga regjistri i informacionit dhe që korrespondon me datën e dokumentit.

Për ta bërë këtë ju duhet:

    shkruani një funksion RetailPrice që do të kthejë çmimin aktual;

    thirrni funksionin kur një artikull i ri shtohet në dokument.

Meqenëse një funksion i tillë mund të nevojitet në të ardhmen, ne do ta shkruajmë atë në një vend "të aksesueshëm publikisht" - në një modul të përbashkët.

1. Krijo një funksion Çmimi me pakicë në degën e Përgjithshme – Modulet e përgjithshme me emërtimin Puna me drejtoritë. Vendosni flamurin Thirrja e serverit(në mënyrë që procedurat e eksportit dhe funksionet e këtij moduli të mund të thirren nga klienti) (Fig. 71a).

Oriz. 71a. Vetitë e zakonshme të modulit

2. Vendosni tekstin e mëposhtëm në modul.

Funksioni Çmimi i shitjes me pakicë (Data aktuale,Elementi i nomenklaturës së shërbimit)Eksport

//Krijoni një objekt ndihmës Përzgjedhja

Përzgjedhja = Struktura e re ("Nomenklatura e Shërbimit", Elementi i Nomenklaturës së Shërbimit);

//Merr vlerat aktuale të burimeve të regjistrit

ResourceValues=InformationRegisters.Prices.GetLast(Data aktuale, Zgjedhja);

ReturnResourceValue.Çmimi;

Funksioni i Fundit

Le të shpjegojmë funksionin.

Për të marrë çmimin me pakicë, duhet të kaloni dy parametra në funksion:

    Data aktuale– një parametër i llojit Date, përcakton pikën në boshtin kohor në të cilën ne jemi të interesuar për vlerën e çmimit me pakicë.

Kjo strukturë përmban Përzgjedhja sipas matjeve të regjistrit. Me ndihmën e tij, përcaktohet dimensioni i kërkuar i regjistrit të Nomenklaturës së Shërbimeve, i cili është i barabartë me referencën ndaj elementit të drejtorisë që i kalohet funksionit.

Emri i çelësit të strukturës ("H Nomenklatura e Shërbimeve") duhet të përputhet me emrin e dimensionit të regjistrit të specifikuar në konfigurues dhe vlerën e elementit të strukturës ( Elementi i Nomenklaturës së Shërbimeve) specifikon vlerën e zgjedhur për këtë dimension.

Rreshti i dytë përmban një thirrje për menaxherin e regjistrit të informacionit Çmimet ( Regjistrat e Çmimeve) dhe ekzekutimin e metodës RunLast (), i cili kthen vlerën e burimit të hyrjes më të fundit të regjistrit që korrespondon me datën e kaluar në funksion ( Data aktuale) dhe regjistroni vlerat e matjes Përzgjedhja.

Metoda Get Latest kthen një strukturë që përmban vlerat e burimeve, e cila ruhet në një variabël Vlerat e burimeve.

Në rreshtin tjetër marrim çmimin e kërkuar me pakicë duke treguar emrin e burimit të kërkuar të regjistrit të ndarë me një pikë ( Burimet e vlerës.Çmimi) dhe kthejeni atë kur funksioni të ekzekutohet.

Se. ky funksion mund të thirret në një moment në kohë.

Duhet të hapet Formulari i dokumentit Ekzekutimi i Shërbimeve(është krijuar më herët). NË Moduli i formularit e nevojshme shtoni Procedurën kur ndryshoni.

Për ta bërë këtë, klikoni dy herë në elementin e formës Lista e artikujve dhe shërbimeve (Fig. 71b).

Oriz. 71b. Elementet e dokumentit të performancës së shërbimit

Në dritaren e vetive në ngjarje Kur ndryshon krijoni një mbajtës ngjarjesh me tekstin e mëposhtëm:

&OnClient

Lista e procedurave të shërbimit të nomenklaturës kur ndryshon (element)

//Merrni rreshtin tjetër të seksionit të tabelës

TabularPart Rreshti = Elementet.Lista e nomenklaturës.Të dhënat aktuale;

//Përcaktoni çmimin

TabularPart Row.Price = Puna me Directories.RetailPrice(Object.Date, TabularPartLine.Service);

Fundi i procedurës

Le të shpjegojmë funksionin.

Rreshti i parë dihet tashmë: së pari marrim rreshtin aktual të pjesës tabelare të dokumentit, sepse do të na duhet në të ardhmen dhe do ta ruajmë në një variabël RowTabularPart.

Pastaj e quajmë funksionin Çmimi me pakicë() nga një modul i përbashkët Puna me drejtoritë.

Parametri i parë i funksionit është kalimi i datës së dokumentit për të cilin duhet të merrni çmimin. Ne marrim datën e dokumentit nga detajet kryesore të formularit - Objekti.Data.

Funksioni kthen vlerën e fundit të çmimit dhe kjo vlerë i caktohet fushës Çmimi në rreshtin aktual të pjesës tabelare të dokumentit ( RowTabularPart.Çmimi).

Ju lutemi vini re se procedura Lista e nomenklaturësServiceWhenChanged() fillon të punojë në modulin e formës në anën e klientit, sepse Ky është mbajtësi ndërveprues i ngjarjeve të formularit. Kur krijoni një shabllon për këtë procedurë, platforma do të vendosë automatikisht një direktivë përpilimi përpara përshkrimit të procedurës &OnClient.

Pastaj e quajmë funksionin Çmimi me pakicë(). Sepse ky funksion nuk do të gjendet në anën e klientit, atëherë ekzekutimi do të transferohet në modulin e përgjithshëm Puna me drejtoritë, i cili funksionon në server. Pas përfundimit të funksionit, kodi i programit do të vazhdojë të ekzekutohet në klient.

Le të kontrollojmë hapat e mësipërm dhe të hapim aplikacionin në modalitetin 1C: Enterprise. Le të punojmë me konfigurimin e zhvilluar.

HYRJA E TË DHËNAVE NË DB

1. Vendosni të paktën 8 dokumente Ofrimi i shërbimeve në aplikacion.