Menü
Ingyenes
bejegyzés
itthon  /  Problémák/ Adatok formázása 1s értékre 8.3. Kezelt űrlap hitelesítő adatai (1Cv8)

Űrlapadatok 1s értékben 8.3. Kezelt űrlap hitelesítő adatai (1Cv8)

Az alábbiakban felsoroljuk a felügyelt űrlapokkal végzett munka során használt fő 1C objektumokat. Rövid kódpéldákat mutatunk be, amelyek bemutatják ezen objektumok hagyományos használatát az 1C konfigurációk írásakor.

Ez a forma

Használt űrlap modulban, eljárásokban& OnClient és & OnServer.

Lehetővé teszi az űrlapelemek és attribútumok elérését.

Az űrlapelemek egy objektumon keresztül érhetők el Elemek és így néz ki:

ThisForm.Elements.VersionNumber.Header = "v." + ProgramVersion;

Az űrlapon található kellékre való hivatkozás a következő:

ThisForm.Announcement text = "Sziasztok elvtársak!";

Egyszerűsített hozzáférés a formaelemekhez és kellékekhez

Az űrlap modulban elvileg elhagyható a kulcsszó Ez a forma ... Az űrlapelemekre és attribútumokra egyszerűsített módon hivatkozhat:

// Űrlapelem

Elements.VersionNumber.Header = "v." + ProgramVersion;

// Forma kellékek

Announcement Text = "Sziasztok, elvtársak!";

Az űrlapadatok megszerzésének jellemzői (fontos!)

Ha a formatámaszok egyszerű típusúak - Karakterlánc, szám, dátum ... akkor egy attribútum értékét egyszerűen név alapján kaphatja meg (beállíthatja):

Szöveg = Terméknév; // A terméknév egy űrlapattribútum

Ily módon azonban lehetetlen megismerni a "komplex" típusú részleteket -Értéktáblázat, Értékfa ... Ha megpróbál név szerint lekérni egy ilyen típusú attribútumot, akkor egy ilyen típusú objektum kerül visszaadásraDataFormsCollection.

Egy "összetett" típusú attribútum értékének meghatározásához a függvényt kell használniPropsFormVValue ():

CurrentTable = FormInValue ("SelectedConstructionObjects");

Egy "összetett" változó értékének beállításához használhatja a függvénytValueBForm attribútum (<Значение>, <ИмяРеквизита>) mindkét paraméter kötelező.

Funkciók PropsFormVValue ()és ValueBForm attribútum ()csak a szerveren érhető el.

Egy tárgy

Szigorúan véve ilyen kulcsszó az űrlapon belül a sz. Csak arról van szó, hogy amikor létrehozunk egy űrlapot, például egy elemes űrlapot, az 1C automatikusan létrehoz egy névvel ellátott kelléket az űrlapon Egy tárgy ... Ez az attribútum hozzáférést biztosít az űrlapon szerkesztett aktuális objektum tulajdonságaihoz.

vagy egy teljesebb rekord:

Ezt az objektumot

Magát az objektumot tartalmazza. Egy objektum objektummodulban vagy űrlapmodulban való elhelyezésére szolgál.

Használat: Csak olvasható.

Elérhetőség: Szerver, Fat Client, Külső kapcsolat.

A vastag kliens korában egyszerű volt egy objektummodul eljárás meghívása űrlapmodulból. Elég volt a moduleljárást exportáltként definiálni és az űrlapmodulban meghívni.


Változnak az idők, az 1C platformot optimalizálják és fejlesztik, a zsíros klienst elfelejtik, adjon mindenkinek vékony vagy webes klienst. A fejlesztők kezdik lefordítani a normál űrlapokat kezelt formákká, de nem minden olyan egyszerű, nehézségek adódnak a végrehajtás szétválasztásával kapcsolatban programkód két kontextusban: szerver és kliens. Ezért a fenti kódpélda nem fog működni a vékony kliensben.

Új adattípusok

Emellett a kezelt űrlapok miatt új adattípusok jelentek meg. Van egy űrlap:
Emlékezzünk az attribútumok típusaira, és megnézzük, milyen típusok vannak az attribútumok hibakeresésében:

Új űrlap adattípusok
Arra a következtetésre jutunk, hogy magának az objektumnak az adatainak megjelenítéséhez a típust használjuk DataFormsStructure, értékfa megjelenítéséhez - DataShapeTree, a táblázatos részhez - DataFormsCollection stb. Vagyis a kliens űrlap moduljában nem magával az objektummal, hanem annak bemutatásával dolgozunk! Ezért az elérhető metódusok például az objektummodul táblázatos részéhez NEM ELÉRHETŐ az űrlap modulban.

Küzdelem az új típusokkal

Az 1C platform fejlesztői két funkciót biztosítottak:
  1. PropsFormValue- átalakítja a megadott form attribútumot az alkalmazott típusú objektummá.
  2. Adatérték űrlap- az űrlapadatokat az alkalmazott típusú objektummá alakítja.
Ezen funkciók meghívása csak a szerveren érhető el. Térjünk vissza a feladatunkhoz, és írjuk be a vékony kliens kódját az űrlap modulba az eseményben OnCreateAtServer amely meghívja a függvényt az objektummodulból:
&A szerveren


SproObject1 = Form AttributeValue ("Objektum");
SprObject1.DisplayMessage (Object.Props1);




Az eljárás vége

Egyik függvénnyel és egy másik O_o-val működik. Írjuk fel a konverziós kódot DataShapeTree egy alkalmazott típusú objektumba:
&A szerveren
OnCreateAtServer eljárás (hiba, szabványos feldolgozás)

ValueTree1 = Form AttributeInValue ("Attribútum1");
ValueTree2 = FormDataValue (ThisForm.Props1, Type ("ValueTree"));

Az eljárás vége

A ValueTree1 és a ValueTree2 típusa azonos – ValueTree. Tehát mi a különbség ezek között a funkciók között???

Adatérték űrlap - funkció globális kontextus. Az űrlap által támogatott objektumtípust az adatbázis-objektum típusává alakítja: FormDataStructure -> ReferenceObject. Reference1.

PropsFormValue - az űrlap modul funkciója, vagyis az űrlap (& OnServer) kontextusában hívódik meg a szerveren. Ha megpróbálja hívni ezt a funkciót az űrlap kontextusán kívül a platform rendkívüli hibát generál:
& OnServerWithoutContext
Eljárás ConvertType ()

// Ez a kód hibás, az űrlapkontextus nem elérhető, hiba lesz!
RefObject2 = FormDataValue (objektum, típus ("DirectoryObject.Reference1"));
SprObject2.DisplayMessage (Object.Props1);

Az eljárás vége

Ennyi a különbség.

A Feldolgozás megmutatja a kiválasztott objektum összes részletét, lehetővé teszi azok szerkesztését, valamint két azonos típusú objektum összehasonlítását. Bármilyen konfigurációt támogat, automatikusan telepíti a szabványos konfigurációkat.

Jelenlegi verzió: 1.09 a normál űrlapokhoz, 1.12 a kezelt űrlapokhoz.

Letöltés feldolgozása (1C 8.2, 1C 8.3 (normál űrlapok), epf fájl, 47 KB)

Letöltés feldolgozása (1C 8.2, 1C 8.3 (felügyelt űrlapok), epf fájl, 22 KB)

A 1C 8.1 legújabb verziója: 1.05

Letöltés feldolgozása (1C 8.1-hez, epf fájl, 48 KB)

Mi a teendő, ha a feldolgozás nem nyílik meg

A feldolgozás nagyon hasznos, például ilyen esetekben:

    ki kell rendeznie egy ismeretlen adatbázist

    a konfigurációs kiadás frissült, és egy új mező került a dokumentumba (rejtett, de nincs az űrlapon). Ugyanakkor az új dokumentumok esetében a keletkezésükkor kerül megállapításra, de a régiek természetesen feledésbe merültek. Ami a felhasználó számára abban nyilvánul meg, hogy két teljesen azonos dokumentum különböző tranzakciókat ad 🙁

    csak a mező tartalma nem fér bele az űrlapon a számára kijelölt helyre, hanem teljes egészében meg kell nézni (ezt különösen a táblázatos részek szenvedik – a fejlesztők nagyon szeretik korlátozni az oszlopok szélességét, ill. ezen kívül nem engedi megváltoztatni)

    rá kell menni a kapcsolódó információkra (pl. megnyitni a CCD számlán megadottat), de ezt a mezőt elfelejtették elérhetővé tenni (azaz se pöttyös gombok, se nagyító, se F4) (és ez is előfordul hogy a beviteli mező helyett kijelölő mezőt, feliratot vagy általában hiányzó mezőt készítenek az űrlapon 🙁)

    össze kell hasonlítania két azonos típusú objektumot

Megkülönböztető tulajdonságok

    a tipikus konfigurációkhoz való csatlakozás lehetősége nyomtathatóként (azaz tisztán felhasználói módban nincs szükség konfigurátorra)

    az objektum rögzítésének képessége "adatcsere - letöltés" módban - azaz. "ahogy van"

Telepítés (normál interfész)

A feldolgozás meg van nyitva, kövesse a képernyőn megjelenő utasításokat. (Azaz kattintson a "Telepítés" gombra a jobb felső sarokban, és erősítse meg a telepítést a következő ablakban.

Telepítés ("felügyelt" interfész)

Figyelem: Ez az opció a telepítés csak tipikus 1C konfigurációkban működik.

1. Lépjen az "Adminisztráció" szakaszba, és ott - "További jelentések és feldolgozás".

2. Nyomja meg a "Hozzáadás" gombot, és válassza ki a dannye-objecta-upr.epf fájlt

3. A feldolgozási beállítások ablakban ellenőrizze, hogy:

    Kiadvány: Használt

    Bejelölt négyzetek: használja a lista űrlaphoz, használja az objektumokat az űrlaphoz

4. Erősítse meg a telepítést az OK gombra kattintva

A feldolgozás használata

A dokumentum formájából a címtár eleme. bármelyik listaforma

    Normál interfész - nyomja meg a "Nyomtatás..." gombot

    "Irányított" felület - nyomja meg a kitöltés gombot

A menüben válassza az "Objektumadatok" lehetőséget - megnyílik a feldolgozási űrlap

A kellék megtekintéséhez (pl. a dokumentum tartalmazza az „Agreement” attribútumot, nem módosítható. De meg kell nyitnia a szerződés kártyáját).

Hogyan szerezzünk kellékeket az ügyfél referenciaértékéből

A feldolgozási űrlapon kattintson az attribútum értékére.

Az attribútum módosításához jelölje be az érték melletti négyzetet. Az érték ezután módosítható.

A változtatások mentéséhez nyomja meg a kívánt opció gombját a bejegyzés "adatcsere - letöltés" módban történő mentéséhez, rendszeres belépés... lebonyolítása (csak dokumentumok esetében).

Ha a megváltozott kellékek egy részét rögzítenie kell, és néhányat rögzítenie kell, törölje a jelet a rögzítendő jelölőnégyzetből.

A feldolgozásban ott van a "Kelnök adatai" - ez olyan, mintha hivatkozással nyitna meg egy értéket (például partnerkártyát), és abban ismét felhívná a feldolgozást.

Az objektumok összehasonlítása elvégezhető:

2 objektum kiválasztása feldolgozásra

2. Feldolgozás hívása az egyik objektumról, majd (az ablak bezárása nélkül) egy másikról. A rendszer felkéri, hogy végezzen összehasonlítást.

3. (Csak "felügyelt" felület). Válasszon ki egyszerre 2 objektumot a listából (ehhez tartsa lenyomva a Ctrl gombot), és hívja meg a feldolgozást - az objektumok összehasonlítása megtörténik.

Képernyőképek (normál felület)

Képernyőképek ("felügyelt" felület)

Példák a feldolgozás alkalmazására problémahelyzetek elemzésére.

Változások az 1.12-es verzióban (2017.10.17.)

  • A felügyelt űrlapokkal rendelkező változatnál egy hiba javításra került (a táblázatos részben lévő attribútum nem frissült, ha magának az objektumnak volt azonos nevű fejléc attribútuma)

Változások az 1.10-es verzióban (2017.01.06.)

  • A felügyelt űrlapokkal rendelkező változatnál néhány tipikus konfigurációban javították a munkát (Számvitel, UNF)

Változások az 1.09-es verzióban (2015.07.07)

  • A "Szülő", "Tulajdonos" mezők megjelenítése hozzáadva
  • A felügyelt interfész verziójához a modális ablakok nélküli munka biztosított.

Változások az 1.08-as verzióban (2014.04.03.)

    A normál interfész verziójához jobb kompatibilitás a "Manufacturing Enterprise Management" (PPM) 1.3-as konfigurációban végzett munka során.

Változások az 1.07-es verzióban (2013.04.03.)

    Létezik a "kezelt" űrlapok feldolgozásának egy verziója (az automatikus telepítés és frissítés funkció csak a normál űrlapok verziójában érhető el)

    Hiba javítva (a jogok a feldolgozási disztribúcióban be lettek állítva)

Változások az 1.06-os verzióban (2012.05.13.)

    Az "Object version" mező megjelenítése

    Hiba javítva (nem lehetett csak olvasási jogosultságokat beállítani a feldolgozás során)

Változások az 1.05-ös verzióban (2011.04.05.)

    Hiba javítása (a 8.2 alatti munka során a dokumentumrekord nem volt elérhető feladási módban)

Változások az 1.04-es verzióban (2011.04.13.)

    Hiba javítása (8.2 alatti munka közben az egér dupla kattintása nem nyitotta meg a részleteket)

    Most a feldolgozás folytathatja a referenciatípus attribútumainak megjelenítését.

    Azaz: tegyük fel, hogy megnyitotta az „Áruk, szolgáltatások értékesítése” dokumentum részleteinek nézetét. V ez a dokumentum létezik egy "DirectoryLink.Contractors" típusú "Counterparty" változó. Ha erre a kellékre a jobb egérgombbal kattint, megkapja helyi menü, amelyben az „Attribútumadatok” és az „Attribútumadatok új ablakban” tételek találhatók. Az egyik kiválasztásával megtekintheti a megfelelő partner adatait.

Változások az 1.03-as verzióban (2010.10.15)

    Hozzáadtuk a felhasználókat és hozzáférési jogaikat a feldolgozáshoz.

Változások az 1.02-es verzióban (2010.08.21.)

    Támogatott konfigurációk, amelyekben a hivatkozás külső kezelések„Kiegészítő nyomtatványok” néven.

Változások az 1.01-es verzióban (2010.01.28.)

    Javítva egy hiba, amely akkor fordult elő, amikor az Object1 üres volt, és az Object2 volt kiválasztva (köszönet a rasswetnek, hogy megmutatta);

    A "részlet" jelölőnégyzet azonnal aktiválódik, nem kell a "Megjelenítés" gombra kattintania;

    Az „Értéktípus” oszlop átnevezve „Lehetséges értéktípus”-ra, és a konfigurátorban ehhez a változóhoz definiált értéktípust mutatja. Az összetett típusú attribútumoknál ezen kívül megjelenik az attribútum értékének típusa a megtekintett objektumban.

Ha a feldolgozást csatlakoztatta a konfigurációjához, akkor a frissítéshez:

töltse le a feldolgozást, nyissa meg külsőként, megmondja, mire és hogyan kell kattintani (a "Telepítés" gomb, válassza ki a "Feldolgozás frissítése az adatbázisban", kattintson a "Végrehajtás" gombra)

Nyomtatás (Ctrl + P)

Létezik egy sor globális módszer az alkalmazásobjektumok adatformává alakítására és fordítva:

  • ValueInForm adatok (),
  • FormDataValue (),
  • CopyFormData ().

Az alkalmazásobjektumokkal működő módszerek csak a szervereljárásokban érhetők el. Az űrlapadatok közötti értékek másolásának módja elérhető a szerveren és a kliensen, mivel nem igényel alkalmazásobjektumokat paraméterként.

Amikor az űrlapadatokat alkalmazásobjektummá konvertálja, vegye figyelembe a kompatibilitást.

  • ValueInDataForm() - egy alkalmazás típusú objektumot alakít adattá.
  • Adatérték űrlap() - az űrlapadatokat az alkalmazott típusú objektummá alakítja.
  • CopyDataForm() - kompatibilis szerkezetű űrlapadatokat másol. Igazat ad vissza, ha a másolat készült, vagy False értéket, ha az objektumok szerkezete nem kompatibilis.

Az űrlapadatok alkalmazásobjektumokká konvertálásakor és fordítva, objektum-gyorsítótárat használnak, ugyanakkor ellenőrzik az objektum gyorsítótárban lévő verziójának érvényességét.

JEGYZET. Normál műveletek végrehajtásakor (űrlap megnyitása, végrehajtása szabványos parancs Record, stb.) a fő attribútummal rendelkező űrlapon az átalakítás automatikusan megtörténik.

Íme egy példa arra, hogyan használhatja az adatátalakítást saját algoritmusaiban.

&A szerveren
Eljárás OnCreateAtServer (hiba, Standard Processing)
ObjectObject = Goods.FindByName ("Kávékanna"). GetObject (); ValueVDataForm (ObjectObject, Object);
Az eljárás vége
& OnClient
Eljárás Írás ()
WriteOnServer ();
Az eljárás vége
&A szerveren
WriteOnServer () eljárás
ObjectObject = FormDataInValue (Object, Type ("DirectoryObject.Goods"));
ObjectObject.Write ();
Az eljárás vége

Ezenkívül a ClientApplicationForm objektum metódusokkal rendelkezik a kiszolgálón:

  • ValueBForm attribútum () - egy alkalmazott típusú objektumot a megadott form attribútummá alakít.
  • PropsFormValue() - az űrlapadat attribútumot az alkalmazott típusú objektummá alakítja.

Ezeknek a módszereknek a használata általában kényelmesebb, mivel információval rendelkeznek például a form attribútum típusáról. Ezenkívül a FormPropsBValue () metódus elvégzi az űrlapadatok és az objektum közötti leképezést, amelyet az üzenetek generálásakor használnak.

Nem szabad elfelejteni, hogy a ValueTable vagy ValueTree típusú objektumok űrlapadattá konvertálásakor (mind a ValueBFormData () metódus, mind a ValueBFormAttribute () metódus használatával) figyelembe kell venni a következő jellemzőt: minden létező oszlop az adatoknak létezniük kell a konvertált objektumformákban.

FIGYELEM! A nem adatokkal kapcsolatos attribútumoszlopok nem vesznek részt az űrlapadatok és az objektumok közötti értékek konvertálásában információs bázisés vissza. Az objektumadatokban nem szereplő oszlopok törlődnek az űrlapadatokká konvertáláskor.

Objektum átvitelekor a keretrendszer általi adatképzésre, vagy metódusok meghívásakor ValueInDataForm(), ValueInPropsForm(), csak az objektum adatok kerülnek átvitelre. Az objektum belső állapota nem kerül át az űrlapadatokba. Például az új hivatkozás értéke, amelyet a metódus állít be az objektumra SetLinkNew (), el fog veszni az objektum űrlapadatokká és adatokból való konvertálása során.

A módszerek első paramétereként PropsFormValue() és FormDataValue (), csak a következő típusú űrlapattribútumok használhatók:

  • FormDataStructure,
  • Űrlap adatgyűjtés,
  • DataFormsStructureCollection,
  • FormDataTree.

Nézzünk egy példát ezeknek a módszereknek a használatára.

&A szerveren
Eljárás RecalculateAtServer ()
// A props objektumot alkalmazásobjektummá alakítja. Dokumentum = FormInValue ("Objektum");
// Újraszámítást hajt végre a dokumentum modulban meghatározott módszerrel. Dokumentum.Újraszámítás ();
// Az alkalmazásobjektumot visszaalakítja kellékekké. ValueВForm Attribútum (Dokumentum, "Objektum");
Az eljárás vége

Űrlap részletei

Az űrlapattribútumok készlete írja le az űrlapon megjelenített, szerkesztett vagy tárolt adatok összetételét. Ugyanakkor az űrlap részletei önmagukban nem teszik lehetővé az adatok megjelenítését és szerkesztését. Az űrlap attribútumokhoz társított űrlapelemek (lásd e fejezet "Űrlapelemei" című részét) megjelenítésre és szerkesztésre szolgálnak. Az összes űrlaprészletet űrlapadatoknak nevezzük.

Fontos! Emlékeztetni kell arra, hogy a normál űrlapokkal ellentétben minden adat kezelt formában kellékek formájában kell leírni. Az űrlapelemek adatforrásaként nem használhatók űrlapmodul-változók.

Lehetőség van hozzárendelésre Az űrlap fő kelléke, vagyis egy kellék, amely meghatározza az űrlap szabványos funkcionalitását (űrlapkiterjesztés). Emlékeztetni kell arra, hogy egy űrlapnak csak egy fő attribútuma lehet.

Az űrlap bővítése- ezek a ManagedForm objektuműrlap további tulajdonságai, metódusai és paraméterei, amelyek az űrlap fő elemét képező objektumra jellemzőek.

Az űrlap fejlesztése során a Nézet és Szerkesztés tulajdonságok segítségével kifejezetten beállíthatja az űrlap egyes részleteinek megtekintését és szerkesztését a szerepek tekintetében (további részletekért lásd a „Szerep alapú űrlap testreszabása” című részt). a „Szerkesztők” fejezetben). Ezenkívül egy adott attribútum elérhetősége magában az űrlapon a funkcionális opciók segítségével konfigurálható (a funkcionális opciókról bővebben a "Konfigurációs felület kezelése" című fejezetben olvashat).

Form kellékek tulajdonság Tárolt adatok annak a jele, hogy a kellékek interaktív megváltoztatása az űrlapadatok szerkesztési célú blokkolására, valamint a automatikus telepítés formamódosítás jele.

Kezelt formában elérhető adattípusok

A kezelt űrlap abban is különbözik a normál űrlaptól, hogy milyen adattípusokkal dolgozik. Ha a szokásos űrlap az 1C: Enterprise által biztosított típusok többségével működik (beleértve a DirectoryObject, DocumentObject stb. típust), akkor a következő típuskategóriákat lehet megkülönböztetni a kezelt formában:

  • Az űrlapon közvetlenül használt típusok azok, amelyek a vékony és webes kliens oldalán léteznek (például Number, ReferenceRef.Products, GraphicalSchema, TabularDocument);
  • típusok, amelyek speciális adattípusokká lesznek átalakítva - kezelt űrlap adattípusok. Az ilyen típusok az űrlapattribútumok listájában jelennek meg zárójelben, például (ReferenceObject.Goods);
  • dinamikus lista (további részletekért lásd e fejezet „Dinamikus lista” című részét).

Alkalmazásobjektumok átalakítása űrlapadatokká

Néhány alkalmazástípus (például DirectoryObject stb.) nem létezik vékony és webes kliensek oldalán (további részletekért lásd a „Koncepció” című fejezetet kezelt alkalmazás"). Ezért az ilyen alkalmazástípusok űrlapon való megjelenítéséhez a platform speciális adattípusokat vezetett be, amelyeket a kezelt űrlapokon való használatra terveztek. A felügyelt alkalmazások ezen funkciója szükségessé teszi az alkalmazásobjektumok adattá alakítását (és fordítva).

A következő adattípusok használatosak:

  • FormDataStructure – tetszőleges típusú tulajdonságok halmazát tartalmazza. A tulajdonságok lehetnek más struktúrák, gyűjtemények vagy gyűjteményekkel rendelkező struktúrák. Ezt a típust például DirectoryObject formában ábrázoljuk.
  • A FormData gyűjtemény a beírt értékek tömbszerű listája. A gyűjtemény egy eleme index vagy azonosító segítségével érhető el. Előfordulhat, hogy bizonyos esetekben nem érhető el azonosítóval történő hozzáférés. Ez a gyűjtemény által képviselt alkalmazásobjektum típusának köszönhető. Az azonosító bármilyen egész szám lehet. Ezt a típust például táblázatos rész formájában ábrázoljuk.
  • A FormDataStructureCollection egy olyan objektum, amely egyidejűleg struktúraként és gyűjteményként jelenik meg. Úgy kezelhető, mint ezen entitások bármelyike. Ez a típus például rekordkészlet formájában jelenik meg.
  • FormDataTree – az objektumot hierarchikus adatok tárolására tervezték.

Egy alkalmazásobjektumot egy vagy több űrlap adatelem képvisel. V Általános nézet az űrlapadatok hierarchiája és összetétele a kezelt űrlapalkalmazás-objektumok összetettségétől és egymáshoz való viszonyától függ.

Például egy táblázatos szakaszt tartalmazó dokumentumot egy FormDataStructure típusú objektum (maga a dokumentum) ábrázol, amelynek egy FormDataCollection típusú objektum (a dokumentum táblázatos része) van alárendelve.

Fontos! Konfiguráció tervezésekor fontos megjegyezni, hogy az alkalmazásobjektumok csak a szerveren érhetők el, míg az űrlapadat-objektumok a szerveren és a kliensen is használhatók.

Adattovábbítás a kezelt űrlap ügyféloldala és háttere között

Valójában azt mondhatjuk, hogy az űrlapadatok a különböző alkalmazásobjektumok adatainak egységes reprezentációja, amelyekkel az űrlap egységesen működik, és amelyek a szerveren és a kliensen egyaránt jelen vannak. Azaz az űrlap saját adattípusok formájában tartalmazza az alkalmazásobjektumok adatainak valamilyen "kivetítését", és szükség esetén konvertál közöttük. Ha azonban egy konfigurációfejlesztő saját adatfeldolgozási algoritmust valósít meg, akkor az adatkonverziót (speciális típusokból az alkalmazott típusokba és fordítva) függetlenül kell végrehajtania.

Az űrlapattribútumok speciális szerkesztőben történő szerkesztése során (további részletekért lásd a "Szerkesztők" fejezet "Űrlapattribútumok" című részét) lehetőség van a kliens és a szerver közötti adatátvitel befolyásolására az űrlap futása közben. Ehhez használja az attribútumszerkesztő oszlopát. Mindig használd... Ennek a tulajdonságnak a hatása háromféle attribútum esetében különbözik:

  • Egy dinamikus listának (dinamikus listaoszlop) alárendelt attribútum esetén:
    • property on - az attribútum mindig beolvasásra kerül az adatbázisból és szerepel az űrlapadatokban;
    • property off - a kellékek az adatbázisból kerülnek kiolvasásra, és csak akkor szerepelnek az űrlapadatokban, ha van ilyen Ebben a pillanatban egy kellékhez vagy annak alárendelt kellékhez kapcsolódó formaelem.
  • A tételgyűjtemény alá tartozó kellékekhez:
    • property on - a dokumentummozgások beolvasásra kerülnek az adatbázisból, és jelen lesznek az űrlapadatokban;
    • a tulajdonság le van tiltva - a dokumentummozgások nem kerülnek kiolvasásra az adatbázisból, és nem szerepelnek az űrlapadatokban (ha nincs dokumentummozgatásokra utaló űrlapelem).
  • Az űrlap további részletei:
    • tulajdonság engedélyezve – az attribútum jelen lesz az űrlapadatokban, függetlenül attól, hogy van-e legalább egy űrlapelem, amely az attribútumhoz vagy annak alárendelt attribútumához van társítva;
    • property off - a kellékek csak akkor lesznek jelen az űrlapadatokban, ha a kellékekhez vagy annak alárendelt kellékeihez formaelem tartozik. A dinamikus lista attribútumaival ellentétben itt nem számít az attribútumhoz társított elem láthatósága.

Jegyzet. Ne feledje, hogy a szülőattribútumban beállított tulajdonság minden alárendelt attribútumra hatással van. Például, ha a Használat tulajdonság mindig törlődik a dokumentum táblázatos részében, akkor a rendszer úgy ítéli meg, hogy ez a tulajdonság az összes alárendelt attribútum esetében is törlődik (a tulajdonság tényleges állapota ellenére).

Alkalmazásobjektum-adatok űrlapadatokká konvertálásának módszerei

Létezik egy sor globális módszer az alkalmazásobjektumok adatformává alakítására és fordítva:

  • ValueInForm adatok (),
  • FormDataValue (),
  • CopyFormData ().

Fontos! Az alkalmazásobjektumokkal működő módszerek csak a szervereljárásokban érhetők el. Az űrlapadatok közötti értékek másolásának módja elérhető a szerveren és a kliensen, mivel nem igényel alkalmazásobjektumokat paraméterként.

Amikor az űrlapadatokat alkalmazásobjektummá konvertálja, vegye figyelembe a kompatibilitást.

  • FormDataValue () - az alkalmazott típusú objektumot űrlapadatokká alakítja;
  • FormDataValue () - az űrlapadatokat egy alkalmazott típusú objektummá alakítja;
  • CopyFormData () - az űrlapadatokat kompatibilis szerkezettel másolja. Igazat ad vissza, ha a másolat készült, vagy False értéket, ha az objektumok szerkezete nem kompatibilis.

Jegyzet. A fő attribútumokkal rendelkező űrlap standard műveletei (űrlap megnyitása, szabványos Write parancs végrehajtása stb.) végrehajtásakor az átalakítás automatikusan megtörténik.

Íme egy példa arra, hogyan használhatja az adatátalakítást saját algoritmusaiban.

& AtServer eljárás onCreateAtServer (hiba, szabványos feldolgozás)

ObjectGood = Referencia könyvek.Goods.FindByDescription ("Kávékanna"). GetObject (); ValueVDataForm (ObjectObject, Object);

Az eljárás vége

& OnClient eljárás írása ()

WriteOnServer ();

Az eljárás vége

& AtServer eljárás WriteAtServer ()

ObjectObject = FormDataValue (Object, Type ("DirectoryObject.Goods")); ObjectObject.Write ();

Az eljárás vége

Ezenkívül a ManagedForm objektum metódusokkal rendelkezik a kiszolgálón:

  • ValueBFormAttribute () - az alkalmazott típusú objektumot a megadott űrlapattribútummá alakítja.
  • Form AttributeValue () - az űrlapadat attribútumot az alkalmazott típusú objektummá alakítja.

Ezeknek a módszereknek a használata általában kényelmesebb, mivel például információval rendelkeznek az űrlapattribútum típusáról. Ezenkívül a FormPropsBValue () metódus elvégzi az űrlapadatok és az objektum közötti leképezést, amelyet az üzenetek generálásakor használnak. Erről bővebben a "Navigációs szolgáltatás opciók" című fejezetben olvashat.

Nézzünk egy példát ezeknek a módszereknek a használatára.

& AtServer eljárás: RecalculateAtServer ()

// A props objektumot alkalmazásobjektummá alakítja. Dokumentum = AttributeFormVValue ("Objektum"); // Újraszámítást hajt végre a dokumentum modulban meghatározott módszerrel. Dokumentum.Újraszámítás (); // Az alkalmazásobjektumot visszaalakítja kellékekké. ValueVRequisitForm (dokumentum, "objektum");

Az eljárás vége

Programozói felület

FormDataTree (FormDataTree)

  • FindById
  • GetItems

Leírás:

A kezelt űrlapadatokban lévő fa modellezésére tervezték.

Ez az objektum szerializálható az XDTO-ba / az XDTO-ból. XDTO típusnak megfelelő ezt a tárgyat névtérben van megadva. XDTO típusnév:

GetItems

Szintaxis:

GetElements ()

Visszatérési érték:

Típus: FormDataTreeElement Collection.

Leírás:

Lekéri az elemek gyűjteményét a legfelső szintű fában.

Elérhetőség: kliens, szerver, vékony kliens, webes kliens.

FindById

Szintaxis:

FindById (<Идентификатор>)

Lehetőségek:

<Идентификатор>(kötelező)

Típus: Szám. A fa elem azonosítója.

Visszatérési érték:

Típus: FormDataTreeElement.

Leírás:

Gyűjteményelemet kap azonosító alapján.

Elérhetőség: kliens, szerver, vékonykliens, webkliens.

FormDataTreeItem (FormDataTreeItem)

Tulajdonságok:

<Имя свойства> (<Имя свойства>)

  • GetId
  • GetParent
  • GetItems
  • Ingatlan

Leírás:

Űrlap adatfa elem.

FormDataTreeItemCollection (FormDataTreeItemCollection)

Gyűjteményelemek: FormDataTreeElement

Egy objektum esetében a gyűjtemény a For every ... From ... Loop operátorral járható be. A bejárás a gyűjtemény elemeit választja ki. Egy gyűjteményelemre a [...] operátor segítségével lehet hivatkozni. Az elem indexe argumentumként kerül átadásra.

  • Beszúrás
  • Hozzáadás
  • Index (IndexOf)
  • Számol
  • Egyértelmű
  • Kap (kap)
  • Mozog
  • Töröl

Leírás:

Fa elemek gyűjteménye.

Elérhetőség: kliens, szerver, vékonykliens, webkliens.

Lásd még:

  • FormDataTreeElement, GetElements metódus
  • FormDataTree, GetElements metódus

Az értékfával való munka jellemzői

A fa frissítése

Van egy probléma esik platformokon a fa frissítésekor.

Ha egy csomópont ki lett bontva a fában és egy alárendelt csomópont van kiválasztva, akkor a fa frissítésekor a függvénnyel ValueInDataForm leesik az emelvény.

Megoldás: A frissítés előtt törölnie kell a fát.

Például:

& AtServer eljárás ClearTree (elemek) Az elemek minden eleméhez Loop ClearTree (element.GetElements ()); Ciklus vége; elemek.Tiszta (); Az eljárás vége

& AtServer eljárás Kitöltés ConceptTree () dzConceptions = cpProperties.Concept ConceptTree (OnDate, Meta.CurrentIB ()); ClearTree (ConceptTree.GetElements ()); ValueVDataForms (koncepció, fogalomfa); Az eljárás vége

& OnClient eljárás OnDateOnChange (Elem) Kitöltés ConceptTree (); Az eljárás vége