itthon / Facebook / Hogyan lehet megnyitni egy meglévő objektum űrlapját? 1s uv nyitott forma

Hogyan lehet megnyitni egy meglévő objektum űrlapját? 1s uv nyitott forma

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ő:

  1. A rekordkulcs adatait a szükséges értékekkel beírjuk a szerkezetbe.
  2. A kapott struktúrát egy tömbbe helyezzük.
  3. A tömbből rekordkulcsot készítünk.
  4. 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.

S-P a következőket mondja nekünk:

Globális kontextus.GetForm
Globális kontextus
GetForm
Szintaxis:

GetForm(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>)
Lehetőségek:

<ИмяФормы>(kívánt)

Típus: .
Űrlap neve. A Form metaadat-objektum teljes elérési útjaként (például "Directory. Counterparties.Form.ObjectForm", "GeneralForm.FileSavingForm") vagy egy alkalmazásobjektum teljes elérési útjaként, kiegészítve az alapértelmezett űrlapnévvel (például "Könyvtár.Termékek.Kiválasztási űrlap" ).
Alapértelmezett űrlapnevek:

  • ObjectForm - alapértelmezett objektumforma;
  • GroupForm (FolderForm) - alapértelmezett csoportforma;
  • RecordForm - alapértelmezett regisztrációs űrlap;
  • ListForm - alapértelmezett listaforma;
  • ChoiceForm - alapértelmezett választási űrlap;
  • GroupChoiceForm - alapértelmezett csoportkiválasztási űrlap;
  • ConstantsForm - az alapértelmezett konstansok a normál módhoz, beállítva a konstansok formájaként a konfigurációhoz;
  • Form - az állandó, jelentés és feldolgozás alapértelmezett formája;
  • CommonForm - általános űrlap;
  • SettingsForm - alapértelmezett jelentésbeállítási űrlap;
  • LoadForm - űrlap a beállítások betöltéséhez;
  • SaveForm - űrlap a beállítások mentéséhez;
  • VariantForm - űrlap egy jelentésváltozat szerkesztéséhez;
  • SearchForm – egy űrlap az adatokban való teljes szöveges kereséshez.
Például a "GeneralSettings" általános űrlap megszerzéséhez a következő kódot kell beírnia a modulba:
Form = GetForm("GeneralForm.GeneralSettings");

Külső jelentések és feldolgozás esetén az űrlap neve a következőképpen van megadva:

  • Külső jelentés.<имя отчета>.Forma.<имя формы>;
  • Külső jelentés.<имя отчета>.<имя стандартной формы>;
  • Külső feldolgozás.<имя обработки>.Forma.<имя формы>;
  • Külső feldolgozás.<имя обработки>.<имя стандартной формы>.
Ebben az esetben a külső jelentést vagy feldolgozást előzetesen regisztrálni kell a rendszerben.
<Параметры>(választható)

Típus: .
Űrlap paraméterei. A szerkezeti kulcs a paraméter neve, az érték pedig az űrlapparaméter értéke. Az elem nevének meg kell egyeznie a szerkezeti paraméter nevével.
P = Új struktúra("Kulcs", Szállító);
Form = GetForm("Directory. Counterparties.ObjectForm", P);
Form.Open();
<Владелец>(választható)

Az űrlap tulajdonosa egy másik űrlap űrlapja vagy vezérlője.
<Уникальность>(választható)

Típus: Ingyenes.
Ez a paraméter megadhat egy kulcsot, amelynek értéke a már megnyitott űrlapok keresésére szolgál. Ha ugyanazzal az egyediségi kulccsal rendelkező űrlapot talál, ahelyett, hogy új űrlapot nyitna meg, a talált űrlap aktiválódik.
- keressen egy űrlapot alapértelmezett egyediségi kulccsal, - ne keressen űrlapot egyáltalán, bármilyen más érték határozza meg az egyediségi kulcsot, amellyel a keresés végrehajtódik.
Alapértelmezett érték: .
<Окно>(választható)

Típus: ; .
Az alkalmazás ablak, amelyben az űrlap megnyílik.
Csak kezelt űrlapokra vonatkozik. Egy ablak csak az alkalmazás főablakja vagy egy segédűrlapablak lehet.
A típus megadása esetén az űrlapablak a kiválasztott opciónak megfelelően jön létre.
<НавигационнаяСсылка>(választható)

Típus: ; .
Ha a -tól eltérő értéket tartalmaz, akkor ez az érték a metódus meghívásával kapott form egy tulajdonságához lesz hozzárendelve, és az űrlap tulajdonsága a -ra van állítva.
Alapértelmezett érték: .
Visszatérési érték:

Típus: ; ; .
- ha a kezelő az űrlap létrehozásának elutasítására van beállítva.
Leírás:

Lekéri az űrlapot vagy a kezelt űrlapot. A fogadás előtt egy már nyitott, azonos típusú űrlapot keresünk.
A keresés az űrlap típusa, a kulcs űrlapparaméterek értékei, az űrlap tulajdonosa, a felhasználói egyediségi kulcs alapján történik.
Ha a paraméterben<Уникальность>az érték átadásra kerül, akkor a már nyitott űrlapok keresése nem történik meg.
Elérhetőség:

Vékony kliens, webkliens, vastag kliens, mobilalkalmazás (kliens).
Jegyzet:

A vékony és webes kliensben csak a kezelt űrlap érkezik.
A külső feldolgozás hagyományos formái nem támogatottak.
Ha normál űrlap fogadásakor a paraméterben<ИмяФормы>Nem szabványos űrlapnév van megadva, az átadott paraméterek feldolgozása nem történik meg.
A végrehajtás során több hívás is történhet a szerver felé. Némelyikük gyorsítótárban van. Mindig érkezik legalább egy kérés a szerverhez, és az nincs gyorsítótárban. A gyorsítótárazás a platform verziójától és a konfigurációs verzió egészétől függ. Ha a kapcsolati sebesség alacsonyra van állítva, és az aktuális vonal nincs megadva, a kiválasztási űrlap gyorsítótárazásra kerül. A gyorsítótár 20 percenként törlődik. Az ezen időszak alatt fel nem használt űrlapok törlődnek.
Lásd még: