IX. Az árak automatikus helyettesítése a dokumentumban tételek kiválasztásakor. Az árak automatikus helyettesítése bizonylattal cikk kiválasztásakor Hogyan állítsuk be a fő szervezetet a helyettesítésre a dokumentumokban

Feladatunk a következő. Egy cikk árát mostantól külön információs nyilvántartásban tároljuk. Amikor létrehozunk vagy módosítunk egy Szolgáltatás-bizonylatot, és bármely tételt hozzáadunk a táblázatos részhez, azt szeretnénk, hogy ennek a tételnek az információs nyilvántartásból nyert és a bizonylat dátumának megfelelő aktuális ára azonnal bekerüljön a bizonylatba.

Ehhez két dolgot kell tennünk.

Először írjon egy bizonyos függvényt, amely visszaadja a cikk aktuális árát, majd hívja meg ezt a függvényt abban a pillanatban, amikor a cikk hozzáadódik a dokumentumhoz, és helyettesítse a cikk árát, amelyet ez a függvény vissza fog adni a dokumentumban.

Mivel nagy valószínűséggel nem csak ebben a dokumentumban lesz szükségünk ilyen „szolgáltatásra”, hanem más olyan dokumentumokban is, amelyek a táblázatos részben tartalmazzák a nómenklatúrát, a funkciót valamilyen „nyilvánosan elérhető” helyre - egy közös modulba - helyezzük el.

Konfigurátor módban

Egy cikk árát visszaadó függvény

Először létrehozzuk a RetailPrice() függvényt, amely visszaadja nekünk a cikk aktuális kiskereskedelmi árát, és elhelyezzük az általános konfigurációs modulban.

Nyissuk meg a konfigurátort az Általános Általános modulok ágban, adjunk hozzá egy új Module konfigurációs objektumot, és hívjuk WorkWithDirectories-nak.

Látjuk, hogy a modulban a Szerver jelölőnégyzet alapértelmezés szerint be van jelölve. Ez azt jelenti, hogy ennek a modulnak a példányai csak a szerver oldalon lesznek lefordítva.

Jelöljük be a Szerver hívása jelölőnégyzetet, hogy a modul exportálási eljárásai és funkciói a kliensből hívhatók legyenek (9.9. ábra).

Helyezzük el benne a következő szöveget (9.1. lista).

Magyarázzuk el ezt a függvényt.

A kiskereskedelmi ár meghatározásához két paramétert adunk át a függvénynek:

A CurrentDate egy Dátum típusú paraméter, amely meghatározza az időtengely azon pontját, amelynél érdeklődünk a kiskereskedelmi ár érték iránt.

A függvény törzsében először létrehozunk egy Selection helper objektumot.

Ez egy olyan struktúra, amely regiszterdimenziók alapján történő kiválasztást tartalmaz. Segítségével meghatározzuk, hogy olyan regiszterbejegyzésekre leszünk kíváncsiak, amelyekben a Nomenclature regiszter dimenziója megegyezik a függvénynek átadott könyvtárelemre való hivatkozással.

A struktúrakulcs nevének ("Nómenklatúra") meg kell egyeznie a konfigurátorban megadott regiszterdimenzió nevével, a struktúraelem (Nómenklatúra elem) értéke pedig az ehhez a dimenzióhoz kiválasztott értéket adja meg.

A második sorban felvesszük a kapcsolatot az Árak információs regiszter kezelőjével (Information Registers.Prices) és végrehajtjuk a GetLast() metódust, amely visszaadja nekünk a függvénynek átadott dátumnak megfelelő legutolsó regiszterrekord erőforrásértékeit ( CurrentDate) és a regiszterdimenziók értékei (Kiválasztás).

A GetLast metódus egy erőforrásértékeket tartalmazó struktúrát ad vissza, amelyet a ResourceValues ​​változóban tárol. Általánosságban elmondható, hogy egy regiszter több erőforrással is rendelkezhet. A regiszterünkben csak egy erőforrás található, de egy elemet tartalmazó struktúra továbbra is visszaadásra kerül.

Ezért a következő sorban úgy kapjuk meg a keresett kiskereskedelmi árat, hogy egyszerűen megadjuk egy ponton keresztül a szükséges regiszter erőforrás nevét (ResourceValues.Price), és a függvény végrehajtásakor visszaadjuk.

Most ezt a függvényt meg kell hívni a dokumentum végrehajtásának egy pontján.

Funkció hívása cikk kiválasztásakor és az ár kitöltése a bizonylatban

Tehát a következő feladat áll előttünk. A Szolgáltatásnyújtás dokumentum szerkesztésekor ügyelnünk kell arra, hogy az Ár mező automatikusan kitöltésre kerüljön, miután a felhasználó szolgáltatást választott. Ezenkívül a szolgáltatás árát a dokumentum létrehozásának dátuma alapján kell meghatározni.


Keressük meg a Service Provision dokumentumot a konfigurátorban, és nyissuk meg a Document Form űrlapot.

Kattintson duplán a List of ItemsNomenclature űrlapelemre, vagy kattintson a jobb gombbal a tulajdonságpaletta megnyitásához (Tulajdonságok helyi menüelem). A lista végére görgetve megtaláljuk az OnChange eseményt, amely egy mező értékének megváltozása után következik be.

Kattintson a B megnyitás gombra a nagyító ikonnal a beviteli mezőben.

A rendszer létrehoz egy sablont az esemény kezelői eljárásához az űrlapmodulunkban, és megnyitja az Űrlapszerkesztő modul lapot.

Adjuk hozzá a következő szöveget (9.2-es lista).

Kommentáljunk a kezelő tartalmához.

A kezelő első sora már ismerős az Ön számára a Változáskori cikkek mennyisége és Cikklista Változáskori ár eljárásokból. Először megkapjuk a dokumentum táblázatos részének aktuális sorát, mert később szükségünk lesz rá, és elmentjük a TabularPart Row változóba.

Ezután meghívjuk a RetailPrice() függvényünket a Working With Directories általános modulból.

Első paraméterként ennek a függvénynek adjuk át annak a bizonylatnak a dátumát, amelynek az árát meg kell kapnunk. A dokumentum dátumát a fő űrlapattribútumból kapjuk - Object.Date.



A függvény az utolsó árértéket adja vissza, és ezt az értéket rendeljük a bizonylat táblázatos részének aktuális sorában található Ár mezőhöz (TabularPartRow.Price).

Ne feledje, hogy maga az Item List NomenclatureOnChange() eljárás indul el az űrlap modulban az ügyféloldalon, mivel ez az űrlap interaktív eseményének kezelője. Az eljáráshoz sablon létrehozásakor a platform automatikusan az &OnClient fordítási direktívát helyezte el az eljárás leírása elé.

Ezután a RetailPrice() függvény meghívásra kerül. Mivel ez a funkció nem található meg a kliens oldalon, a végrehajtás átkerül a kiszolgálón futó Working with Directories közös modulba. A funkció befejezése után a programkód továbbra is futni fog a kliensen.

Miért alkalmaztak ilyen „trükköt” ebben az esetben? Miért volt szükség a kódvégrehajtás átvitelére a szerverre?

Az a tény, hogy az adatbázissal végzett bármilyen munka (adatok olvasása, írása) csak a szerveren lehetséges. Ebben az esetben az információs nyilvántartás legfrissebb adatait kellett kiolvasnunk valamilyen tételnél.

Ilyen műveleteket csak a szerveren lehet végrehajtani, és ha a szintaktikai asszisztensben megkeresi az információs regiszter GetLast() metódusának leírását, akkor észreveszi, hogy ez a metódus csak a szerveren érhető el, a vastag kliensben ill. a külső csatlakozásban.

A vastag kliens és a külső kapcsolat örökölt platform-kliens-alkalmazások, amelyek a régebbi alkalmazásmegoldásokkal való kompatibilitás érdekében léteznek.

Egy teljesen új alkalmazási megoldást fejlesztünk, amely vékony kliensben vagy webes kliensben is működik. Ezért esetünkben ahhoz, hogy bármilyen adatot megszerezzünk az adatbázisból, a kódvégrehajtást át kell vinnünk a szerverre, ott kell megkapnunk a szükséges adatokat és vissza kell juttatnunk ezeket az adatokat a kliensnek. Ezt tettük.

1C:Vállalati módban

Most nézzük meg, hogyan működik a dokumentumunk.

Indítsuk el az 1C:Enterprise programot hibakeresési módban, és nyissuk meg az Árak információs regisztert.

A Philips tranzisztorhoz adjunk hozzá új árat más számmal (9.10. ábra).

Most nyissuk meg a Szolgáltatásnyújtás No. 1 dokumentumot. Mint emlékszel, ezzel a dokumentummal csak „elhasználtunk” egy ilyen tranzisztort.

A dokumentum dátumát hagyjuk változatlanul, és ismételjük meg a tranzisztor kiválasztását a dokumentum táblázatos részének Nomenklatúra oszlopában. A tranzisztor ára automatikusan 2009.07.01. Ez a bizonylat dátumának legfrissebb árértéke (9.11. ábra).

Most változtassuk meg a dokumentum dátumát 2009.07.13-ra, és ismételjük meg a tranzisztor kiválasztását. Új árérték kerül beállításra, a legkésőbb erre a dátumra (9.12. ábra).

Így a szolgáltatásnak a bizonylat készítésekor aktuális ára megjelenik a bizonylatban.


Biztonsági kérdések

1. Mi a célja az Information Register konfigurációs objektumnak?

2. Milyen jellemzői vannak az Information Register konfigurációs objektumnak?

3. Melyek a fő különbségek az információs nyilvántartás és a felhalmozási nyilvántartás között?

4. Mely mezők határozzák meg a gyűjtőregiszter egyediségi kulcsát.

5. Mi az időszakos információnyilvántartás és mi az önálló információnyilvántartás.

6. Hogyan készítsünk időszakos információnyilvántartást.

7. Mi a regiszter vezető dimenziója.

8. Hogyan szerezheti meg a legfrissebb nyilvántartási bejegyzések erőforrásértékeit a beépített nyelv használatával.

Nagyon gyakran az 1C programban végzett munka során gyorsan be kell írnia több dokumentumot, vagy új objektumokat kell hozzáadnia a könyvtárakhoz (cikk típusa, szervezet, raktár, pénztárgép stb.). Ugyanakkor nem mindenki érti, hogyan kell automatizálni az alapértékek bevitelét, hogy létrehozásakor a szükséges értékek azonnal bekerüljenek a mezőkbe. Ebben a cikkben elmondom, hogyan kell ezt megtenni.
Az 1C program olyan mechanizmusokkal rendelkezik, amelyek lehetővé teszik a dokumentumok és referenciakönyvek részleteinek gyors kitöltését. Működésük alapján a következő típusokra oszthatók:

  • Egyértékű helyettesítés
  • Érték helyettesítése kiválasztással
  • Statisztikai adatok kitöltése
  • A korábban megadott adatok helyettesítése
  • Értékek helyettesítése mintával
  • Új dokumentum bevitele másolással

Egyetlen érték helyettesítése, amelyre a felhasználónak joga van.

Tegyük fel, hogy a szervezetnek három raktárral rendelkezik, ezek bekerülnek az adatbázisba. Ugyanakkor a menedzser csak egyből árusíthat árut. Új bizonylat létrehozásakor ez a raktár automatikusan bekerül. Ez a felhasználó által beállított engedélyek alapján működik. Vagyis az olyan objektumok jogainak kikapcsolásával, amelyekkel a felhasználó nem dolgozik, automatizálhatja az adatbevitelt.

Érték behelyettesítése a lista űrlapon megadott kijelölés alapján.

Ha a lista valamilyen részletre van beállítva (pénztárgép, bankszámla, raktár), akkor ez az adat automatikusan kitöltésre kerül az új bizonylatban. Például beállíthatja a pénztárgépenkénti kiválasztást a pénztárgép dokumentumok listája formájában. Új fizetési bizonylat kiállításakor a kiválasztott pénztárgép adatai automatikusan lekerülnek a listáról. És mivel a pénztárgéphez szervezet van megadva, a szervezetre vonatkozó információk automatikusan kitöltésre kerülnek. A kijelöléseket bármely dokumentumlistában használhatja.

Statisztikai adatok kitöltése.

Az 1C program statisztikát vezet az egyes felhasználók alapértékeinek beviteléről. Ha új bizonylat készítésekor kétszer adta meg ugyanazt a szervezetet, részleget, raktárt, üzleti tranzakciót stb., akkor a program elemzi az utoljára megadott értékeket. Így a statisztikai kitöltési algoritmus automatikusan „igazodik” minden felhasználóhoz.
Ha a felhasználó megsérti ezt a láncot egy új dokumentumban, a program ezt megérti, és egy idő után új értékeket kezd behelyettesíteni, de az első ilyen dokumentumban az értékek nem kerülnek helyettesítésre.
A korábban megadott adatok kitöltése egy másik adat értékének kiválasztásakor akkor lehetséges, ha például olyan kereskedelmi megállapodást vagy szerződést választ ki, ahol minden fő mező ki van töltve (raktár, fizetési ütemezés, árak stb.). Megállapodás vagy szerződés dokumentumban történő megadásakor az adatok az alábbi szabályok szerint kerülnek kitöltésre:

a megállapodásban vagy szerződésben meghatározott összes adat kitöltésre kerül;

ha a megállapodásban vagy a szerződésben nem szerepelt valamilyen érték (pl. felosztás), akkor a statisztika szerint ez az érték kerül kitöltésre. Ha egy új dokumentum beírásakor az értékeket a statisztikáknak megfelelően töltötték ki, akkor azok újratöltésre kerülnek, ha a megállapodásban vagy szerződésben meghatározásra kerültek.

Értékek helyettesítése sablon segítségével.

Kérjük, vegye figyelembe, hogy új típusú elem létrehozásakor megadhat alapértelmezett értékeket, amelyek új objektumokkal lesznek helyettesítve. Amikor új tételt regisztrál az ilyen típusú cikkhez, ezek az értékek automatikusan beírásra kerülnek. Egy másik példa az egy részlegre vonatkozó információk automatikus helyettesítése egy dokumentumba, ha a dokumentumot készítő felhasználó rendelkezik információval a felhasználói kártyán meghatározott részlegről.

Új dokumentum bevitele másolással.

Itt minden egyszerű. Ha a felhasználó már bevitt egy hasonló dokumentumot, akkor az átmásolható, majd a megváltozott adatok javíthatók. Ellenőrizze az összes részletet, különös figyelmet fordítva az olyan részletekre, mint a dátum.

Íme öt fő módszer a hasonló dokumentumok és kézikönyvek bevitelének megkönnyítésére. Feltétlenül használja őket a mindennapi munkában

Hogyan lehet gyorsan megadni a részletek értékét az 1C-ben?

Kérdés: Kód pótlása az 1c mezőben


Sziasztok, kérem, mondja meg, melyik mezőbe kell beszúrnom egy olyan eljárást, amely számolja a dátumok közötti napok számát, magát az eljárást megtaláltam, de a válasz erre a kérdésre nem

Vannak mezők - bejelentkezés dátuma, kijelentkezés dátuma és mennyiség mező, ahol az első két érték közötti különbségnek csökkennie kell
Melyik eseményhez kell hozzáadni az eljárást?

Válasz: Az Indulás dátuma mező "OnChange" eseményében:

Kérdés: Az automatikus adatcsere nem működik

Válasz:

Köszönöm mindenkinek a válaszait:
1) 1C:Enterprise 8.3 (8.3.4.437), Számvitel Ukrajnára: 2.0.4.3 verzió.
2) Főleg azért nsk1C: „Mindig megvan az a szokásod, hogy oda nézel, ahol nem kell, kérdésemben egy szó sincs az áfa alapkulcsáról – ez egyrészt, másodszor, figyelmesen olvassa el az 1C termékeket Ukrajnában betiltó rendeletet, ill. akkor már írd le a gondolataidat..."

Köszönöm válaszát, de szeretném pontosabban megtudni, hogy ez hol van a kódban beállítva.

Kérdés: Beviteli mező és az Enter a végén


Kezelt űrlapok, munka webkliensben.
Helyzet: a szkennert F7 + vonalkód + enter billentyűre programozta. Sok lehetőséget kipróbáltam, de a kód nem olvasható a „ShowValueInput”-on keresztül. Elhagytam ezt a lehetőséget.
2. Létrehozott egy űrlapot beviteli mezővel. Az F7 billentyűvel megnyílik az űrlap, a kód megjelenik a beviteli mezőben, írja be, majd nyomja meg azt is (a szöveges dokumentum mezőben bejelölve). Megpróbálom elkapni a szövegbevitel vége eseményt, de nem megy, mert... akkor működik, ha fizikailag megnyomja az entert a billentyűzeten. Az AutoFit rendezvény nem a legjobb választás számomra, mert... A vonalkód manuálisan beírható, majd ki kell találnom valami mankót, amivel kikerülhetem a kattintások közötti kis késést.
Kérem, mondja meg, vannak egyszerűbb lehetőségek?

Válasz:() az űrlapot megnyitják, a kódot továbbítják - az eseményeket nem dolgozzák fel

Kérdés: ACS jelentés és táblázat mező


Jelentést készítek az ACS segítségével. Hogyan jeleníthetem meg az eredményt egy táblázat mezőben? Nem egy mezőben egy táblázatos dokumentumban, hanem egy táblázat mezőben.

Válasz: A táblázatos dokumentumban egy mező egy űrlapelem (az adatok jelennek meg benne), amely a Spreadsheet Document attribútumhoz (űrlap) tartozik.
Ír egy értéket egy táblázatos dokumentumba, és a Táblázat dokumentum mező megjeleníti ezt az értéket.
Hogyan írhatom oda az értéket?

Kérdés: Furcsán működik a pályára való összpontosítás


Ön által írt konfiguráció 1C-n (2088.8.3.8), kezelt űrlapok, taxi felület.

Az OnChange eseményt a következő kóddal csatolom a mezőhöz:

1C
1 2 3 4 StandardProcessing = False ;

SelectionData = NewValueList;

SelectionData. Add(Object.Number) ;

A szövegbevitel végére teszek egy kódot

Minden működik, de valahogy ferde.

Az elem fókuszt kap, de valahogy csak a felét, ahogy a képen is látszik:

Válasz: Ez a kód után lett:

Azaz eltűnt a sárga keret és a terepkialakítás. Működik, de nem szép, vonzza a tekintetet.


Nos, röviden, a szám változásakor megjelenik egy feliratos űrlap, ahol az illető kitölti a változtatás okát, ha egyszerűen bezárja az űrlapot, akkor visszakerül a régi érték, és a fókusz a mezőben marad. Vannak más ötletek, hogyan lehetne ezt a legjobban megtenni?
Kérdés: Űrlaptábla mező

Jó napot.

Létezik szabványos cikkkiválasztó lap (ut11), amelyen nem szerepel a név, csak a cikkszám!

Megpróbáltam visszaállítani a szabványos űrlapbeállításokat - hiába, a mező/oszlop nem jelenik meg.
Konfigurátor:

Zavar a mezőkön. A lista beállítása „Mindig használat”.

Még az OnFormCreate() és az OnOpen() hibakeresése is ezt mutatja

Elements.ListAdvancedSearchNomenclature.SubordinateElements
elérhető, minden látható és kisegítő módban van, nincsenek funkcionális lehetőségek!

Válasz:

Megpróbáltam hozzáadni a saját mezőmet ugyanazzal az elérési úttal - az sem jelenik meg!
Eltelt egy óra, de a mező nem jelenik meg. Kérem, segítsen

akkor ó! Csak sikerült áthúznom a névmezőt egy másik csoportba, és nem vált láthatóvá,


és az első gombon Még nem volt visszaállítva, biztos voltam benne, hogy segíteni fog.

Válasz: Kérdés: Hogyan jeleníthetem meg a kódot a név helyett a könyvtárelem kiválasztásakor? van egy fül. része, egy mezőt tartalmaz a directorylink típussal. Hogyan jeleníthetem meg az attribútumkódot a név helyett, amikor kiválasztunk egy elemet ebben a mezőben? (kezelt űrlapok)

Tklwegsd ,))) Igen, pontosan ez a kérdés

Üzenet tőle

polax


Nem tudnád egyszerűen hozzáadni a Kód mezőt a táblázathoz?

Kérdés: Kiválasztás kiválasztási mező az SKD jelentésben

1C
1 2 3 4 5 6 7 8 9 10 11 Procedure UsersOnChange(Element) Export Paraméter = ComposerSettings. Beállítások elemre. Adatparaméterek. Find ParameterValue(NewDataCompositionParameter("Felhasználók") ) ; Paraméter. Érték = Felhasználók; Paraméter. Használat = Igaz ; Kijelölési elem = Settings Composer. Beállítások elemre. Kiválasztás. Elemek. Add(Típus("Adatösszetétel kiválasztási elem"

Válasz: ) ) ; Kiválasztási elem. ComparisonView = DataCompositionComparisonView. egyenlő; Kiválasztási elem. LeftValue = NewDataCompositionField(

"Responsible forResponsiveRequest"
) ) ;) ;

Kiválasztási elem. RightValue = Felhasználók;


Az eljárás vége

Dethmont
, eltávolítom a kódot, csak a beléptető rendszer és a kiválasztó mező van az űrlapon - üres jelentés...

Válasz: 1 óra 50 perc után hozzáadva
, rájöttem, hogy beléptető rendszer kiválasztásakor miért van üres jelentés, a felhasználók beléptető rendszer kérésében volt egy feltétel - töröltem és minden működött. köszönöm a tippeket)
Kérdés: Meg lehet-e változtatni a mezők összetételét egy dinamikus listában kód nélkül?

Jó napot mindenkinek. Van egy tiszta űrlapom, rajta van egy dinamikus lista egyedi lekérdezéssel, ahol van egy tábla (egy könyvtár, egyben a fő DS tábla), egy Link mező és jellemzők.


A jellemzőkkel rendelkező mezők azonnal felhasználhatók a kijelöléseknél, a rendezésnél, a tervezésnél és kiválaszthatók a csoportosításhoz. Minden működik. De nem lehet egyszerűen kiegészítő mezőként kiválasztani (úgy, hogy a hivatkozás mellett külön oszlopban jelenjen meg). Nyilvánvaló, hogy valahogy ez az egész kód segítségével történik, de tényleg ez nem megy kód nélkül?
Rengeteg egyedi adatelrendezési elem, ami elhelyezhető az űrlapon, de nincs lehetőség csak egy mező hozzáadására? Vagy én csinálok valamit rosszul?

Válasz:Általánosságban elmondható, hogy bárhogyan is forgattam az oszlopokat az adatgyűjtőben, nem tudtam hozzáadni őket (kód nélkül). Valószínűleg ez lehetetlen, hiszen nem a ds form attribútum a felelős az oszlopokért, hanem a form elem, ami logikus. A linker vezérli az adatokat - az űrlapelemet - a megjelenítést (Oszlopokat tartalmaz).

Vagyis az Űrlapelem alárendelt elemeinek programozott növelése nélkül nem tudja megváltoztatni azokat.. Szükséges, hogy a Szolgáltatásnyújtás bizonylatának elkészítésekor, módosításakor, valamint a táblázatos rész bármely szolgáltatási körének kiegészítésekor azonnal bekerüljön az információs nyilvántartásból nyert, a bizonylat keltének megfelelő aktuális ár.

Ehhez szüksége van:

    írjon egy RetailPrice függvényt, amely az aktuális árat adja vissza;

    hívja meg a függvényt, ha új elemet adnak a dokumentumhoz.

Mivel a jövőben szükség lehet egy ilyen funkcióra, egy „nyilvánosan elérhető” helyre írjuk - egy közös modulba.

1. Hozzon létre egy függvényt Kiskereskedelmi ár az Általános ágban – Általános modulok névvel Könyvtárak használata. Állítsa be a zászlót Szerverhívás(hogy ennek a modulnak az export eljárásai és funkciói hívhatók legyenek a kliensből) (71a. ábra).

Rizs. 71a. Közös modultulajdonságok

2. Helyezze a következő szöveget a modulba!

Függvény Kiskereskedelmi ár(Jelenlegi dátum,SzolgáltatásnómenklatúraElem)Exportálás

//Segédobjektum létrehozása Kijelölés

Selection = New Structure("Szolgáltatási nómenklatúra",Szolgáltatásnómenklatúra Elem);

//A rendszerleíró adatbázis aktuális erőforrásértékeinek lekérése

ResourceValues=InformationRegisters.Prices.GetLast(Aktuális dátum, Kiválasztás);

ReturnResourceValue.Price;

EndFunction

Magyarázzuk el a funkciót.

A kiskereskedelmi ár megtekintéséhez két paramétert kell átadnia a függvénynek:

    CurrentDate– egy Dátum típusú paraméter, az időtengely azon pontját határozza meg, amelynél a kiskereskedelmi ár értékére vagyunk kíváncsiak.

Ez a szerkezet tartalmaz Kiválasztás regiszter mérések szerint. Segítségével meghatározható a Szolgáltatásnómenklatúra regiszter szükséges dimenziója, amely megegyezik a függvénynek átadott címtárelemre való hivatkozással.

Struktúrakulcs neve ("H A szolgáltatások nómenklatúrája") meg kell egyeznie a konfigurátorban megadott regiszterdimenzió nevével és a szerkezet elem értékével ( A szolgáltatások nómenklatúrájának eleme) adja meg az ehhez a dimenzióhoz kiválasztott értéket.

A második sorban az információs nyilvántartás vezetőjének hívása található. Árak ( Az árak nyilvántartása) és a módszer végrehajtása RunLast(), amely a függvénynek átadott dátumnak megfelelő legutóbbi regiszterbejegyzés erőforrásértékét adja vissza ( CurrentDate) és regisztrálja a mérési értékeket Kiválasztás.

Módszer GetLatest erőforrásértékeket tartalmazó struktúrát ad vissza, amelyet egy változóban tárol ResourceValues.

A következő sorban a szükséges kiskereskedelmi árat kapjuk a szükséges regiszter erőforrás nevének ponttal elválasztott feltüntetésével ( ValueResources.Price), és adja vissza a függvény végrehajtásakor.

Hogy. ez a függvény egy adott időpontban meghívható.

Ki kell nyitni Dokumentum nyomtatvány Szolgáltatások végrehajtása(korábban készült). IN Űrlap modul szükséges adjon hozzá Eljárás módosításkor.

Ehhez kattintson duplán a Tételek és szolgáltatások listája űrlapelemre (71b. ábra).

Rizs. 71b. A Szolgáltatásteljesítmény dokumentum elemei

Az esemény tulajdonságai ablakban MikorChange hozzon létre egy eseménykezelőt a következő szöveggel:

&OnClient

Eljárási lista Nómenklatúrák szolgáltatás változáskor (elem)

//A táblázat szakasz következő sorának lekérése

TabularPart Row = Elements.List of Nomenclature.CurrentData;

//Ár beállítása

TabularPart Row.Price = Working with Directories.RetailPrice(Object.Date, TabularPartLine.Service);

Az eljárás vége

Magyarázzuk el a funkciót.

Az első sor már ismert: először a dokumentum táblázatos részének aktuális sorát kapjuk, mert a jövőben szükségünk lesz rá, és mentsük el egy változóba RowTabularPart.

Ezután hívjuk a függvényt Kiskereskedelmi ár () közös modulból Könyvtárak használata.

A függvény első paramétere annak a bizonylatnak a dátumának átadása, amelynek az árát meg kell kapnia. A dokumentum dátumát az űrlap főbb adataiból kapjuk - Tárgy.Dátum.

A függvény az utolsó árértéket adja vissza, és ez az érték a bizonylat táblázatos részének aktuális sorában található Ár mezőhöz van rendelve ( RowTabularPart.Price).

Felhívjuk figyelmét, hogy az eljárás A nómenklatúrák listájaServiceWhenChanged() elkezd dolgozni az űrlap modulban a kliens oldalon, mert Ez az űrlap interaktív eseménykezelője. Amikor sablont hoz létre ehhez az eljáráshoz, a platform automatikusan elhelyez egy fordítási direktívát az eljárás leírása elé &OnClient.

Ezután hívjuk a függvényt Kiskereskedelmi ár (). Mert ez a funkció nem található meg a kliens oldalon, akkor a végrehajtás átkerül az általános modulba Könyvtárak használata, amely a szerveren fut. A funkció befejezése után a programkód továbbra is futni fog a kliensen.

Ellenőrizzük a fenti lépéseket, és indítsuk el az alkalmazást 1C: Enterprise módban. Dolgozzunk a kifejlesztett konfigurációval.

ADATOK BEVITELEZÉSE A DB-BE

1. Írjon be legalább 8 dokumentumot Szolgáltatásnyújtás az alkalmazásba.