1c adattároló ideiglenes tároló. Átmeneti tároló. Hogyan hívják őket?

Értéktárban szinte bármilyen információ tárolható, pl.

... képek (fotók):

CurrentImage.Object = SprFabric.Link; CurrentImage.DataType = Felsorolások. Az objektumok további információinak típusai.Image; Tárhely = NewValueTárolás(ÚjKép, ÚjAdattömörítés()); CurrentImage.Storage = Storage.Get();

// ezen a helyen mindent megjelenít... Form Elements.PictureField1.Picture = Storage.Get(); CurrentImage.Write();

...táblázati dokumentum:

TabDoc=Új táblázatos dokumentum; TabDoc.Output(FormElements.TabularDocumentField1); Storage=NewValueStorage(TabDoc); Ír();

Az eljárás vége

Eljárás Restore FromStoragePress (Elem)

TabDoc=Storage.Get(); Ha a TabDoc<>Undefined ThenFormElements.TabularDocumentField1.Output(TabDoc); endIf;

Az eljárás vége

...tetszőleges fájlok (bináris adatok):

XZ = ÚjÉrtéktár(ÚjBinárisAdat(fájl));

Nyolc támogatja a tárolóban elhelyezett adatok tömörítését:

XZ = ÚjÉrtéktár(ÚjBinárisAdat(fájl),ÚjAdattömörítés(9));

... külső feldolgozás és jelentéskészítés:

LoadProcessingIntoStorage (PropsStorageType) eljárás

CompressionRate = NewDataCompression(9); //9 maximum PropsStorageType = New StorageValues(New BinaryData("c:\reports\report.epf", tömörítési sebesség));

Az eljárás vége

Eljárás indítási folyamat a tárolóból (PropsStorageType)

TemporaryFileName = TemporaryFileDirectory()+"report.epf"; BinaryData = PropsStorageType.Get(); BinaryData.Write(IdeiglenesFileName); ExternalProcessing = ExternalProcessing.Create(TemporaryFileName); ExternalProcessing.GetForm().Open();

Az eljárás vége

Munkatárolás

Ha bináris adat volt, akkor az értéktárból a Get metódussal visszaállítható, és a Write() metódussal fájlba írható.

Ha TypeValue (tárhely)<>Type("BinaryData") Ezután

BinaryData = Storage.Get();

BinaryData = Tárhely;

endIf; BinaryData.Write(Fájlnév);

Ha például Word dokumentumról van szó (doc fájl vagy más regisztrált fájltípus), akkor az így nyitható meg:

LaunchApplication(Fájlnév);

Az Értéktár típusú mező törléséhez hozzá kell rendelnie Undefined:

PropsStorage = Undefined;

Fájlokkal és képekkel való munkavégzés az 1C:Enterprise 8 beépített nyelven

Célja

A felügyelt alkalmazás új mechanizmust valósít meg a fájlokkal való munkavégzéshez. Fájlcserét biztosít az infobázis és az ügyfélalkalmazás között. Ennek a mechanizmusnak az a sajátossága, hogy vékony kliensben és webes kliensben való használatra készült, és figyelembe veszi a webböngészők által a fájlokkal való munkavégzésre vonatkozó korlátozásokat.

A mechanizmus olyan módszerek összessége, amelyek segítségével a felhasználó számítógépén helyben tárolt adatokat az információs bázis ideiglenes tárolójába lehet helyezni, ezeket az információkat az ideiglenes tárolóból az adatbázisba átvinni, majd visszakapni a felhasználó számítógépére. Az ezzel a mechanizmussal megoldott leggyakoribb alkalmazási problémák a kísérő információk tárolása, például áruképek, szerződésekkel kapcsolatos dokumentumok stb.

A módszer hatóköre

Átmeneti tároló

Az ideiglenes tárolás az információs bázis egy speciális területe, amelyben bináris adatok helyezhetők el. A fő cél az információk ideiglenes tárolása a kliens-szerver interakció során, mielőtt azok átkerülnének az adatbázisba.

Az ideiglenes tárolásra azért van szükség, mert a webböngésző működési modellje megköveteli, hogy a felhasználó által kiválasztott fájl közvetlenül a szerverre kerüljön, anélkül, hogy a kliensen tárolná. A fájl átvitelekor az ideiglenes tárolóba kerül, majd felhasználható objektumok adatbázisba írásakor.

Az ideiglenes tárolással megoldott legjellemzőbb alkalmazási feladat a fájlokhoz vagy képekhez való hozzáférés biztosítása, mielőtt az objektum az információs bázisba kerülne, például elem formájában.

A tárhelyen elhelyezett fájlt vagy bináris adatot egyedi cím azonosítja, amely később írási, olvasási vagy törlési műveletekhez használható. Ezt a címet a fájl ideiglenes tárolóba írásának módszerei adják meg. A beépített nyelvben egy külön módszer lehetővé teszi annak meghatározását, hogy az átadott cím ideiglenes tárolóban lévő adatokra mutató cím-e.

Információs bázis

A mechanizmus lehetővé teszi a Value Storage típusú attribútumokban tárolt bináris adatok elérését.

Az ideiglenes tároláshoz hasonlóan az információkhoz való hozzáférés egy speciális címen keresztül lehetséges. Ezt speciális módszerrel érheti el, ha átad egy hivatkozást egy objektumra vagy egy információs regiszter beviteli kulcsára, és az attribútum nevét. Táblázatos rész esetén a táblázatos rész sorindexének átvitele is szükséges.

A fájlokkal való munkavégzés módszerei korlátozottak az információs bázis részleteivel való munka során. Számukra az ideiglenes tárolással ellentétben csak az olvasási információ érhető el, de nem írható vagy törölhető.

A fájlokkal való munkavégzés módszereinek leírása

Adatok mentése ideiglenes tárhelyre

A mechanizmus használatának legjellemzőbb forgatókönyve a felhasználói adatok ideiglenes tárolása. Két módszer létezik erre: PlaceFile() és PlaceFileInTemporaryStorage().

Az első módszer, a PlaceFile(), a helyi fájlrendszerből ideiglenes tárolóba helyez egy fájlt. A metódus képes fogadni egy célcímet a tárhelyen. Ha nincs megadva, vagy üres karakterlánc, akkor egy új fájl jön létre, és a metódus a megfelelő paraméteren keresztül visszaadja a címét.

Ha az interaktív üzemmódot meghatározó paraméter True, akkor a metódus egy szabványos fájlkiválasztó párbeszédpanelt jelenít meg, amelyben kiválaszthatja a tárolóba helyezendő fájlt. Ebben az esetben a metódus a kiválasztott fájl címét is visszaadja.

Ennek eredményeként a metódus False értéket ad vissza, ha a felhasználó interaktív módon megtagadta a művelet végrehajtását a fájlkiválasztó párbeszédpanelen. A módszer csak az ügyfélnél érhető el.

A második metódus, a PlaceFileInTemporaryStorage() hasonló az előzőhöz, azzal a különbséggel, hogy elérhető a szerveren, és az ideiglenes tárolóba írandó adatok nem elérési útként jelennek meg a fájlrendszerben, hanem egy típusú változóként. Bináris adatok. Hasonlóképpen, ha nincs megadva célcím, egy új fájl jön létre a tárolóban. A címe a függvény eredményeként kerül visszaadásra.

Fájl lekérése az ideiglenes tárolóból

Amikor objektumot ír az információs bázisba, előfordulhat, hogy adatokat kell kivonnia az ideiglenes tárolóból, és el kell helyeznie azokat például egy attribútumba. Ehhez létezik egy megfelelő kiszolgáló metódus - GetFileFromTemporaryStorage(). Ez a módszer lekéri az adatokat az ideiglenes tárolóból, és ennek eredményeként visszaadja azokat. Ehhez meg kell adnia az ideiglenes tárhely címét. Ezt a címet a fent leírt PlaceFile() és PlaceFileInTemporaryStorage() metódusok adják vissza, ha sikeresen végrehajtásra kerültek.

Fájl törlése az ideiglenes tárolóból

Az adatok Részletekben történő mentése után az ideiglenes tárolóban lévő fájl törölhető. Erre a célra létezik egy DeleteFileFromTemporaryStorage() metódus, amely törli a fájlt az ideiglenes tárolóból. A metódus paraméterként veszi az ideiglenes tárolóban lévő fájl címét. Elérhető a szerveren.

Az ideiglenes tárolás címének ellenőrzése

A fájl címe jelezheti mind az ideiglenes tárolást, mind a részleteket az információs bázisban. A típusának ellenőrzéséhez létezik egy This isTemporaryStorageAddress() metódus.

Ellenőrzi, hogy az átadott cím az áruházra mutató cím-e. Igaz értéket ad vissza, ha a cím ideiglenes tárolóra mutat. A módszer elérhető a szerveren.

A kellékek címének átvétele

Miután az adatokat elhelyezte az információs bázis adatai között, előfordulhat, hogy fájlmódszerekkel kell hozzáférnie.

Mielőtt azonban adatokat kapna, például egy ingatlantól, meg kell szereznie ennek a tulajdonnak a címét. Erre a célra létezik egy GetFileAddressInInformationBase() metódus.

Célja, hogy az eredeti paraméterek szerint visszaadja a fájl címét az infobázisban. Ehhez át kell adni az objektumkulcsot (ez lehet az objektumra mutató hivatkozás vagy az információs regiszter beviteli kulcsa) és az attribútum nevét. Ha egy táblázatos részattribútumban tárolt fájl címét kell lekérni, akkor az attribútum nevét megadó paraméterben az attribútum neve elé, akkor hozzá kell adni a táblázatos rész nevét és egy „.” pontot. A módszer a kliensen és a szerveren is elérhető.

Fájl lekérése az információs bázisból

A GetFile() metódus fogad egy fájlt az információs bázisból, és elmenti a felhasználó helyi fájlrendszerébe. Az első paraméter megadja a fájl címét a kellékekben vagy az ideiglenes fájltárolóban. A második paraméter az eredményül kapott fájl célhelyét adja meg. Nem interaktív módban meg kell adni az elérési utat. Interaktív módban a paraméter nem kötelező.

Alapértelmezés szerint a metódus interaktív módban fut, vagyis az utolsó paraméter True. Ez azt jelenti, hogy megjelenik egy párbeszédpanel, amelyben megadhat egy műveletet a kapott fájllal: futtassa vagy mentse a felhasználó által megadott helyre. Ha az interaktív mód aktív, és a Target disk file path paraméter nincs megadva, akkor a fájlmegnyitási művelet nem érhető el. Logikai értéket ad vissza. A False azt jelenti, hogy a felhasználó úgy döntött, hogy megszakítja a műveletet az interaktív fájlmentési párbeszédpanelen.

Példa a fájlmódszerek használatára

// Fájl fogadása a lemezről interaktív módban // és ideiglenes tárolóba helyezése &Az ügyféleljárásban SelectDiskFileAndWrite()

Változó SelectedName; VariableTemporaryStorageAddress; Ha PutFile(Ideiglenes Tárhelycím, KiválasztottNév, Igaz) Akkor Object.FileName = KiválasztottNév; PlaceObjectFile(TemporaryStorageAddress); endIf;

Az eljárás vége

// Fájl másolása ideiglenes tárolóból könyvtárba // attribútum, objektum rögzítése, fájl törlése az ideiglenes // tárhelyről &A szervereljáráson Helyezze el az objektumfájlt (ideiglenes tárolási cím)

Könyvtárelem = Form AttributesValue("Object"); BinaryData = GetFileFromTemporaryStorage(TemporaryStorageAddress); Directory Element.File Data = NewValueStorage(BinaryData); FilePathOnDisk = Új fájl(DirectoryItem.FileName); Directory Item.FileName = FilePathOnDisk.Name; Könyvtár elem.Write(); Módosítva = False; DeleteFileFromTemporaryStorage(TemporaryStorageAddress); ValueВFormAttributes(Könyvtárelem, "Objektum");

Az eljárás vége

// Fájl beolvasása a kellékekből és mentése // a helyi lemezre interaktív módban &A kliens eljárásban ReadFileAndSaveToDisk()

Cím = GetFileAddressInInformationBase(Object.Link, "FileData"); GetFile(cím, objektum.fájlnév, igaz);

Az eljárás vége

Címek támogatása a képmezőben

A Képmező vezérlő támogatja az ideiglenes tárolóban vagy adatbázisban lévő fájl címe által meghatározott kép megjelenítését.

Ehhez be kell állítani egy string típusú attribútumot az űrlapelem Data tulajdonságában. Ennek az attribútumnak az értéke a kép címeként lesz értelmezve.

Példa // A képmező hozzárendelése a kép címéhez az ideiglenes // tárhelyen. Az AddressPictures űrlaprészletek a karakterlánc típusúak

Helyfájl (PictureAddress, True)

Picture.Data = CímKépek

Korlátozások a webes klienssel végzett munka során

A leírt mechanizmus működése a webes kliens használatakor bizonyos korlátokkal rendelkezik. Ezek a korlátozások a böngésző biztonsági modelljéhez kapcsolódnak. Így például a kliens nem tud önállóan elmenteni egy fájlt a helyi fájlrendszerbe, vagyis csak a PlaceFile() és a GetFile() kliens metódusok interaktív változata érhető el. Kivételt jelent, ha nem interaktív módot próbál használni. Az interaktívan megjelenő párbeszédpanelek a böngésző típusától függenek.

Funkciók, amikor a Value Storage szolgáltatással dolgozik az ügyfélen

Probléma:

Ha egy dokumentumnál a táblázatos részben Értéktár típusú attribútum szerepel, lelassítja a dokumentuműrlap megnyitását, ha ez az attribútum nagy adatot tartalmaz.

Feltételezett ok:

Lehetséges, hogy egy űrlap megnyitásakor nem a Value Store-ban található adatokra mutató hivatkozást küldik el a kliensnek, hanem magát az adatot.

Megoldás

  • Az űrlap table attribútumának tulajdonságai között van egy "Mindig használd" jelző. Ha be van állítva, a mező tartalma mindig átvitelre kerül a szerver és a kliens között - például egy űrlap megnyitásakor. Ezt a jelzőt le kell tiltani, de ezt figyelembe kell venni a kódban, mivel a kliensen alapértelmezés szerint ennek a mezőnek nem lesz értéke. Példa található az 1C:Archívumban.

Még jobb használni Átmeneti tároló fájlok átviteléhez a kliens és a szerver között.

Az anyag frissítve, hogy megfeleljen a Drupal 8.7.0+ verziójának

Temp bolt(ideiglenes tárolás) - lehetővé teszi bármilyen adat ideiglenes tárolását. Ez egyfajta adattárolás a $_SESSION-ban, mivel ez a tárhely általában egy bizonyos felhasználóhoz van társítva. De nem használja a $_SESSION-t, és mindent a rendszeren belül tárol (az adatbázisban).

A magnak két ideiglenes tárolási szolgáltatása van, a tempstore.private és a tempstore.shared. Ezek ugyanúgy működnek, de a privát mindig egy adott felhasználó adatait tárolja. Ez azt jelenti, hogy egy kulcs hívása egy privát tárhelyről különböző adatokat ad vissza minden felhasználó számára. A Megosztott minden felhasználó számára elérhető.

E szolgáltatások alkalmazási köre és tárolása igen széles lehet. Például tároljon néhány ideiglenes űrlapértéket, és ha a felhasználó nem mentette el őket, akkor ezek visszaállíthatók ebből a tárolóból, például egyes REST-űrlapok esetében, és akár normálak számára is alkalmasak. Általánosságban elmondható, hogy mire van elég fantáziája vagy feladatai. Ez például használható bizonyos Drupalon kívül vezérelt űrlapokhoz, például a React vagy a Vue-ban.

Az ezekben a tárolókban lévő értékek alapértelmezés szerint 604 800 másodpercig (1 hétig) élnek, ezután automatikusan törlődnek.

Ennek az értéknek a megváltoztatásához. Csatlakoznia kell például a sites/default/services.yml fájlhoz, és újra kell definiálnia:

Paraméterek: # 10 másodperc tempstore.expire: 10

De ennek jó okkal nem szabad megtörténnie.

Nézzük meg az egyes tárolóeszközök képességeit, bár hasonlóak, kissé eltérnek egymástól.

tempstore.private - magántárhely

Ez a tárhely minden felhasználó számára privát.

tempstore.shared – megosztott tárhely

Ez a tárhely megosztott, és minden felhasználó számára közös adatokat tartalmazhat.

Az adattár a következő módszerekkel rendelkezik:

  • get($key) : Lekér egy értéket az áruházból a kulcsával. Ha nincs adat, akkor NULL-t ad vissza, ha van, akkor értéket ad vissza.
  • getIfOwner($kulcs): Lekér egy értéket az áruházból a kulcsával. Ha nincs adat, vagy nem az aktuális felhasználó alá írták az adatokat, akkor NULL értéket ad vissza, ha van és az aktuális felhasználó alá írták, akkor az értéket adja vissza.
  • setIfNotExists($kulcs, $érték) : A $key kulcs alatti $érték értéket csak akkor írja a tárhelyre, ha az adott kulcshoz jelenleg nincs adat. TRUE értéket ad vissza, ha rögzítették, FALSE-t, ha már rögzítettek adatokat.
  • setIfOwner($kulcs, $érték) : A $key kulcs alatti $érték értéket csak akkor írja a tárhelyre, ha jelenleg nincs adat, vagy a tényleges adatok tulajdonosa az aktuális felhasználó.
  • set($key, $value) : A $érték értéket a $key kulcs alá írja a tárhelyre.
  • getMetadata($key) : Egy adott $key metaadatait adja vissza adatok nélkül. Ez egy objektum, amely tartalmazza a tulajdonos tulajdonságot, amely tárolja az értéket, kié az érték, és a frissített tulajdonságot - az érték írásának időpontjának Unix időbélyegét.
  • delete($key) : Törli az adott $kulcshoz tartozó adatokat a tárhelyről.
  • deleteIfOwner($key) : Csak akkor törli a tárhelyről az adott $kulcshoz tartozó adatokat, ha az adatok az aktuális felhasználóhoz tartoznak.

Hogyan hívják őket?

Kis példák arra, hogyan hívjuk őket.

Első lépésként beszerezzük a szükséges tárhely tempstore-ját, majd a tárolóból egy „gyűjtemény” keletkezik, ahol már a szükséges kulcsok alatt tárolódnak az adatok. Általános szabály, hogy a "gyűjtemény" neve megegyezik a modul nevével.

Használja a Drupal\Core\TempStore\PrivateTempStoreFactory; a Drupal\Core\TempStore\SharedTempStoreFactory használata; /** @var PrivateTempStoreFactory $private_tempstore */ $private_tempstore = \Drupal::service("tempstore.private"); $saját_privát_tárhely = $privát_tempstore->get("dummy"); $my_private_storage->set("felhasználónév", "Drupal"); /** @var SharedTempStoreFactory $shared_tempstore */ $shared_tempstore = \Drupal::service("tempstore.shared"); $my_shared_storage = $megosztott_tempstore->get("dummy"); $my_shared_storage->set("felhasználónév", "Drupal");

Példa

A példában a /temp-store-form oldalon hozunk létre egy űrlapot két mezővel, amelyek közül az egyik privát tárhelyen, a másik nyilvánosan tárolja az üzenetet.

Hozzon létre egy űrlapot:

Src/FormWithTempStore.php

privateTempStore = $private_temp_store->get("dummy"); $this->sharedTempStore = $shared_temp_store->get("dummy"); ) /** * (@inheritdoc) */ nyilvános statikus függvény create(ContainerInterface $container) ( return new static($container->get("tempstore.private"), $container->get("tempstore.shared") ); ) /** * (@inheritdoc) */ nyilvános függvény getFormId() ( "form_temp_store" visszaküldése; ) /** * (@inheritdoc) */ nyilvános függvény buildForm(tömb $form, FormStateInterface $form_state) ( $forma ["private_message"] = [ "#type" => "textarea", "#title" => $this->t("Privát üzenet"), "#required" => TRUE, "#description" => $ this->t("Ez az érték privát lesz minden felhasználó számára."), "#default_value" => $this->privateTempStore->get("message"), ]; $form["shared_message"] = [ " #type" => "textarea", "#title" => $this->t("Megosztott üzenet"), "#required" => TRUE, "#description" => $this->t("Ez az érték meg lesz osztva minden felhasználó számára."), "#default_value" => $this->sharedTempStore->get("üzenet"), ]; $form["actions"] = ["#type" => "actions" $form["actions"]["submit"] = [ "#type" => "submit", "#value" => $this->t("Mentés"), ]; return $forma; ) /** * (@inheritdoc) */ public function submitForm(tömb &$form, FormStateInterface $form_state) ( $this->privateTempStore->set("message", $form_state->getValue("privát_üzenet")); $this->sharedTempStore->set("üzenet", $form_state->getValue("shared_message")); ) )

Nyomtatás (Ctrl+P)

Az 1C:Enterprise rendelkezik egy mechanizmussal az ideiglenes tároláshoz, amely bizonyos munkamenetekkel kapcsolatos adatok tárolását biztosítja.
Ezen túlmenően a fájlokkal való munkavégzés mechanizmusa is megvalósult, amely biztosítja a fájlcserét az infobázis és a kliens alkalmazás között. Ennek a mechanizmusnak az a sajátossága, hogy vékony kliensben és webes kliensben való használatra tervezték, és figyelembe veszi a webböngészők által a fájlokkal való munkavégzésre vonatkozó korlátozásokat.

Átmeneti tároló

Ez egy speciális információtároló, amelybe egy érték elhelyezhető. A fő cél az információk ideiglenes tárolása a kliens-szerver interakció során, mielőtt azok átkerülnének az adatbázisba. Az ideiglenes tárolási mechanizmus a fájlkezelő mechanizmussal együtt olyan készletet ad, amellyel a felhasználó számítógépén helyben tárolt adatok elhelyezhetők az információs bázis átmeneti tárolójában, ezek az információk az ideiglenes tárolóból az adatbázisba továbbíthatók, visszaküldi a felhasználó számítógépére. A leggyakoribb alkalmazási problémák, amelyeket ezekkel a mechanizmusokkal oldanak meg, a kísérő információk tárolása, például áruképek, szerződésekkel kapcsolatos dokumentumok stb. Az ideiglenes tárolás és a fájlokkal való munka mechanizmusait gyakran együtt, de külön-külön is használják.
Az ideiglenes tárolás szükségessége például azért merül fel, mert a webböngésző modell megköveteli, hogy a felhasználó által kiválasztott fájl közvetlenül a szerverre kerüljön anélkül, hogy azt a kliensen tárolhatná. A fájl átvitelekor az ideiglenes tárolóba kerül, majd felhasználható objektumok adatbázisba írásakor.
Az ideiglenes tárolót univerzális tárolóként használhatja szabályozott adatélettartammal:

1. Ha az adatok átmeneti tárolóba helyezésekor az adatokat egy bizonyos formához kötötték, akkor a tárolt adatok élettartama attól függ, hogy az adatlap várható élettartama, amelyhez az adatot köti. Amikor töröl egy űrlapobjektumot, az ideiglenes tárhely minden hozzá társított információtól törlődik.

2. Ha az adatok ideiglenes tárolóba helyezésekor nem fejeződött be az űrlaphoz való kötés, akkor az ideiglenes tároló törlődik a következő esetekben:

  • Amikor legközelebb kéri az űrlapot.
  • A következő szerver hívása a kliens közös moduljából.
  • Kontextuális és nem kontextuális ügyfélhívásokhoz az űrlapról.
  • Ha parancsmodulból szerveroldali meghívást kap. Ha egy kiszolgálóhívást kezdeményeznek egy érték ideiglenes tárolóba helyezésére, akkor nem történik tisztítás. A tisztítás azután történik, hogy a hívás befejezte a munkáját.

Ez azt jelenti, hogy egy vagy több értéket helyezhet el az ideiglenes tárolóba, és használhatja ezt az értéket a következő hívásban. Használat után és a szerverhívás befejezése előtt azonban az elhelyezett érték automatikusan törlődik.

Az ideiglenes tárolással megoldott legjellemzőbb alkalmazási probléma a fájlokhoz vagy képekhez való hozzáférés biztosítása azelőtt, hogy az objektumot például elem formájában rögzítenék az információs bázisba. Az ilyen hozzáférés megszervezésekor ajánlatos az adatokat az ügyfélszámítógépekről a szerverre pontosan fájlként továbbítani, anélkül, hogy előzetesen „konvertálnánk” szöveges dokumentummá, táblázatkezelő dokumentummá és az 1C:Enterprise rendszer hasonló formátumaiba. Javasoljuk, hogy a fájlt a szerver oldalra vigye át, és a szerver oldalon töltse be a fájl adatait a kívántba
az 1C:Enterprise rendszer formátuma.
A tárhelyen elhelyezett adatokat egyedi cím azonosítja, amely később írási, olvasási vagy törlési műveletekben használható fel. Ezt a címet az ideiglenes tárolóba való érték írásának módszerei adják meg. A beépített nyelvben egy külön módszer lehetővé teszi annak meghatározását, hogy az átadott cím ideiglenes tárolóban lévő adatokra mutató cím-e.
Az egyik munkamenetben létrehozott ideiglenes tárhely nem érhető el egy másik munkamenetből. Kivételt képez az a lehetőség, hogy átmeneti tárhely használatával adatokat vihetünk át egy háttérfeladatból a háttérfeladatot kezdeményező munkamenetbe.

Burty . A burgonya, gyökérzöldségek és fehér káposzta tárolásának legelfogadhatóbb módja a palackozás. A cölöp egy hosszúkás töltés, mindkét oldalon ferde, felül szigetelőanyaggal borított. A betakarítás egy szezonra való tárolására készült. A burgonyát sima felületre öntve a burgonyát őrölni lehet, sekély gödrök ásásakor pedig félig őrölni. Popunautny (eltemetett) halom. Egy ilyen halomhoz 25 cm mélységű gödröt ásunk északról délre.A vetőburgonyának a legjobb gödör szélessége 170-200 cm Az egészséges burgonya rövid távú tárolására készíthetünk szélesebb töltés (legfeljebb 4 m). A gödör hossza tetszőleges lehet, de ennek ellenére jobb, ha nem több 20-25 m-nél. A cölöp töltésének magassága 2 m tövénél szélességével 90-90 is lehet. 100 cm Általában a burgonyát több kupacban tárolják egy helyen. A fúróhelyet burgonyatermesztő területek közelében, esőtől és olvadékvíztől nem elárasztott helyen, az úttól nem messze helyezik el. A gödör középső tengelye mentén 20-25 cm széles és mély szellőzőcsatorna van kiásva, amely túlnyúlik a gödörön és 25 cm-rel hosszabb, mint a gallér végén lévő burkolat. A csatorna gödör határain túlnyúló részét felül deszkákkal szorosan letakarják, hogy a gödörbe és a csatornába ne kerüljön föld. A talajgallérokban a szellőzőcsatorna közvetlenül a talaj felszínén van elhelyezve, és különálló másfél méteres szakaszokból álló rácssátor formájában készül. Annak érdekében, hogy a szalma és a föld ne kerüljön a szellőzőcsatornába, végei rések nélkül készülnek. A szellőzőcsatornák lefedésére előzetesen 1,5 m hosszú és 0,5 m széles rácsszakaszokat készítünk.A szakasz 2-3 cm széles lécekből és a köztük lévő 2-2,5 cm-es hézagokból áll A szakaszokat a szellőzőcsatornára fektetjük és rögzítjük egymás. Az így létrejövő folyamatos szellőzőrács lefedi a csatorna termék alatti részét. A burgonya- vagy egyéb termékdomb kialakítása során a belsejébe galléros hőmérőt vagy speciálisan erre a célra készített 3x3 cm belső keresztmetszetű tetraéderes csőtokokat helyeznek el, amelyekbe a rúd végén hőmérőket helyeznek. A gallérok szellőzése gerincen és szellőzőcsatornán keresztül történik. A cölöpöket szalmával és földdel borítják. A teljes vastagságú szalmát alulról felfelé sűrű rétegben fektetik le úgy, hogy a halom gerince átfedje. Ezt követően a halom oldalát vékony földréteggel meghintjük. A kupac gerince az első fagyig szalmatakarás alatt marad. Esős ​​időben ideiglenesen tetőfedővel vagy műanyag fóliával borítják. Ha a burgonyát a stabil fagyok beállta előtt +4°C-ra hűtik le, a szellőzőcsatornákat szorosan szalmával, a kupacot pedig teljesen letakarják földdel. Ha a cölöpök hőmérséklete +1°C alá csökken, a cölöpöket hőszigetelő anyagokkal - tőzeggel, szalmával, szalmatrágyával vagy hóval - borítják. Erős havazás esetén, ami a cölöpök túlzott lefedéséhez vezet, rendszeresen megtisztítják a hótól.

Ároktárolás . Ez a tárolási mód 2-szer kevesebb szalmát vagy egyéb hőszigetelő anyagot igényel, mint a halomban történő tárolásnál. Az árkokat akkor használják, ha a talajvíz mély. Az árok mélysége és szélessége 60-80 cm (a déli régiókban) és 1,5-2 m (Szibériában). Az árkokat felül szalmaréteggel borítják: a központi régiókban 30-40 cm, Szibériában - akár 70 cm. Ezután egy földréteget öntenek (40-70 cm a zónától függően). Általában különböző típusú árkokat használnak: sekély, mély szellőzőcsatornákkal, talajréteggel és réteg nélkül, valamint közönséges. Az árkok és cölöpök (természetes) egyszerű szellőzéssel vannak ellátva. Fő célja a burgonya és a zöldség őszi hűtése. A befúvó és elszívó szellőztetés működési elve a légnyomáskülönbségen alapul, i.e. a felfelé irányuló légmozgás huzatára a termékek kötegében és a külső hőmérsékletkülönbség miatt. A meleg levegő, mivel könnyebb, a kipufogócsövön keresztül távozik, a hideg levegő pedig a bevezető csatornán keresztül jut be. A szellőzőrendszer befúvó és elszívó csatornákból áll. A bemeneti csatorna a gallér tövének közepén fut, a végein pedig kijáratok vannak. A burgonyával és gyökérzöldségekkel rakott halmokban 20x20 cm vagy 30x30 cm keresztmetszetű hornyot készítenek, rácsos deszkákkal, keresztlécekkel vagy kefével borítva, hogy a termék egyes példányai ne eshessenek át. Ezen a csatornán keresztül hidegebb külső levegő áramlik a kéménybe a gravitáció hatására. A felmelegített levegőt a kötegből elszívó csatornákon (csöveken) távolítják el. 20x20 cm vagy 15x15 cm keresztmetszetű deszkákból készült tetraéderes dobozok, az alsó részükben a zöldségrétegen áthaladva rácsosak, a felső részen pedig a menedéken átmenve tömörek. hogy föld ne hulljon beléjük. A tetejükre egy lombkorona van felszerelve, amely megvédi a termékeket az esővíztől. A kipufogócsövek a raktározásra tárolt zöldségek jellemzőitől és minőségétől függően 2-4 m-enként kerülnek beépítésre a kupac hosszában. A függőleges kipufogócsövek egyik hátránya, hogy a meleg és nedves levegőt csak a köteg szomszédos területeiről távolítják el, a távoli területeket pedig alig hűtik. Víz folyik be a kipufogócsövek közelében, izzadva és megfagyva a termékeket, mivel itt a menedék kevésbé sűrű és megbízható. Ezért gerinc elszívó szellőztetést alkalmaznak. A zöldségek száraz, hűvös időben történő tárolásakor az árok gerincét csak szalma borítja, amelyen keresztül távozik a meleg levegő. Az ilyen körülmények azonban ritkák, az időjárás ősszel gyakran esős. Ilyen esetekben vízszintes kipufogócsatornát kell felszerelni - 90°-os szögben összeütött táblákat, amelyeket egy zöldséghalomra helyeznek, amelynek végei kifelé nyílnak. Ebben az esetben a gerinc mentén lévő árok azonnal letakarható szalmával és földdel, anélkül, hogy félne attól, hogy a szalma átnedvesedik és a termék megfagy. Csak a végfuratokat kell időben bezárni. A vízszintes gerincű elszívó csatorna előnye a függőleges elszívó szellőzőcsövekkel szemben az is, hogy ebben az esetben a meleg és nedves levegő egyenletesen távozik a teljes termékkötegből.

Gödör. A legegyszerűbb tárolás egy földes gödör, amelyet leggyakrabban egy kis adag burgonya és esetenként gyökérnövények tárolására szánnak. Magas, alacsony talajvízszintű területen ásják. A talaj sűrűségétől függően egyenes vagy ferde falakkal ásják. A legelfogadhatóbb gödörforma a kerek, de néha téglalap alakúak is. Sűrű agyagos talajba lyukat ásnak, olyan alakúak, mint egy kancsó. Homokos talajban ezt nem ajánlatos megtenni, mert összeomlik. Gödröt ásnak a következőképpen: rajzoljunk egy 1 m átmérőjű kört és ássuk ki a kancsó nyakát, majd mélyebbre ásva fokozatosan tágítsuk ki a lyukat 2-2,5 m átmérőjűre. A gödörkanna mélysége 1,5-2 m legyen, hogy az olvadékvíz ne kerüljön a gödörbe, a nyak nyílása köré eltávolított agyaghengert helyezünk. Az ilyen tárolót lejtőn elhelyezett fedéllel fedik le, hogy az esővíz elguruljon. Egy jól elkészített gödörkorsó 30-40 évig bírja javítás nélkül. Télen állandóbb hőmérsékletet és páratartalmat tart fenn, mint egy normál pincében. Az ilyen gödörben lévő burgonya nem izzad, és sokáig nem csírázik. A burgonyát kis gödrökben, szellőzés nélkül tárolják. A nagyoknál a szellőzőcsövet a gödör aljába vert deszkákból vagy négy karóból szerelik fel, és szalma zsinórral tekerik. A burgonyát egy vödör segítségével engedik le a lyukba. Két kötelet kötnek a vödörhöz: az egyiket a fogantyúhoz, a másikat az aljához. Miután a vödör elérte a padlót, húzza meg az aljára rögzített kötelet. Ugyanakkor a vödör felborul, és a burgonya kiborul. A gumók nem sérülnek meg ezzel a visszatöltési módszerrel. A bödörkancsó burgonyával való megtöltése után a nyakát szalmával és fedővel lezárjuk. Az első két hétben a burgonya levegőzésekor sok nedvességet szabadít fel, ezért a szalmaréteg ne legyen vastag. Később a réteget 50-70 cm-re állítják be, a helyi téli körülményektől függően.

Nyomtatás (Ctrl+P)

Ez a szakasz az ideiglenes tárolókkal és fájlokkal való munkavégzés mechanizmusának leggyakoribb felhasználásait írja le.

Adatok mentése fájlból ideiglenes tárhelyre

Egy fájl elhelyezése

A PlaceFile() metódus egy fájlt helyez el a helyi fájlrendszerből az ideiglenes tárolóba. A metódus elfogad egy címet az ideiglenes tárolóban, ahová a fájlt menteni kell. Ha a cím nincs megadva, vagy üres karakterlánc, akkor egy új cím jön létre, és a metódus egy speciális paraméteren keresztül visszaadja azt.
Jegyzet. Az ügyfél és a szerver között a PutFile() metódus egyetlen hívása során áthelyezett adatmennyiség
Ha az interaktív üzemmódot meghatározó paraméter True, akkor a metódus egy szabványos fájlkiválasztó párbeszédpanelt jelenít meg, amelyben kiválaszthatja a tárolóba helyezendő fájlt. Ebben az esetben a metódus a kiválasztott fájl címét is visszaadja.
Ennek eredményeként a metódus False értéket ad vissza, ha a felhasználó interaktív módon megtagadta a művelet végrehajtását a fájlkiválasztó párbeszédpanelen.

Fájlkészlet elhelyezése

Módszer HelyFájlok() több fájlt helyez el egy hívásban ideiglenes tárolóba. Ennek a módszernek több különböző módja van:
● előre generálja a hozzáadandó fájlok listáját, például ha előzőleg kiválasztotta azokat a fájlokat, amelyeket el kell helyezni az információs bázisba;
● adjon meg egy fájlkereső maszkot a metódusnak, például amikor egy bizonyos típusú összes fájlt, például az összes képet el akarja helyezni az információs adatbázisba;
● adjunk át egy korábban elkészített objektumot a metódusnak Fájlválasztó párbeszédablak fájlmegnyitási módban.
A munka befejezése után a metódus visszaadhatja a ténylegesen hozzáadott fájlok listáját.

// FileList – a ValueList típus formájának attribútuma,
// tartalmazza a hozzáadott fájlok listáját
FileArray = Új tömb;
A lista minden eleméhez a Fájllista ciklusból
FileArray.Add(NewDescriptionofTransferFile(ListaElement,));
EndCycle;
Elhelyezett fájlok= Új tömb;
Eredmény = PlaceFiles(tömbfájl, elhelyezett fájlok, hamis, egyedi azonosító);

1. megjegyzés: A módszer használatához HelyFájlok() A webes klienshez fájlfeldolgozó kiterjesztés csatlakoztatása szükséges.
2. megjegyzés: Az ügyfél és a szerver között áthelyezett adatok mennyisége metódushívásonként HelyFájlok(), nem haladhatja meg a 4 Gb-ot (soros formában).

Adatok elhelyezése átmeneti tárhelyen

A metódus hasonló a PlaceFile() metódushoz, azzal az eltéréssel, hogy az ideiglenes tárolóba írandó adatokat
nem elérési útként jelennek meg a fájlrendszerben, hanem értékként. Hasonlóképpen, ha nincs megadva meglévő cím az ideiglenes tárolóban, akkor új cím jön létre. A cím a függvény eredményeként kerül visszaadásra. A fájlokhoz hasonlóan a közzétett adatoknak valamilyen űrlaphoz kell tartozniuk, és a törlés után automatikusan törlődnek.
Jegyzet. Az ügyfél és a szerver között áthelyezett adatok mennyisége metódushívásonként PlaceInTemporaryStorage(), nem haladhatja meg a 4 Gb-ot (soros formában).
Figyelem!Átmeneti tárolóba helyezve az érték valójában nem sorosodik. A rendszer elhelyezi az értékre való hivatkozást, és 20 percig tárolja a gyorsítótárban. Ezen időszak letelte után az értéket sorba rendezik, lemezre írják (munkamenet adattároló), és eltávolítják a gyorsítótárból.

Adatok lekérése az ideiglenes tárolóból

Amikor objektumot ír egy információs bázisba, előfordulhat, hogy adatokat kell kivonnia az ideiglenes tárolóból, és el kell helyeznie azokat például egy infobase objektum attribútumba. Erre van egy speciális módszer - GetFromTemporaryStorage(). Ez a módszer lekéri az adatokat az ideiglenes tárolóból, és visszaadja azokat a végrehajtás eredményeként. Az adatok fogadásához ideiglenesen meg kell adni a címet
tárolás. Ezt a címet az adatok ideiglenes tárolóba helyezésének módszerei adják vissza, ha sikeresek (lásd az előző szakaszokat).
Figyelem! Amikor lekér egy értéket a kiszolgálón lévő ideiglenes tárhelyről, figyelembe kell vennie, hogy azt referenciaként kapja meg. A valóságban ez a hivatkozás a gyorsítótárban tárolt értékre mutat. A tárolóba helyezéstől vagy az utolsó hozzáféréstől számított 20 percen belül az érték a gyorsítótárban tárolódik, majd lemezre kerül, és törlődik a gyorsítótárból. Az érték legközelebbi elérésekor betöltődik a lemezről, és visszakerül a gyorsítótárba.
A deszerializálás és az ideiglenes tárolásból származó értékek visszaállítása után a hivatkozások nem állnak vissza. A gyorsítótár értéke visszaáll a lemezről. De szerializálás/deszerializálás után lehetetlen visszaállítani az értéken belüli más objektumokra való hivatkozásokat.

Adatok törlése az ideiglenes tárolóból

Miután az adatokat elmentette az infobase objektum attribútumba, az ideiglenes tárolóban lévő adatok törölhetők. Erre van egy módszer
RemoveFromTemporaryStorage(), amely az eltávolítást végzi. A metódus egy ideiglenes tárolóban lévő címet vesz fel paraméterként.

Az ideiglenes tárolás címének ellenőrzése

A cím mind az ideiglenes tárolást, mind az információs bázis adatait jelezheti. Van egy módszer a típusának ellenőrzésére
Ez IdeiglenesStorageAddress(). Ellenőrzi, hogy az átadott cím az áruházra mutató cím-e. Igaz értéket ad vissza, ha a cím ideiglenes tárolóra mutat.

A kellékek címének átvétele

Miután az adatokat elhelyezte az infobase objektum attribútumban, előfordulhat, hogy fájlmetódusokkal kell hozzáférnie.
Mielőtt azonban adatokat kapna, például egy ingatlantól, meg kell szereznie ennek a tulajdonnak a címét. Erre van egy módszer GetNavigationLink().

Az eredeti paraméterek alapján vissza tudja adni az érték címét az infobázisban. Ehhez át kell adnia az objektumkulcsot (ez lehet
mind az objektumra mutató hivatkozás, mind az információs regiszter beviteli kulcsa) és az attribútum neve. Ha meg kell szereznie az attribútumban tárolt érték címét
táblázatos részt, majd az attribútum nevét megadó paraméterben az attribútum nevéhez hozzá kell adni a táblázatos rész nevét és egy „.” pontot. Például: Termékek.Kép

Fájl lekérése az információs bázisból

Egy fájl fogadása

A GetFile() metódus fogad egy fájlt az információs bázisból, és elmenti a felhasználó helyi fájlrendszerébe. Az első paraméter a fájl címét adja meg az infobase objektum attribútumában vagy az ideiglenes fájltárolóban. A mentés nem történik meg, ha a felhasználó, akinek nevében a műveletet végrehajtják, nem rendelkezik megtekintési joggal az infobázis objektum részleteihez. A második paraméter határozza meg az eredményül kapott fájl mentési helyét. Nem interaktív módban meg kell adni az elérési utat. Interaktív módban a paraméter az
választható.
Alapértelmezés szerint a metódus interaktív módon kerül végrehajtásra. Ez azt jelenti, hogy létrejön egy párbeszédpanel, amelyben megadhat egy műveletet a kapott fájllal: futtassa vagy mentse el a fájlrendszerben egy felhasználó által megadott helyre. Ha az interaktív mód van kiválasztva, és a Fájlnév opció nincs megadva, a fájlmegnyitási művelet nem érhető el. A metódus logikai értéket ad vissza. A False azt jelenti, hogy a felhasználó úgy döntött, hogy megszakítja a műveletet az interaktív fájlmentési párbeszédpanelen.

Fájlkészlet fogadása

A GetFiles() metódus lehetővé teszi több, az infobázisban tárolt fájl fogadását és mentését a felhasználó helyi fájlrendszerében. A feltöltött fájlok listája paraméterként kerül átadásra.

// FileList – elemekre mutató hivatkozásokat tartalmazó értékek listája
// könyvtár, amelyben a feltöltött fájlok találhatók
// A megjelenített értékek listája a feltöltendő fájl neve
FileArray = Új tömb;
A lista minden eleméhez a Fájllista ciklusból
Fájl = Új Fájl(String(ListaElem.Érték));
ReceiveFile = Új A továbbított fájl leírása;
ReceiveFile.Name = ListElement.View;
ReceiveFile.Storage= P getNavigationLink(ListItem.Value, "Data");
FileArray.Add(ReceivingFile);
EndCycle;
Fogadott fájlok= Új tömb;
Eredmény = ReceiveFiles (FilesArray, ReceivedFiles, UploadedFilesPath, False);
Ha NINCS Eredmény Akkor
Üzenet = Új Üzenet a felhasználónak;
Üzenet.Szöveg = "Hiba a fájlok fogadásakor!";
Üzenet.Üzenet();
EndIf ;

A befejezés után a módszer visszaadhatja a ténylegesen letöltött fájlok listáját, feltüntetve az egyes mentett fájlok teljes nevét.
JEGYZET. A GetFiles() metódus webes kliensben való használatához csatlakoztatnia kell a fájlkiterjesztést. Ha az objektumnév tulajdonság A továbbított fájl leírása tartalmazza a fájl abszolút elérési útját, a fájl erre az elérési útra lesz mentve, a paramétertől függetlenül Fájl helye.
A Fájl helye paraméter lehet egy elérési út a helyi fájlrendszerben, vagy egy Fájlválasztó párbeszédablak objektum könyvtár kijelölése vagy fájlok mentése módban. Ha a paraméter értéke Fájl helye objektum megadva Fájlválasztó párbeszédablak módban
fájlok mentése, majd:

● a párbeszédpanel minden átvitt fájlhoz meghívódik, kivéve azokat a fájlokat, amelyeknél az Átvitt fájl leírása objektumnév tulajdonság abszolút elérési utat tartalmaz;
● Az Átvitt fájl leírása tulajdonság neve objektum értéke lesz a kezdeti fájlnév a párbeszédablakban;
● ha bármelyik fájlnál a mentés megtagadása van kiválasztva, akkor az Átvitt fájl leírása tulajdonság objektum neve mezőben egy üres karakterlánc lesz;
● a GetFiles() metódus True értéket ad vissza, ha legalább egy fájl sikeresen érkezett;
● figyelembe kell venni, hogy a fájlok ténylegesen azután érkeznek meg, hogy a felhasználó megválaszolja a név és az elérési út megadásával kapcsolatos kérdéseket
minden fogadott fájl;
● Ha a felhasználó, akinek nevében a GetFile() metódus végrehajtásra kerül, nem rendelkezik megtekintési joggal annak az infobase objektumnak legalább egy attribútumához, amelyből a fájlokat lekéri, a teljes művelet meghiúsul.
Példa:

TransferredFiles = Új tömb;
Leírás = Új A továbbított fájl leírása(„Leírás”, Fájlcím);
Átvitt fájlok.Hozzáadás(Leírás );
FileSelect = Új FileSelectionDialog(FileSelectionDialogMode.Save);
FileSelect.Header= "Archívum mentése";
Fájl kiválasztása.Kiterjesztés= „cipzár”;
FileSelect.Filter= "Archívum(*.zip)|*.zip|Minden fájl|*.*";
FileSelect.FilterIndex = 0;
Fájlok fogadása (Transfer Files, Select File, False);

Ha az interaktív módot választja a fájlok mentési könyvtárának kiválasztásához, a webes kliens ezenkívül engedélyt kér az abszolút elérési úttal megadott fájlok mentésére. Nem interaktív mentés esetén (a könyvtár elérési útja a megfelelő paraméterben van megadva), a kérés a mentett fájlok teljes listájára végrehajtásra kerül.

Példa a fájlmódszerek használatára

// Fájl interaktív lekérése a lemezről
// és átmeneti tárolóba helyezve.
&OnClient
Eljárás SelectDiskFileIWrite()
Változó SelectedName;
Perem TemporaryStorageAddress;
NewObject = Object.Link.Empty();
Ha Helyfájl (Ideiglenes tárolási cím, "", Kiválasztott név, Igaz) Akkor
Object.FileName = SelectedName;
PlaceObjectFile(TemporaryStorageAddress);
endIf;
Az eljárás vége
// Fájl másolása ideiglenes tárolóból kellékekbe
// könyvtár, objektum írása, fájl törlése ideiglenesből
// tárolás.
&A szerveren
Eljárás PlaceObjectFile (TemporaryStorageAddress)
Könyvtárelem = Form AttributesValue(“Object”);
BinaryData = GetFromTemporaryStorage(TemporaryStorageAddress);
Directory Element.File Data= Új StorageValues ​​(bináris adatok, NewDataCompression()) ;
Fájl = Új Fájl(Könyvtárelem.Fájlnév);
Directory Item.FileName = Fájl.Név;
Könyvtár elem.Write();
Módosítva = False;
DeleteFromTemporaryStorage(TemporaryStorageAddress);
ValueВFormAttributes (Könyvtár elem, "Objektum");
Az eljárás vége
// Olvassa be a fájlt a kellékekből és mentse el
// a helyi lemezen interaktív módban.
&OnClient
Eljárás ReadFileAndSaveToDisk()
Cím = GetNavigationLink(Object.Link,"FileData");
GetFile(cím, objektum.fájlnév, igaz);
Az eljárás vége

Engedély fájlműveletek csoportjának végrehajtására

Amikor egyes műveleteket hajt végre a webes kliensben, előfordulhat, hogy engedélyt kell szereznie több fájlművelethez.
Például le kell kérnie egy dokumentumot egy információs bázisból, majd meg kell nyitnia a mentett dokumentumot a társított alkalmazás segítségével.
A művelet végrehajtásához meg kell válaszolnia a dokumentum mentésével kapcsolatos kérdést és a futtatásának szükségességét. Ha több művelet van, a felhasználónak is több kérdése lesz.
A kérdések számának csökkentésére használhatja a módszert. Ennek a módszernek a használatakor
A felhasználónak megjelenik az összes tervezett művelet listája, és felkérik, hogy engedélyezze a műveletcsoport végrehajtását. Ha a felhasználó engedélyezte a végrehajtást, akkor a kért műveletek a felhasználóhoz intézett további kérések nélkül végrehajtódnak. Ha az engedélyt nem adják meg, a műveletek a szokásos módon mennek végbe: műveletenként egy kérés.
JEGYZET. A módszer használatához RequestUserPermission() A webkliensben engedélyeznie kell a fájlkezelő kiterjesztést.
Nézzünk egy példát a módszer használatára:

Ha ConnectExtensionWorking With Files() Akkor
Link = GetNavigationLink(Object.Link, “FileData”);
// Az átvitt fájlok leírásának kialakítása (ebben az esetben csak egy fájl van)
Átvitt fájlok= Új tömb;
Leírás = Az átvitt fájl új leírása (objektum. fájlnév, hivatkozás);
TransferredFiles.Add(Description);
// Objektum előkészítése a fogadott fájlokról szóló információk fogadására
Átvitt fájlok= Új tömb;

// Egyéb metódusparaméterek meghatározása
DirectorySave= "c:\temp";
Interaktív = False ;
Továbbított fájlnév = Könyvtár mentése + "\" + Object.FileName;
// Készítsen leírást az engedélyek megszerzésének módszereiről
Methods = Új tömb;

Methods.Add(“GetFiles”);
Methods.Add(TransferFiles);
Methods.Add(TransferredFiles);
Methods.Add(SaveDirectory);
Methods.Add(Interactive);
Methods.Add(New Array);
Methods.Add(“RunApplication”);
Methods.Add(TransferredFileName);
Ha nem RequestUserPermission (Módszerek) Akkor
Warning("A felhasználó megtagadta az engedélyt.");
Visszatérés;
endIf;
GetFiles(TransferFiles, Transmitted Files, SavingDirectory, Interactive);
RunApplication(TransferredFileName);
Másképp
Warning("A végrehajtás nem támogatott. A fájlkiterjesztés nincs telepítve.");
endIf;

Meg kell jegyezni a módszer számos jellemzőjét RequestUserPermission().

1. Csak a következő módszerekhez kell engedélyt kérni:

GetFiles()/StartGettingFiles(),
● PlaceFiles()/StartPlaceFiles(),
● FindFiles()/StartSearchFiles(),
● CopyFile()/StartCopyFile(),
● MoveFile()/StartMovingFile(),
●DeleteFiles()/StartDeleteFiles(),
● CreateDirectory()/StartCreatingDirectory(),
● LaunchApplication()/StartRunApplication().

2. Engedélyt kérnek a metódusparaméterek meghatározott készletéhez. Ha egy fájlkezelési módszer tényleges végrehajtása során a paraméterértékek eltérnek azoktól, amelyekhez engedélyt kaptak, akkor ez az engedély nem lesz érvényes, és a felhasználó külön kérést kap a művelet megerősítésére.

3. Ha két (vagy több) azonos műveletet kell végrehajtania fájlokkal (akár azonos paraméterkészlettel is), akkor a metódusparaméterek tömbjében meg kell adni a megfelelő számú elemet. RequestUserPermission(). Például, ha ugyanazt a fájlt kétszer kell letöltenie az információs bázisból, és egy rögzített helyre kell elhelyeznie a fájlrendszerben, engedélyt kell kérnie.
két műveletre.

4. Ha engedélyt kérnek egy interaktív műveletet végrehajtó művelethez (például a GetFiles() függvényhez, akkor egy objektum paraméterként kerül átadásra Fájlválasztó párbeszédablak), akkor az ilyen művelet ki van zárva a kérésből.

A megadott engedélyek mindaddig megmaradnak, amíg az engedélyezett hívás végrehajtásra nem kerül, vagy amíg a beépített nyelv be nem fejeződik.
JEGYZET. Vékony és vastag ügyfeleknél RequestUserPermission() A metódus mindig True értékkel tér vissza, felhasználói beavatkozás nélkül.

Ideiglenes tárolóval való munkavégzés háttérmunkában

Az ideiglenes tárolóval való munkavégzés mechanizmusa képes adatokat átvinni egy háttérfeladatból a háttérfeladatot kezdeményező munkamenetbe.
Egy ilyen átvitelhez el kell helyeznie egy üres értéket a szülő munkamenet ideiglenes tárolójába (a metódus használatával PlaceInTemporaryStorage()), amely megadja a létrehozandó ideiglenes tároló bármely azonosítóját (Cím paraméter). Ezután adja át a kapott címet a háttérfeladatnak a háttérfeladat paraméterein keresztül. Továbbá, ha egy háttérfeladatban ezt a címet használja a Method Address paraméter értéke PlaceInTemporaryStorage(), akkor az eredményt a rendszer arra a munkamenetre másolja, amelyből a háttérfeladat elindult.
A háttérfeladatban az ideiglenes tárhelyen elhelyezett adatok nem lesznek elérhetők a szülőmunkamenetből, amíg a háttérfeladat be nem fejeződik.

Címek támogatása a képmezőben

A Nézet mező űrlapelem A Kép mező támogatja egy érték címével meghatározott kép megjelenítését (amely lehet kép vagy bináris adat) ideiglenes tárolóban vagy adatbázisban.
Ehhez be kell állítani egy string típusú attribútumot az űrlapelem Data tulajdonságában. Ennek az attribútumnak az értéke a kép címeként lesz értelmezve.

// 1. példa
// A képmező ideiglenes kötése a kép címéhez
// tárolás. AddressPictures – karakterlánc típusú űrlap részletei
Helyfájl(Képcím, Kezdeti név, Kiválasztottnév, Igaz, EgyediIdentifier);
// 2. példa
// A kép címének megszerzése az objektum attribútumból
// információs bázis
FilePictures = Object.FilePictures;
Ha nem PictureFile.Empty() Akkor
ImageAddress = GetNavigationLink(ImageFile, “FileData”);
Másképp
ImageAddress = "";
Végtelen;

Hozzáférés a szabványos könyvtárakhoz

A rendszer használatakor szükség van a fájlrendszerben némi helyre, ahol különféle fájladatokat lehet tárolni, ami egyrészt ideiglenes, másrészt elég hosszú ideig kell tárolni. Ilyen fájlok lehetnek dokumentumkezelő rendszerek vázlatai, a kliens számítógép oldalán futó külső komponensek stb.
Az ilyen fájlok tárolására egy speciális könyvtár szolgál, amely egy adott információs bázis adott felhasználójához van kötve.
Ugyanaz a felhasználó, aki két információs bázissal dolgozik, két különböző könyvtárhoz fog hozzáférni a felhasználói adatok tárolására. Ennek a könyvtárnak a helyét a módszer segítségével határozzuk meg WorkUserDataDirectory(). Ha a könyvtár nem létezik, akkor az első hozzáféréskor jön létre. Ha a könyvtárat nem lehet létrehozni, a rendszer kivételt dob.
JEGYZET. A UserDataWorkDirectory() metódus nem érhető el a szerver oldalon.
Az operációs rendszernek van egy speciális könyvtára a felhasználói adatok állandó tárolására. Lehetne néhány
jelentéseket, nyomtatott dokumentumokat, stb. Ebben a könyvtárban helyezik el az adatokat, amelyeket később külső helyre küldhetnek
a fogyasztóknak. A könyvtár eléréséhez a DocumentDirectory() metódus használható. A könyvtár fizikai helye az operációs rendszertől függően változik.
rendszer, ahol az alkalmazás végrehajtásra kerül, és amely a szintaktikai asszisztensben szerepel.