Az űrlapok programozott megnyitása egy felügyelt 1C alkalmazásban jelentősen eltér a normál alkalmazásban való megnyitástól. Nézzük először a régi módszert. Egy űrlap fogadásából, majd normál vagy modális módban történő megnyitásából áll (modális módban megnyitva az űrlap blokkolja a programot).
GetForm() . Nyisd ki()
Ez a leglassabb módja az űrlapok megnyitásának. Lehetővé teszi azonban az űrlap programozott feldolgozását a megnyitás előtt. A kód feldolgozásához egy kicsit módosítani kell:
Form = GetForm( "Dokumentum. Áruk és szolgáltatások átvétele. Dokumentuműrlap")
;
//Itt műveleteket hajtunk végre az űrlappal
Forma. Nyisd ki();
Figyelembe kell venni, hogy az űrlap beérkezésekor egy másik eseményfolyamat kerül végrehajtásra WhenCreatedOnServer.
Nézzünk meg más módszereket, amelyek lehetővé teszik az űrlapok gyorsabb és kényelmesebb megnyitását egy felügyelt 1C alkalmazásban. Az adott helyzettől függően különböző módszerek alkalmazhatók.
1. Hogyan lehet megnyitni egy objektuműrlapot egy felügyelt alkalmazásban, ha van rá hivatkozás.
Ebben az esetben minden rendkívül egyszerű.
RefLink = Könyvtárak. Elnevezéstan. FindByCode("000000001" );
OpenValue(RefLink) ;
2. Hogyan lehet megnyitni a kiválasztási űrlapot, majd megkapni a kiválasztott értéket.
Erre van egy funkció EnterValue(). A függvénynek 3 paramétere van:
- A változó, amelybe a kiválasztott érték be lesz írva;
- Tipp, amely megjelenik a kiválasztási ablakban;
- A kiválasztott értékek típusainak leírása. Több típus is lehet, ebben az esetben a rendszer kéri, hogy válasszon típust, mielőtt egy adott értéket kiválasztana.
A funkció végrehajtása eredményeként megnyílik a megadott típusú objektum alapértelmezett kiválasztási űrlapja.
Változó érték;
Array= new Array;
Sor. Add(Típus( "DirectoryLink.Nómenklatúra")
)
;
Sor. Add(Típus( "DirectoryLink. Partnerek")
)
;
TypeDescription= new TypeDescription(Array) ;
Res = EnterValue(Érték, "Tipp" , Típusleírás) ;
A korábbi módszerek csak az objektumok alapértelmezett űrlapjainak megnyitását tették lehetővé (objektuműrlap vagy kiválasztási űrlap). Ha egyéni űrlapot kell megnyitnia, használhatja a funkciót OpenForm().
Ennek a függvénynek jó néhány paramétere van. Nézzünk ezek közül néhányat:
- Űrlap neve- itt kiválaszthatja a szabványos objektumformák egyikét, például, Kiválasztási űrlap vagy Lista űrlap. Vagy egy konkrét űrlapot, amelyet a fejlesztők készítettek.
- Lehetőségek— lehetővé teszi, hogy átvigye az űrlapon lévő űrlapra szerkezetek néhány paramétert a megnyitás előtt, ezáltal meghatározva a kimeneti adatokat. Paraméterek lehetnek bármilyen adatok, amelyeket át lehet adni a kliensről a szervernek. Az űrlap megnyitásakor átadott paraméterek az eljárásban feldolgozhatók WhenCreatingOnServer() a megnyitott űrlapnál.
- Űrlapnyitó mód— 3 lehetősége van: független, a teljes felület blokkolása, a tulajdonos űrlap letiltása.
Nézzük meg, hogyan használjuk a függvényt OpenForm() különféle helyzetekben.
3. Meglévő objektum űrlapjának megnyitása
Minden űrlapnak egy kulcsattribútuma van. Az űrlaprészletek listájában félkövérrel van kiemelve, és általában hívják Egy tárgy segédkönyvek és dokumentumok elemeinek formáiban. Más objektumok eltérő nevet kaphatnak. Egy meglévő objektum űrlapjának megnyitásához át kell adnia egy paramétert a megnyitandó űrlapnak Kulcs az értékkel egy objektumra való hivatkozásként.
&OnClient
Eljárási parancs1 (parancs)
Paraméter= új struktúra;
Paraméter. Insert("Kulcs" , FindC() ) ;
OpenForm(, Paraméter) ;
Az eljárás vége
&A szerveren
Funkció FindC();
Könyvtárak visszaküldése. Ügyfelek. FindByRequisites ("TIN", "745107734623")
EndFunction
4. Új objektuműrlap megnyitása
Itt egy egyszerű funkció működik OpenForm() minden paraméter nélkül.
&OnClient
Eljárási parancs1 (parancs)
OpenForm( "Könyvtár. Partnerek. Objektuműrlap")
;
Az eljárás vége
5. Hogyan lehet megnyitni egy új objektum űrlapot, és valami alapján kitölteni
Meg kell adnia egy paramétert Bázis, amelynek értéke a kitöltés alapobjektumára való hivatkozás lesz. Ezzel elindul az eljárás ProcessFill().
&OnClient
Eljárási parancs1 (parancs)
Paraméter= új struktúra;
Paraméter. Insert("Base", LinkToBuyerAccount) ;
OpenForm( "Dokumentum. Áruk és szolgáltatások értékesítése. Tárgyűrlap", Paraméter) ;
Az eljárás vége
Ez a példa egy dokumentumot hoz létre Áruk és szolgáltatások értékesítéseés a vevő felé történő fizetésről szóló számla alapján töltik ki, amely linket továbbították.
6. Hogyan lehet megnyitni egy űrlapot és kiválasztani rajta
Az 1C űrlapokon történő kiválasztás lehet egyszerű vagy összetett. Az egyszerű kijelölés olyan kifejezéseket tartalmaz, mint pl Szervezet = Horns and Hooves LLC. A komplex szelekció más típusú összehasonlítást is magában foglal, pl. A listán. Ebben a cikkben megvizsgáljuk az egyszerű kiválasztás megszervezését, és egy külön cikket szentelünk a komplex kiválasztásnak.
Egy egyszerű kijelölés megszervezéséhez egy kulcsot tartalmazó paramétert kell átadnia a megnyitandó űrlapnak Kiválasztás, az érték egy olyan struktúra lesz, amelyben a kulcs a dinamikus listamező neve, az érték pedig a keresett adat.
Például nyissuk meg a címtárlista űrlapot GTD számokés válasszon ki ott tulajdonos - könyvtárelem alapján Elnevezéstan.
&OnClient
Eljárási parancs1 (parancs)
Paraméter= új struktúra;
Selection= new Structure;
Kiválasztás. Insert("Tulajdonos", LinkToNomenclature) ;
Paraméter. Insert("Kiválasztás", Kijelölés) ;
OpenForm( "Directory.GTD numbers.List form", Paraméter) ;
Az eljárás vége
7. Az adatnyilvántartási jelentkezési lap megnyitása
Ehhez szüksége lesz az információs nyilvántartás beviteli kulcsára.
Felvételi kulcs— ezek az összes mérés és az időszak értékei (ha a regiszter periodikus). Vagyis a rekordkulcs azok a paraméterek, amelyek alapján egy rekord egyedileg azonosítható.
A nyitó algoritmus a következő:
- A rekordkulcs adatait a szükséges értékekkel beírjuk a szerkezetbe.
- A kapott struktúrát egy tömbbe helyezzük.
- A tömbből rekordkulcsot készítünk.
- A megnyíló űrlapnak átadunk egy paramétert Kulcsértékként a 3. lépés rekordkulcsával.
&OnClient
Eljárási parancs1 (parancs)
Paraméter= új struktúra;
KeyParameters= új szerkezet;
Főbb paraméterek. Insert("Nómenklatúra", LinkToNómenklatúra) ;
Főbb paraméterek. Insert("PriceType", LinkToPriceType) ;
Főbb paraméterek. Insert("Időszak", Dátum) ;
KeyArray = Új tömb;
KeyArray. Add(KeyParameters) ;
EntryKey = New( "Information RegisterRecord Key.PricesNomenclature", KeyArray) ;
Paraméter. Insert("Kulcs", RecordKey) ;
OpenForm( "Információs nyilvántartás. Nómenklatúra árai. Nyilvántartási űrlap", Paraméter) ;
Az eljárás vége
Azért, hogy nyissa meg a kiválasztási űrlapot a kiválasztással 1s-ben 8.2(normál formák), végre kell hajtanunk néhány műveletet. Előbb megszerezzük. Ezután beállítjuk a kijelölést, és programozottan megnyitjuk, itt van egy kódpélda:
Kiválasztás az űrlapon az 1C 8.2 beviteli mezőben több értékkel
A fenti példában megnéztük hogyan állítsuk be a kijelölést a kiválasztási űrlapon meghatározott érték szerint. Most nézzünk meg egy olyan helyzetet, amikor több értéket kell helyettesíteni, ez lehet például egy tömb, vagy egy lekérdezés eredményéből kirakott. Ez egy kijelölés az 1c beviteli mezőben többféle jelentéssel.
Először megkapjuk a kiválasztási űrlapot, átadjuk az „Elemet” (tulajdonos) a paraméterekben, beállítjuk a kiválasztási mód jelzőjét. Ezután létrehozunk egy értéklistát és egy tömböt, megjegyezzük, hogy kijelölésként a listában az összehasonlítás típusának beállításakor egy objektum csak a típussal lehet jelen ListValues. Elemeket adunk a tömbhöz, majd betöltjük ezt a tömböt az Értéklistába, amit utólag beállítunk a kijelölésben. Ezenkívül ne felejtse el engedélyezni a zászlót ennek a kijelölésnek a használatához, és állítsa be az összehasonlítás típusát.
Kiválasztás beállítása az űrlap beviteli mezőjében az 1C 8.3, Kijelölés kezdete eseményben
Most fontoljuk meg kijelölés a beviteli mezőben egy kezelt űrlapon az 1C 8.3. Keressük meg az űrlapon a minket érdeklő elemet, amiben beállítjuk a kijelölést, esetünkben ez a „Szervezet” mező. Megtaláljuk a „Kiválasztás kezdete” eseményt, rákattintunk a nagyítóra, és az eljárásban találjuk magunkat. Látjuk a Selection Data paramétert; ez a paraméter ValueList típusú. Ahhoz, hogy a kiválasztást a szükséges elemekre korlátozzuk, ki kell töltenünk az Értéklistát. Csak a szerveren tudunk elemeket kiválasztani, ezért az &OnServer fordítási direktívával hozunk létre egy eljárást. Ebben az eljárásban töltse ki a Kijelölési adatokat.