Ruajtja e përkohshme e të dhënave 1c. Ruajtja e përkohshme. Si quhen?

Pothuajse çdo informacion mund të ruhet në një dyqan vlerash, p.sh.

... foto (foto):

CurrentImage.Object = SprFabric.Link; CurrentImage.DataType = Enumerations.Llojet e Informacionit Shtesë të Objekteve.Image; Storage = NewValueStorage(NewPicture, NewDataCompression()); CurrentImage.Storage = Storage.Get();

// në këtë vend shfaq gjithçka... Form Elements.PictureField1.Picture = Storage.Get(); CurrentImage.Write();

...dokumenti i fletëllogaritjes:

TabDoc=Dokument i ri Tabular; TabDoc.Output(FormElements.TabularDocumentField1); Storage=NewValueStorage(TabDoc); Shkruaj();

Fundi i procedurës

Procedura RestoreFromStoragePress(Element)

TabDoc=Storage.Get(); Nëse TabDoc<>Të padefinuara ThenFormElements.TabularDocumentField1.Output(TabDoc); fundNëse;

Fundi i procedurës

...skedarët arbitrarë (të dhënat binare):

XZ = NewValueStorage(NewBinaryData(skedar));

Tetë mbështet kompresimin e të dhënave të vendosura në ruajtje:

XZ = NewValueStorage(NewBinaryData(skedar),NewDataCompression(9));

... përpunimi dhe raportimi i jashtëm:

Procedura LoadProcessingIntoStorage (PropsStorageType)

Shkalla e Kompresimit = Kompresimi i të Dhënave të Re (9); //9 maksimumi PropsStorageType = New StorageValues(New BinaryData("c:\reports\report.epf", Shkalla e Kompresimit));

Fundi i procedurës

Procedura StartProcessingFromStorage(PropsStorageType)

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

Fundi i procedurës

Puna me ruajtjen

Nëse ishin të dhëna binare, atëherë ato mund të rikthehen nga ruajtja e vlerave duke përdorur metodën Get dhe të shkruhet në një skedar duke përdorur metodën Write().

Nëse TypeValue (Storage)<>Shkruani ("BinaryData") Pastaj

BinaryData = Storage.Get();

BinaryData = Magazinimi;

fundNëse; BinaryData.Write(Emri i skedarit);

Nëse ishte, për shembull, një dokument Word (skedar doc ose një lloj skedari tjetër i regjistruar), atëherë ai mund të hapet si kjo:

LaunchApplication (Emri i skedarit);

Për të pastruar një fushë të tipit Value Storage, duhet ta caktoni atë të Padefinuar:

PropsStorage = I papërcaktuar;

Puna me skedarë dhe fotografi në gjuhën e integruar 1C: Enterprise 8

Qëllimi

Aplikacioni i menaxhuar zbaton një mekanizëm të ri për të punuar me skedarë. Ai siguron shkëmbimin e skedarëve midis infobazës dhe aplikacionit të klientit. E veçanta e këtij mekanizmi është se ai është krijuar për t'u përdorur në një klient të hollë dhe një klient Web dhe është krijuar duke marrë parasysh kufizimet në punën me skedarët e vendosur nga shfletuesit e uebit.

Mekanizmi është një grup metodash që mund të përdoren për të vendosur të dhënat e ruajtura në nivel lokal në kompjuterin e përdoruesit në një ruajtje të përkohshme të bazës së informacionit, për ta transferuar këtë informacion nga ruajtja e përkohshme në bazën e të dhënave dhe për t'i marrë ato përsëri në kompjuterin e përdoruesit. Problemet më të zakonshme të aplikimit të zgjidhura nga ky mekanizëm janë ruajtja e informacionit shoqërues, për shembull, imazhet e mallrave, dokumentet që lidhen me kontratat, etj.

Qëllimi i metodës

Ruajtja e përkohshme

Ruajtja e përkohshme është një zonë e specializuar e bazës së informacionit në të cilën mund të vendosen të dhënat binare. Qëllimi kryesor është ruajtja e përkohshme e informacionit gjatë ndërveprimit klient-server përpara se të transferohet në bazën e të dhënave.

Nevoja për ruajtje të përkohshme lind sepse modeli i funksionimit të shfletuesit të internetit kërkon që skedari i zgjedhur nga përdoruesi të transferohet drejtpërdrejt në server pa mundësinë e ruajtjes së tij në klient. Kur një skedar transferohet, ai vendoset në ruajtje të përkohshme dhe më pas mund të përdoret kur shkruani një objekt në bazën e të dhënave.

Detyra më tipike e aplikimit e zgjidhur nga ruajtja e përkohshme është sigurimi i aksesit në skedarë ose fotografi përpara se objekti të regjistrohet në bazën e informacionit, për shembull, në formën e një elementi.

Një skedar ose të dhëna binare të vendosura në ruajtje identifikohen nga një adresë unike, e cila më vonë mund të përdoret në operacionet e shkrimit, leximit ose fshirjes. Kjo adresë jepet me metoda për të shkruar një skedar në ruajtje të përkohshme. Një metodë e veçantë në gjuhën e integruar ju lejon të përcaktoni nëse adresa e kaluar është një adresë që tregon të dhënat në ruajtje të përkohshme.

Baza e informacionit

Mekanizmi ju lejon të aksesoni të dhënat binare të ruajtura në atributet e tipit Value Storage.

Ashtu si në rastin e ruajtjes së përkohshme, qasja në informacion është e mundur përmes një adrese të veçantë. Ju mund ta merrni atë përmes një metode të veçantë duke kaluar një lidhje me një objekt ose një çelës regjistrimi të informacionit dhe emrin e atributit. Në rastin e një pjese tabelare, kërkohet gjithashtu transferimi i indeksit të rreshtit të pjesës tabelare.

Metodat për të punuar me skedarë kanë kufizime kur punoni me detajet e bazës së informacionit. Për ta, ndryshe nga ruajtja e përkohshme, disponohet vetëm leximi i informacionit, por jo shkrimi ose fshirja e tij.

Përshkrimi i metodave për të punuar me skedarë

Ruajtja e të dhënave në ruajtje të përkohshme

Skenari më tipik për përdorimin e këtij mekanizmi përfshin fillimisht vendosjen e të dhënave të përdoruesit në ruajtje të përkohshme. Ekzistojnë dy metoda për këtë: PlaceFile() dhe PlaceFileInTemporaryStorage().

Metoda e parë, PlaceFile(), vendos një skedar nga sistemi lokal i skedarëve në ruajtje të përkohshme. Metoda mund të pranojë një adresë të synuar në ruajtje. Nëse nuk është i përcaktuar ose është një varg bosh, atëherë do të krijohet një skedar i ri dhe metoda do të kthejë adresën e saj përmes parametrit përkatës.

Nëse parametri që përcakton mënyrën ndërvepruese të funksionimit është i vërtetë, atëherë metoda do të shfaqë një kuti dialogu të përzgjedhjes standarde të skedarit në të cilën mund të zgjidhni një skedar për ta vendosur në ruajtje. Në këtë rast, metoda do të kthejë gjithashtu adresën e skedarit të zgjedhur.

Si rezultat, metoda kthen False nëse përdoruesi refuzon në mënyrë interaktive të kryejë një operacion në dialogun e përzgjedhjes së skedarit. Metoda është e disponueshme vetëm për klientin.

Metoda e dytë, PlaceFileInTemporaryStorage(), është e ngjashme me atë të mëparshmen, me përjashtim të faktit se është e disponueshme në server dhe të dhënat që do të shkruhen në ruajtje të përkohshme nuk përfaqësohen si një shteg në sistemin e skedarëve, por si një variabël i llojit. Të dhënat binare. Po kështu, nëse nuk specifikohet adresa e synuar, krijohet një skedar i ri në ruajtje. Adresa e tij kthehet si rezultat i funksionit.

Marrja e një skedari nga ruajtja e përkohshme

Kur shkruani një objekt në bazën e informacionit, mund t'ju duhet të nxirrni të dhëna nga ruajtja e përkohshme dhe t'i vendosni ato, për shembull, në një atribut. Ekziston një metodë përkatëse e serverit për këtë - GetFileFromTemporaryStorage(). Kjo metodë merr të dhëna nga ruajtja e përkohshme dhe si rezultat i kthen ato. Për ta bërë këtë, duhet të specifikoni adresën në ruajtje të përkohshme. Kjo adresë kthehet nga metodat e përshkruara më sipër PlaceFile() dhe PlaceFileInTemporaryStorage() nëse ato ekzekutohen me sukses.

Fshirja e një skedari nga ruajtja e përkohshme

Pasi të dhënat të ruhen në detaje, skedari në ruajtje të përkohshme mund të fshihet. Për këtë qëllim, ekziston një metodë DeleteFileFromTemporaryStorage(), e cila fshin një skedar nga ruajtja e përkohshme. Metoda merr si parametër adresën e një skedari në ruajtje të përkohshme. E disponueshme në server.

Po kontrollon adresën për ruajtje të përkohshme

Adresa e skedarit mund të tregojë si ruajtjen e përkohshme ashtu edhe detajet në bazën e informacionit. Për të kontrolluar llojin e tij, ekziston një metodë This isTemporaryStorageAddress().

Kontrollon që adresa e kaluar është një adresë që tregon dyqanin. Kthen True nëse adresa tregon për ruajtjen e përkohshme. Metoda është e disponueshme në server.

Marrja e adresës së rekuizitës

Pasi të dhënat vendosen në detaje në bazën e informacionit, mund t'ju duhet t'i qaseni duke përdorur metodat e skedarit.

Por përpara se të merrni të dhëna, për shembull nga një pronë, duhet të merrni adresën e kësaj prone. Për këtë qëllim, ekziston një metodë GetFileAddressInInformationBase().

Qëllimi i tij është të kthejë adresën e skedarit në infobazë sipas parametrave origjinalë. Për ta bërë këtë, duhet të kaloni çelësin e objektit (kjo mund të jetë ose një lidhje me objektin ose një çelës i hyrjes së regjistrit të informacionit) dhe emrin e atributit. Nëse ju duhet të merrni adresën e një skedari të ruajtur në një atribut të pjesës tabelare, përpara emrit të atributit në parametrin që specifikon emrin e atributit, duhet të shtoni emrin e pjesës tabelare dhe një pikë ".". Metoda është e disponueshme si në klient ashtu edhe në server.

Po merr një skedar nga baza e informacionit

Metoda GetFile() merr një skedar nga infobaza dhe e ruan atë në sistemin lokal të skedarëve të përdoruesit. Parametri i parë specifikon adresën e skedarit në bazën ose ruajtjen e përkohshme të skedarit. Parametri i dytë specifikon vendndodhjen e destinacionit të skedarit që rezulton. Në modalitetin jo-interaktiv, duhet të specifikoni shtegun. Në modalitetin interaktiv, parametri është opsional.

Si parazgjedhje, metoda ekzekutohet në modalitetin interaktiv, domethënë, parametri i fundit është i vërtetë. Kjo do të thotë që shfaqet një kuti dialogu në të cilën mund të specifikoni një veprim me skedarin e marrë: ekzekutoni ose ruani në një vendndodhje të caktuar nga përdoruesi. Nëse modaliteti ndërveprues është aktiv dhe parametri i shtegut të skedarit të diskut të synuar nuk është specifikuar, operacioni i hapjes së skedarit nuk është i disponueshëm. Kthen një vlerë boolean. False do të thotë që përdoruesi zgjodhi të anulojë operacionin në kutinë e dialogut interaktiv të ruajtjes së skedarit.

Shembull i përdorimit të metodave të skedarëve

// Marrja e një skedari nga disku në modalitetin interaktiv // dhe vendosja e tij në ruajtje të përkohshme &Në procedurën e klientit ZgjidhniDiskFileAndWrite()

Variabli SelectedName; Adresa VariableTemporaryStorage; Nëse PutFile(TemporaryStorageAddress, SelectedName, True) Atëherë Object.FileName = SelectedName; PlaceObjectFile(TemporaryStorageAddress); fundNëse;

Fundi i procedurës

// Kopjimi i një skedari nga ruajtja e përkohshme në një atribut //, regjistrimi i një objekti, fshirja e një skedari nga ruajtja e përkohshme // &Në procedurën e serverit Vendi skedarin e objektit (Adresa e ruajtjes së përkohshme)

Elementi i Drejtorisë = Form AttributesValue("Objekt"); BinaryData = GetFileFromTemporaryStorage(TemporaryStorageAddress); Elementi i drejtorisë.Të dhënat e skedarit = NewValueStorage(BinaryData); FilePathOnDisk = Skedari i ri (DirectoryItem.FileName); Direktoria Item.FileName = FilePathOnDisk.Name; Elementi i drejtorisë.Write(); Modifikuar = E gabuar; DeleteFileFromTemporaryStorage(TemporaryStorageAddress); ValueВFormAttributes (Elementi i drejtorisë, "Objekt");

Fundi i procedurës

// Leximi i një skedari nga mbështetësit dhe ruajtja e tij // në diskun lokal në modalitetin interaktiv &Në procedurën e klientit ReadFileAndSaveToDisk()

Adresa = GetFileAddressInInformationBase(Object.Link, "FileData"); GetFile (Adresa, Object.FileEmri, True);

Fundi i procedurës

Mbështetje për adresat në fushën e figurës

Kontrolli i fushës së figurës mbështet shfaqjen e një fotografie të specifikuar nga adresa e një skedari në ruajtje të përkohshme ose në një bazë të dhënash.

Për ta bërë këtë, duhet të vendosni një atribut tip vargu në vetinë Data e elementit të formës. Vlera e këtij atributi do të interpretohet si adresa e figurës.

Shembull // Lidhja e fushës së imazhit me adresën e imazhit në ruajtje të përkohshme //. AdresaPictures formojnë detaje të llojit të vargut

PlaceFile (Adresa e figurës, e vërtetë)

Foto.Të dhënat = AdresaPictures

Kufizimet kur punoni me klientin në ueb

Funksionimi i mekanizmit të përshkruar gjatë përdorimit të klientit në ueb ka disa kufizime. Këto kufizime lidhen me modelin e sigurisë së shfletuesit. Kështu, për shembull, klienti nuk mund të ruajë në mënyrë të pavarur një skedar në sistemin lokal të skedarëve, domethënë është i disponueshëm vetëm versioni interaktiv i metodave të klientit PlaceFile () dhe GetFile (). Një përjashtim bëhet kur përpiqeni të përdorni modalitetin jo-interaktiv. Kutitë e dialogut që shfaqen në mënyrë interaktive janë specifike për llojin e shfletuesit tuaj.

Veçoritë kur punoni me Value Storage te klienti

Problemi:

Kur një Dokument ka një atribut të tipit Value Storage në seksionin tabelor, ai ngadalëson hapjen e formularit të dokumentit nëse ky atribut përmban të dhëna të mëdha.

Arsyeja e supozuar:

Ndoshta, kur hapni një formular, klientit nuk i dërgohet lidhja me të dhënat e vendosura në Value Store, por vetë të dhënat.

Zgjidhje

  • Në vetitë e atributit të tabelës së formularit ekziston një flamur "Përdor gjithmonë". Nëse është vendosur, përmbajtja e fushës transferohet gjithmonë midis serverit dhe klientit - për shembull, kur hapni një formular. Ky flamur duhet të çaktivizohet, por kjo duhet të merret parasysh në kod, pasi si parazgjedhje nuk do të ketë asnjë vlerë për këtë fushë në klient. Një shembull mund të gjendet në 1C:Archive.

Është edhe më mirë të përdoret ruajtje e përkohshme për të transferuar skedarë midis klientit dhe serverit.

Materiali i përditësuar për të përputhur me Drupal 8.7.0+

Dyqan temp(ruajtje e përkohshme) - ju lejon të ruani përkohësisht çdo të dhënë. Ky është një lloj ruajtjeje të dhënash në $_SESSION, pasi kjo ruajtje zakonisht lidhet me një përdorues të caktuar. Por ai nuk përdor $_SESSION dhe ruan gjithçka brenda sistemit (në bazën e të dhënave).

Bërthama ka dy shërbime për ruajtje të përkohshme, tempstore.private dhe tempstore.shared. Ato funksionojnë në mënyrë identike, por private ruan gjithmonë të dhëna për një përdorues specifik. Kjo do të thotë, thirrja e një çelësi nga një memorie private do të kthejë të dhëna të ndryshme për çdo përdorues. Shared është i aksesueshëm nga çdo përdorues.

Shtrirja e aplikimit të këtyre shërbimeve dhe ruajtja e tyre mund të jetë shumë e gjerë. Për shembull, ruani disa vlera të përkohshme të formularëve dhe nëse përdoruesi nuk i ka ruajtur ato, ato mund të rikthehen nga kjo ruajtje, për shembull, për disa forma REST, madje të përshtatshme për ato të rregullta. Në përgjithësi, për çfarë keni mjaftueshëm imagjinatë ose detyra. Për shembull, kjo mund të përdoret për disa forma të kontrolluara jashtë Drupal, për shembull në React ose Vue.

Vlerat në këto depo jetojnë si parazgjedhje për 604800 sekonda (1 javë), pas së cilës ato fshihen automatikisht.

Për të ndryshuar këtë vlerë. Ju do të duhet të lidhni, për shembull, sites/default/services.yml dhe ta ripërcaktoni atë:

Parametrat: # 10 sekonda tempstore.skadimi: 10

Por kjo, për arsye të mirë, nuk duhet të ndodhë.

Le të shohim aftësitë e secilës pajisje ruajtëse; megjithëse janë të ngjashme, ato janë paksa të ndryshme.

tempstore.private - ruajtje private

Kjo hapësirë ​​ruajtëse është private për çdo përdorues.

tempstore.shared - ruajtja e përbashkët

Kjo hapësirë ​​ruajtëse është e përbashkët dhe mund të përmbajë të dhëna të përbashkëta për të gjithë përdoruesit.

Depoja ka metodat e mëposhtme:

  • get($key): Merr një vlerë nga dyqani me çelësin e tij. Nëse nuk ka të dhëna, do të kthejë NULL, nëse ka, do të kthejë një vlerë.
  • getIfOwner($key): Merr një vlerë nga dyqani me çelësin e tij. Nëse nuk ka të dhëna ose të dhënat nuk janë shkruar nën përdoruesin aktual, do të kthejë NULL, nëse ka dhe janë shkruar nën përdoruesin aktual, do të kthejë vlerën.
  • setIfNotExists($key, $value): Shkruan vlerën $value nën çelësin $key në ruajtje vetëm nëse aktualisht nuk ka të dhëna për atë çelës. Kthen TRUE nëse është regjistruar, FALSE nëse të dhënat janë regjistruar tashmë.
  • setIfOwner($key, $value): Shkruan vlerën $value nën çelësin $key në ruajtje vetëm nëse aktualisht nuk ka të dhëna ose pronari i të dhënave aktuale është përdoruesi aktual.
  • set($key, $value): Shkruan vlerën $value nën çelësin $key në ruajtje.
  • getMetadata($key): Kthen metadata për një çelës specifik $, pa të dhëna. Ky është një objekt që përmban pronësinë e pronarit, e cila ruan vlerën, kush e zotëron vlerën, dhe pronën e përditësuar - vulën kohore Unix të kohës kur është shkruar kjo vlerë.
  • delete($key): Fshin të dhënat e lidhura me çelësin e dhënë $ nga ruajtja.
  • deleteIfOwner($key): Fshin të dhënat e lidhura me çelësin e dhënë $ nga ruajtja, vetëm nëse të dhënat i përkasin përdoruesit aktual.

Si quhen?

Shembuj të vegjël se si t'i quani ato.

Hapi i parë është marrja e tempstore-it të ruajtjes së kërkuar, pastaj nga ruajtja merret një "koleksion", ku të dhënat ruhen tashmë nën çelësat e nevojshëm. Si rregull, emri i "koleksionit" është i barabartë me emrin e modulit.

Përdor Drupal\Core\TempStore\PrivateTempStoreFactory; përdorni Drupal\Core\TempStore\SharedTempStoreFactory; /** @var PrivateTempStoreFactory $private_tempstore */ $private_tempstore = \Drupal::service("tempstore.private"); $my_private_storage = $private_tempstore->get("dummy"); $my_private_storage->set("emri i përdoruesit", "Drupal"); /** @var SharedTempStoreFactory $shared_tempstore */ $shared_tempstore = \Drupal::service("tempstore.shared"); $my_shared_storage = $shared_tempstore->get("dummy"); $my_shared_storage->set("emri i përdoruesit", "Drupal");

Shembull

Në shembull, ne do të krijojmë një formë në faqen /temp-store-form me dy fusha, njëra prej të cilave do të ruajë mesazhin në ruajtje private dhe tjetra në publik.

Krijo një formë:

Src/FormWithTempStore.php

privateTempStore = $private_temp_store->get("dummy"); $this->sharedTempStore = $shared_temp_store->get("dummy"); ) /** * (@inheritdoc) */ funksioni statik publik create(ContainerInterface $container) (ktheje staticin e ri($container->get("tempstore.private"), $container->get("tempstore.shared") ); ) /** * (@inheritdoc) */ funksioni publik getFormId() ( kthimi "form_with_temp_store"; ) /** * (@inheritdoc) */ funksioni publik buildForm(array $form, FormStateInterface $form_state) ( $form ["private_message"] = [ "#type" => "textarea", "#title" => $this->t("Mesazhi privat"), "#required" => E VËRTETË, "#description" => $ this->t("Kjo vlerë do të jetë private për çdo përdorues."), "#default_value" => $this->privateTempStore->get("message"), ]; $form["shared_message"] = [ " #type" => "textarea", "#title" => $this->t("Mesazhi i përbashkët"), "#required" => TRUE, "#description" => $this->t("Kjo vlerë do të ndahet për të gjithë përdoruesit."), "#default_value" => $this->sharedTempStore->get("message"), ]; $form["actions"] = ["#type" => "veprime" $form["actions"]["submit"] = [ "#type" => "dorëzo", "#value" => $this->t("Ruaj"), ]; kthej $form; ) /** * (@inheritdoc) */ funksioni publik submitForm(array &$form, FormStateInterface $form_state) ($this->privateTempStore->set("mesazh", $form_state->getValue("mesazh_privat")); $this->sharedTempStore->set("message", $form_state->getValue("shared_message")); ) )

Print (Ctrl+P)

1C: Ndërmarrja ka një mekanizëm për të punuar me ruajtje të përkohshme që siguron ruajtjen e disa të dhënave të lidhura me sesionin.
Përveç kësaj, është zbatuar një mekanizëm për të punuar me skedarë, i cili siguron shkëmbimin e skedarëve midis infobazës dhe aplikacionit të klientit. E veçanta e këtij mekanizmi është se ai është krijuar për t'u përdorur në një klient të hollë dhe një klient në internet dhe është krijuar duke marrë parasysh kufizimet në punën me skedarët e vendosur nga shfletuesit e uebit.

Ruajtja e përkohshme

Ky është një depo e specializuar informacioni në të cilën mund të vendoset një vlerë. Qëllimi kryesor është ruajtja e përkohshme e informacionit gjatë ndërveprimit klient-server përpara se të transferohet në bazën e të dhënave. Mekanizmi i ruajtjes së përkohshme, së bashku me mekanizmin e trajtimit të skedarëve, ofron një grup që mund të përdoret për të vendosur të dhënat e ruajtura në nivel lokal në kompjuterin e përdoruesit në ruajtjen e përkohshme të bazës së informacionit, për të transferuar këtë informacion nga ruajtja e përkohshme në bazën e të dhënave dhe për të marrë kthehet në kompjuterin e përdoruesit. Problemet më të zakonshme të aplikimit të zgjidhura nga këta mekanizma janë ruajtja e informacionit shoqërues, për shembull, imazhet e mallrave, dokumentet që lidhen me kontratat, etj. Mekanizmat për ruajtjen e përkohshme dhe punën me skedarët shpesh përdoren së bashku, por mund të përdoren edhe veçmas.
Nevoja për ruajtje të përkohshme lind, për shembull, sepse modeli i shfletuesit të internetit kërkon që një skedar i zgjedhur nga përdoruesi të transferohet drejtpërdrejt në server pa aftësinë për ta ruajtur atë në klient. Kur një skedar transferohet, ai vendoset në ruajtje të përkohshme dhe më pas mund të përdoret kur shkruani një objekt në bazën e të dhënave.
Mund të përdorni ruajtje të përkohshme si një hapësirë ​​ruajtëse universale me jetëgjatësi të kontrolluar të të dhënave:

1. Nëse gjatë vendosjes së të dhënave në ruajtje të përkohshme, të dhënat ishin të lidhura në një formë të caktuar, atëherë jetëgjatësia e të dhënave të ruajtura varet nga jetëgjatësia e formës me të cilën lidhen të dhënat. Kur fshini një objekt formulari, ruajtja e përkohshme do të pastrohet nga të gjitha informacionet që lidhen me të.

2. Nëse gjatë vendosjes së të dhënave në ruajtje të përkohshme, lidhja me formularin nuk është përfunduar, atëherë ruajtja e përkohshme do të pastrohet në rastet e mëposhtme:

  • Herën tjetër që kërkoni formularin.
  • Në thirrjen tjetër të serverit nga moduli i përbashkët i klientit.
  • Për thirrjet kontekstuale dhe jokontekstuale të klientit nga formulari.
  • Kur thirret nga ana e serverit nga një modul komandimi. Nëse bëhet një telefonatë serveri për të vendosur një vlerë në ruajtje të përkohshme, nuk kryhet asnjë pastrim. Pastrimi ndodh pasi telefonata të ketë përfunduar punën e saj.

Kjo do të thotë, mund të vendosni një ose më shumë vlera në ruajtje të përkohshme dhe ta përdorni këtë vlerë në thirrjen tjetër. Megjithatë, pas përdorimit dhe përpara se të përfundojë thirrja e serverit, vlera e vendosur do të hiqet automatikisht.

Problemi më tipik i aplikacionit i zgjidhur nga ruajtja e përkohshme është sigurimi i aksesit në skedarë ose fotografi përpara se objekti të regjistrohet në bazën e informacionit, për shembull, në formën e një elementi. Kur organizoni një akses të tillë, rekomandohet transferimi i të dhënave nga kompjuterët e klientit në server saktësisht si skedarë, pa "konvertim" paraprak në një dokument teksti, dokument spreadsheet dhe formate të ngjashme të sistemit 1C:Enterprise. Rekomandohet të transferoni skedarin në anën e serverit dhe, në anën e serverit, të ngarkoni të dhënat e skedarit në atë që dëshironi
formati i sistemit 1C: Ndërmarrje.
Të dhënat e vendosura në ruajtje identifikohen nga një adresë unike, e cila më vonë mund të përdoret në operacionet e shkrimit, leximit ose fshirjes. Kjo adresë jepet me metoda për të shkruar një vlerë në ruajtje të përkohshme. Një metodë e veçantë në gjuhën e integruar ju lejon të përcaktoni nëse adresa e kaluar është një adresë që tregon të dhënat në ruajtje të përkohshme.
Hapësira ruajtëse e përkohshme e krijuar në një seancë nuk është e aksesueshme nga një sesion tjetër. Një përjashtim është aftësia për të transferuar të dhëna nga një punë në sfond në seancën që nisi punën e sfondit duke përdorur ruajtje të përkohshme.

Burty . Mënyra më e pranueshme për të ruajtur patatet, perimet me rrënjë dhe lakrën e bardhë është mbushja me shishe. Grumbulli është një argjinaturë e zgjatur, e pjerrët nga të dyja anët dhe e mbuluar me material izolues sipër. Është bërë për të ruajtur të korrat për një sezon. Burtat mund të bluhen, kur patatet derdhen në një sipërfaqe të sheshtë dhe gjysmë bluhen kur hapen gropa të cekëta. Popunautny (varrosur) grumbull. Për një grumbull të tillë hapet një gropë me thellësi 25 cm në drejtim nga veriu në jug.Gjerësia më e mirë e gropës për farat e patateve është 170-200 cm.Për ruajtjen afatshkurtër të patateve të shëndetshme mund të bëni një argjinaturë më e gjerë (deri në 4 m). Gjatësia e gropës mund të jetë arbitrare, por, megjithatë, është më mirë kur ajo nuk është më shumë se 20-25 m. Lartësia e argjinaturës së grumbullit, me gjerësinë e saj në bazën prej 2 m, mund të jetë 90- 100 cm Në mënyrë tipike, patatet ruhen në disa grumbuj në një vend. Vendi i shpimit është vendosur pranë zonave të kultivimit të patates në një vend që nuk përmbytet nga shiu dhe ujërat e shkrirë, jo shumë larg rrugës. Përgjatë boshtit qendror të gropës hapet një kanal ajrimi 20-25 cm i gjerë dhe i thellë, i cili shtrihet përtej gropës dhe është 25 cm më i gjatë se mbulesa në fund të jakës. Pjesa e kanalit që shtrihet përtej kufijve të gropës është e mbuluar fort me dërrasa sipër, në mënyrë që asnjë tokë të mos futet në gropë dhe në kanal. Në jakat e tokës, kanali i ventilimit vendoset drejtpërdrejt në sipërfaqen e tokës dhe është bërë në formën e një tende grilë të përbërë nga seksione të veçanta një metër e gjysmë. Për të parandaluar që kashta dhe toka të futen në kanalin e ventilimit, skajet e saj bëhen pa boshllëqe. Për të mbuluar kanalet e ajrimit përgatiten paraprakisht seksionet e rrjetës me gjatësi 1,5 m dhe gjerësi 0,5 m. Seksioni përbëhet nga rrasa me gjerësi 2-3 cm dhe boshllëqe 2-2,5 cm midis tyre. Seksionet vendosen në kanalin e ventilimit dhe fiksohen në njëri tjetrin. Grila e ventilimit të vazhdueshëm që rezulton mbulon pjesën e kanalit të vendosur nën produkt. Gjatë formimit të një tume patatesh ose produkte të tjera, brenda vendoset një termometër me jakë ose tuba katërkëndëshe të prodhuara posaçërisht me një seksion të brendshëm 3x3 cm, në të cilin futen termometra në fund të shufrës. Jakat ajrosen përmes një kreshtë dhe një kanali ventilimi. Grumbujt janë të mbuluar me kashtë dhe tokë. Kashta me trashësi të plotë vendoset në një shtresë të dendur nga poshtë lart në mënyrë që kreshta e grumbullit të mbivendoset. Pas kësaj, grumbulli spërkatet me një shtresë të hollë toke në anët. Kreshta e grumbullit mbetet nën mbulesën e kashtës deri në ngricën e parë. Në mot me shi, mbulohet përkohësisht me mbulesë çati ose film plastik. Kur ftohni patatet në +4°C para fillimit të ngricave të qëndrueshme, kanalet e ventilimit mbulohen fort me kashtë, dhe grumbulli mbulohet plotësisht me tokë. Nëse temperatura në grumbuj bie nën +1°C, grumbujt mbulohen gjithashtu me materiale izoluese të nxehtësisë - torfe, kashtë, pleh kashte ose borë. Në rast të reshjeve të mëdha të borës, që çojnë në mbulim të tepruar të grumbujve, ato pastrohen periodikisht nga bora.

Magazinimi i kanalit . Kjo metodë ruajtjeje kërkon 2 herë më pak kashtë ose materiale të tjera izoluese të nxehtësisë sesa kur ruhet në pirgje. Llogoret përdoren kur ujërat nëntokësore janë të thella. Thellësia dhe gjerësia e kanalit është nga 60-80 cm (në rajonet jugore) në 1.5-2 m (në Siberi). Llogoret janë të mbuluara me një shtresë kashte sipër: në rajonet qendrore është 30-40 cm, në Siberi - deri në 70 cm. Pastaj derdhet një shtresë dheu (nga 40 në 70 cm në varësi të zonës). Në mënyrë tipike, përdoren lloje të ndryshme llogore: të cekëta, të thella me kanale ventilimi, me një shtresë dheu dhe pa shtresë dhe të zakonshme. Llogoret dhe shtyllat janë të pajisura me ventilim (natyror) të thjeshtë. Qëllimi i tij kryesor është ftohja e patateve dhe perimeve në vjeshtë. Parimi i funksionimit të ventilimit të furnizimit dhe shkarkimit bazohet në ndryshimin e presionit të ajrit, d.m.th. në tërheqjen e lëvizjes së ajrit lart për shkak të ndryshimit të temperaturës në pirgun e produkteve dhe jashtë. Ajri i ngrohtë, duke qenë më i lehtë, del përmes tubit të shkarkimit dhe ajri i ftohtë hyn përmes kanalit të furnizimit. Sistemi i ventilimit përbëhet nga kanalet e furnizimit dhe shkarkimit. Kanali i hyrjes kalon në mes të bazës së jakës; ka dalje nga jashtë në skajet fundore. Në pirgje me patate dhe perime me rrënjë, bëjnë një brazdë me prerje 20x20 cm ose 30x30 cm, të mbuluar me dërrasa grilë, rrasa tërthore ose furça, në mënyrë që kopjet individuale të produktit të mos bien. Nëpërmjet këtij kanali, ajri i jashtëm më i ftohtë derdhet në pirg nga graviteti. Ajri i nxehtë nga pirgja hiqet përmes kanaleve të shkarkimit (tubave). Janë kuti tetraedrale prej dërrase me prerje 20x20 cm ose 15x15 cm.Në pjesën e poshtme duke kaluar nëpër shtresën e perimeve bëhen rrjetë dhe në pjesën e sipërme duke kaluar nëpër strehë janë të forta. në mënyrë që toka të mos bjerë në to. Në krye të tyre është instaluar një tendë për të mbrojtur produktet nga uji i shiut. Tubat e shkarkimit, në varësi të karakteristikave dhe cilësisë së perimeve të ruajtura për ruajtje, vendosen çdo 2-4 m përgjatë gjatësisë së grumbullit. Një nga disavantazhet e tubave vertikal të shkarkimit është se ajri i ngrohtë dhe i lagësht hiqet vetëm nga zonat ngjitur të pirgut, dhe zonat e largëta vështirë se ftohen. Uji rrjedh pranë tubave të shkarkimit, duke djersitur dhe ngrirë produktet, pasi këtu streha është më pak e dendur dhe e besueshme. Prandaj, përdoret ventilimi i shkarkimit të kreshtës. Kur ruani perimet në mot të thatë dhe të freskët, kreshta e kanalit mbulohet vetëm me kashtë, përmes së cilës hiqet ajri i ngrohtë. Megjithatë, kushte të tilla janë të rralla; moti është shpesh me shi në vjeshtë. Në raste të tilla, instalohet një kanal shkarkimi horizontal - dërrasat e përplasura së bashku në një kënd prej 90 °, të cilat vendosen në një pirg perimesh me një dalje në skajet jashtë. Në këtë rast, kanali përgjatë kreshtës mund të mbulohet menjëherë me kashtë dhe tokë, pa frikë se kashta do të laget dhe produkti do të ngrijë. Thjesht duhet të mbyllni vrimat e fundit në kohë. Avantazhi i një kanali shkarkimi horizontal të kreshtës ndaj tubave vertikal të ventilimit të shkarkimit është gjithashtu se në këtë rast ajri i ngrohtë dhe i lagësht hiqet në mënyrë të barabartë nga e gjithë grumbulli i produkteve.

Gropë. Magazinimi më i thjeshtë është një gropë prej balte - e destinuar për ruajtjen, më së shpeshti, një grumbull të vogël patate, dhe herë pas here të lashtat rrënjë. Është gërmuar në një zonë të ngritur me një nivel të ulët të ujërave nëntokësore. Në varësi të dendësisë së tokës, ajo gërmohet me mure të drejta ose të pjerrëta. Forma më e pranueshme e gropës është e rrumbullakët, megjithatë, ndonjëherë ato bëhen drejtkëndëshe. Një gropë është hapur në tokë të dendur argjilore, në formën e një ene. Nuk rekomandohet ta bëni këtë në tokë ranore, pasi ajo do të shembet. Gërmoni një vrimë si më poshtë: vizatoni një rreth me diametër 1 m dhe gërmoni qafën e enës, më pas, duke gërmuar më thellë, gradualisht zgjeroni vrimën në një gjerësi prej 2-2,5 m në diametër. Thellësia e gropës duhet të jetë 1,5-2 m Për të mos lejuar që uji i shkrirë të hyjë në gropë, rreth hapjes së qafës vendoset një rul prej balte të hequr. Një strukturë e tillë magazinimi është e mbuluar me një kapak të vendosur në një pjerrësi për të lejuar që uji i shiut të rrjedhë. Një enë grope e punuar mirë zgjat 30-40 vjet pa riparim. Në dimër, do të mbajë një temperaturë dhe lagështi më konstante sesa në një bodrum të rregullt. Patatet në një gropë të tillë nuk djersiten dhe nuk mbijnë për një kohë të gjatë. Patatet ruhen në gropa të vogla pa ventilim. Në ato të mëdha, një tub ventilimi është instaluar nga dërrasat ose katër shtylla të futura në fund të gropës dhe të mbështjellë me një kordon kashte. Patatet ulen në vrimë duke përdorur një kovë. Dy litarë janë të lidhur në kovë: një në dorezë dhe tjetri në fund. Pasi kova të arrijë në dysheme, tërhiqni litarin e ngjitur në fund. Në të njëjtën kohë, kova përmbyset dhe patatet derdhen. Zhardhokët nuk lëndohen me këtë metodë të mbushjes. Pas mbushjes së gropës me patate, qafa mbyllet me kashtë dhe kapak. Gjatë dy javëve të para, patatet lëshojnë shumë lagështi kur marrin frymë, kështu që shtresa e kashtës nuk duhet të jetë e trashë. Më vonë, shtresa rregullohet në 50-70 cm, në varësi të kushteve lokale të dimrit.

Print (Ctrl+P)

Ky seksion përshkruan përdorimet më të zakonshme të mekanizmit për të punuar me ruajtje të përkohshme dhe skedarë.

Ruajtja e të dhënave nga një skedar në ruajtje të përkohshme

Vendosja e një skedari

Metoda PlaceFile() vendos një skedar nga sistemi lokal i skedarëve në ruajtje të përkohshme. Metoda mund të pranojë një adresë në ruajtje të përkohshme ku skedari duhet të ruhet. Nëse adresa nuk është e përcaktuar ose është një varg bosh, atëherë do të krijohet një adresë e re dhe metoda do ta kthejë atë përmes një parametri të veçantë.
Shënim. Sasia e të dhënave të lëvizur ndërmjet klientit dhe serverit në një thirrje në metodën PutFile().
Nëse parametri që përcakton mënyrën ndërvepruese të funksionimit është i vërtetë, atëherë metoda do të shfaqë një kuti dialogu të përzgjedhjes standarde të skedarit në të cilën mund të zgjidhni një skedar për ta vendosur në ruajtje. Në këtë rast, metoda do të kthejë gjithashtu adresën e skedarit të zgjedhur.
Metoda kthen False si rezultat nëse përdoruesi refuzon në mënyrë interaktive të kryejë një operacion në dialogun e përzgjedhjes së skedarit.

Vendosja e një grupi skedarësh

Metoda PlaceFiles () vendos shumë skedarë në ruajtje të përkohshme në një telefonatë. Ka disa mënyra të ndryshme për të përdorur këtë metodë:
● gjeneroni paraprakisht një listë skedarësh që do të shtohen, për shembull, kur keni zgjedhur më parë skedarët që duhet të vendosen në bazën e informacionit;
● kaloni një maskë kërkimi skedari në metodë, për shembull, kur dëshironi të vendosni të gjithë skedarët e një lloji të caktuar, për shembull, të gjitha fotografitë, në bazën e të dhënave të informacionit;
● kaloni një objekt të përgatitur më parë në metodë Dialogu i përzgjedhjes së skedarit në modalitetin e hapjes së skedarit.
Pas përfundimit të punës, metoda mund të kthejë një listë të skedarëve të shtuar në të vërtetë.

// FileList – atribut i formës së llojit ValueList,
// që përmban një listë të skedarëve të shtuar
FileArray = Array i ri;
Për secilin element të listës nga cikli i listës së skedarëve
FileArray.Add(NewDescriptionofTransferFile(ListElement,));
Cikli i Fundit;
PlacedFiles= Array i ri;
Rezultati = PlaceFiles(ArrayFiles, PlacedFiles, False, UniqueIdentifier);

Shënim 1: Për të përdorur metodën PlaceFiles () Klienti i uebit kërkon lidhjen e një shtesë të përpunimit të skedarit.
Shënim 2: Sasia e të dhënave të zhvendosura ndërmjet klientit dhe serverit për thirrjen e metodës PlaceFiles (), nuk duhet të kalojë 4 Gb (në formë të serializuar).

Vendosja e të dhënave në ruajtje të përkohshme

Metoda është e ngjashme me metodën PlaceFile(), me përjashtim të asaj që të dhënat do të shkruhen në ruajtje të përkohshme
nuk paraqiten si shteg në sistemin e skedarëve, por si vlerë. Po kështu, nëse nuk specifikohet asnjë adresë ekzistuese në ruajtjen e përkohshme, krijohet një adresë e re. Adresa kthehet si rezultat i funksionit. Ashtu si me skedarët, të dhënat e postuara duhet t'i përkasin një forme dhe fshihen automatikisht pasi të fshihen.
Shënim. Sasia e të dhënave të zhvendosura ndërmjet klientit dhe serverit për thirrjen e metodës PlaceInTemporaryStorage(), nuk duhet të kalojë 4 Gb (në formë të serializuar).
Kujdes! Kur vendoset në ruajtje të përkohshme, vlera në fakt nuk serializohet. Një referencë për vlerën vendoset dhe ruhet në cache për 20 minuta. Pas kësaj periudhe, vlera serializohet, shkruhet në disk (ruajtja e të dhënave të sesionit) dhe hiqet nga cache.

Marrja e të dhënave nga ruajtja e përkohshme

Kur shkruani një objekt në një bazë informacioni, mund t'ju duhet të nxirrni të dhëna nga ruajtja e përkohshme dhe t'i vendosni ato, për shembull, në një atribut të objektit të bazës së informacionit. Ekziston një metodë e veçantë për këtë - GetFromTemporaryStorage(). Kjo metodë merr të dhëna nga ruajtja e përkohshme dhe i kthen ato si rezultat ekzekutimi. Për të marrë të dhëna, duhet të tregoni adresën përkohësisht
magazinimit. Kjo adresë kthehet me metoda për vendosjen e të dhënave në ruajtje të përkohshme nëse ato janë të suksesshme (shih seksionet e mëparshme).
Kujdes! Kur merrni një vlerë nga ruajtja e përkohshme në server, duhet të keni parasysh që ajo është marrë me referencë. Në realitet, kjo lidhje tregon për një vlerë që ruhet në cache. Brenda 20 minutave, nga momenti i vendosjes në ruajtje ose nga momenti i aksesit për herë të fundit, vlera do të ruhet në cache, dhe më pas do të shkruhet në disk dhe do të fshihet nga cache. Herën tjetër që të aksesohet vlera, ajo ngarkohet nga disku dhe vendoset përsëri në cache.
Pas deserializimit dhe restaurimit të vlerave nga ruajtja e përkohshme, referencat nuk rikthehen. Vlera e cache-it rikthehet nga disku. Por pas serializimit/deserializimit, është e pamundur të rivendosësh referencat në objekte të tjera brenda vlerës.

Fshirja e të dhënave nga ruajtja e përkohshme

Pasi të dhënat të ruhen në atributin e objektit infobaze, të dhënat në ruajtje të përkohshme mund të fshihen. Ekziston një metodë për këtë
RemoveFromTemporaryStorage(), e cila kryen heqjen. Metoda merr një adresë në ruajtje të përkohshme si parametër.

Po kontrollon adresën për ruajtje të përkohshme

Adresa mund të tregojë si ruajtjen e përkohshme ashtu edhe detajet në bazën e informacionit. Ekziston një metodë për të kontrolluar llojin e saj
Kjo ështëTemporaryStorageAddress(). Kontrollon që adresa e kaluar është një adresë që tregon dyqanin. Kthen True nëse adresa tregon për ruajtjen e përkohshme.

Marrja e adresës së rekuizitës

Pasi të dhënat vendosen në atributin e objektit infobaze, mund t'ju duhet t'i qaseni duke përdorur metodat e skedarit.
Por përpara se të merrni të dhëna, për shembull nga një pronë, duhet të merrni adresën e kësaj prone. Ekziston një metodë për këtë GetNavigationLink().

Mund të kthejë adresën e vlerës në bazën e informacionit bazuar në parametrat origjinalë. Për ta bërë këtë, duhet të kaloni çelësin e objektit (kjo mund të jetë
si një lidhje me objektin dhe çelësin e hyrjes së regjistrit të informacionit) dhe emrin e atributit. Nëse keni nevojë të merrni adresën e vlerës së ruajtur në atribut
pjesa tabelare, pastaj te emri i atributit në parametrin që specifikon emrin e atributit, duhet të shtoni emrin e pjesës tabelare dhe një pikë ".". Për shembull: Produktet.Imazhi

Po merr një skedar nga baza e informacionit

Marrja e një skedari

Metoda GetFile() merr një skedar nga infobaza dhe e ruan atë në sistemin lokal të skedarëve të përdoruesit. Parametri i parë specifikon adresën e skedarit në atributin e objektit infobaze ose në ruajtjen e përkohshme të skedarit. Ruajtja nuk do të ndodhë nëse përdoruesi në emër të të cilit kryhet operacioni nuk ka të drejtën e Pamjes për detajet e objektit të bazës së informacionit. Parametri i dytë përcakton vendndodhjen ku ruhet skedari që rezulton. Në modalitetin jo-interaktiv, duhet të specifikoni shtegun. Në modalitetin interaktiv parametri është
opsionale.
Si parazgjedhje, metoda ekzekutohet në mënyrë interaktive. Kjo do të thotë që do të krijohet një kuti dialogu në të cilën mund të specifikoni një veprim me skedarin e marrë: ekzekutoni ose ruani në një vendndodhje të caktuar nga përdoruesi në sistemin e skedarëve. Nëse zgjidhet modaliteti ndërveprues dhe opsioni Emri i skedarit nuk është specifikuar, operacioni i hapjes së skedarit nuk është i disponueshëm. Metoda kthen një vlerë Boolean. False do të thotë që përdoruesi zgjodhi të anulojë operacionin në kutinë e dialogut interaktiv të ruajtjes së skedarit.

Marrja e një grupi skedarësh

Metoda GetFiles() ju lejon të merrni dhe ruani disa skedarë të ruajtur në bazën e informacionit në sistemin lokal të skedarëve të përdoruesit. Lista e skedarëve të ngarkuar kalohet si parametër.

// Lista e skedarëve - një listë vlerash që përmbajnë lidhje me elementë
// drejtoria në të cilën ndodhen skedarët e ngarkuar
// Lista e përfaqësimit të vlerave është emri i skedarit që po ngarkohet
FileArray = Array i ri;
Për secilin element të listës nga cikli i listës së skedarëve
Skedari = I ri File(String(ListElement.Value));
ReceiveFile = E re Përshkrimi i skedarit të transmetuar;
ReceiveFile.Emri = ListElement.Pamje;
ReceiveFile.Storage= P getNavigationLink(ListItem.Value, “Data”);
FileArray.Add(ReceivingFile);
Cikli i Fundit;
Skedarët e Marrë= Array i ri;
Rezultati = ReceiveFiles (FilesArray, ReceivedFiles, UploadedFilesPath, False);
Nëse JO Rezultati Atëherë
Mesazh = E re Mesazh për Përdoruesin;
Mesazhi.Teksti = "Gabim në marrjen e skedarëve!";
Mesazhi.Mesazhi();
FundNëse;

Pas përfundimit, metoda mund të kthejë një listë të skedarëve të shkarkuar aktualisht, duke treguar emrin e plotë të secilit skedar të ruajtur.
SHËNIM. Për të përdorur metodën GetFiles() në klientin në ueb, duhet të lidhni shtesën e skedarit. Nëse prona Emri i objektit Përshkrimi i skedarit të transmetuar përmban rrugën absolute të skedarit, skedari do të ruhet në këtë shteg, pavarësisht nga parametri Vendndodhja e skedarit.
Parametri File Location mund të jetë ose një shteg në sistemin lokal të skedarëve ose një objekt dialogu i përzgjedhjes së skedarit në mënyrën e zgjedhjes së një drejtorie ose ruajtjes së skedarëve. Nëse vlera e parametrit Vendndodhja e skedarit objekti i specifikuar Dialogu i përzgjedhjes së skedarit në modalitet
duke ruajtur skedarët, më pas:

● dialogu do të thirret për çdo skedar të transferuar, me përjashtim të atyre skedarëve për të cilët vetia emri i objektit Përshkrimi i skedarit të transmetuar përmban një shteg absolut;
● vlera e objektit Emri i vetive Përshkrimi i skedarit të transmetuar do të përdoret si emër fillestar i skedarit në dialog;
● nëse për ndonjë skedar zgjidhet refuzimi i ruajtjes, atëherë emri i objektit Përshkrimi i vetive të skedarit të transferuar do të përmbajë një varg bosh;
● metoda GetFiles() do të kthejë vlerën True nëse të paktën një skedar është marrë me sukses;
● duhet të merret parasysh që skedarët janë pranuar në të vërtetë pasi përdoruesi i përgjigjet pyetjeve në lidhje me specifikimin e emrit dhe rrugës
të gjithë skedarët e pranuar;
● nëse përdoruesi në emër të të cilit është ekzekutuar metoda GetFile() nuk ka të drejtën View për të paktën një atribut të objektit të bazës së informacionit nga i cili janë marrë skedarët, i gjithë operacioni do të dështojë.
Shembull:

TransferredFiles = Array i ri;
Përshkrimi = E re Përshkrimi i skedarit të transmetuar(“Përshkrimi”, Adresa e Skedarit);
Skedarët e transferuar.Shto(Përshkrim );
FileSelect = E re FileSelectionDialog(FileSelectionDialogMode.Save);
FileSelect.Header= “Ruaj arkivin”;
Zgjedhja e skedarit.Zgjerimi= "zip";
FileSelect.Filter= "Arkivi(*.zip)|*.zip|Të gjithë skedarët|*.*";
FileSelect.FilterIndex = 0;
ReceiveFiles (TransferFiles, Select File, False);

Nëse zgjidhet mënyra ndërvepruese për zgjedhjen e drejtorisë për ruajtjen e skedarëve, klienti i uebit do të kërkojë gjithashtu leje për të ruajtur skedarët e specifikuar me shtigje absolute. Në rastin e ruajtjes jo-interaktive (rruga drejt drejtorisë është e specifikuar në parametrin përkatës), kërkesa do të ekzekutohet për të gjithë listën e skedarëve të ruajtur.

Shembull i përdorimit të metodave të skedarëve

// Marrja e një skedari nga disku në mënyrë interaktive
// dhe vendosja e tij në ruajtje të përkohshme.
&OnClient
Procedura SelectDiskFileIWrite()
Variabli SelectedName;
Perem Adresa e ruajtjes së përkohshme;
NewObject = Object.Link.Empty();
Nëse PlaceFile(TemporaryStorageAdress, "", SelectedName, True) Pastaj
Objekti.Emri i skedarit = Emri i Zgjedhur;
PlaceObjectFile(TemporaryStorageAddress);
fundNëse;
Fundi i procedurës
// Kopjimi i një skedari nga ruajtja e përkohshme në mbështetëse
// drejtori, shkrimi i një objekti, fshirja e një skedari nga i përkohshëm
// ruajtje.
&Në server
Procedura PlaceObjectFile (Adresa e ruajtjes së përkohshme)
Elementi i drejtorisë = Form AttributesValue(“Objekt”);
Të dhënat binare = GetFromTemporaryStorage(TemporaryStorageAddress);
Elementi i drejtorisë.Të dhënat e skedarit= E re Vlerat e ruajtjes (Të dhënat binare, NewDataCompression());
Skedari = I ri Skedari (Artikulli i Direktorisë. Emri i skedarit);
Artikulli i drejtorisë.Emri i skedarit = Emri i skedarit;
Elementi i drejtorisë.Write();
Modifikuar = E gabuar;
DeleteNgaStorageTemporaryStorage(TemporaryStorageAddress);
ValueВFormAttributes (Elementi i drejtorisë, "Objekt");
Fundi i procedurës
// Lexoni skedarin nga mbështetësit dhe ruajeni atë
// në diskun lokal në modalitetin interaktiv.
&OnClient
Procedura ReadFileAndSaveToDisk()
Adresa = GetNavigationLink(Object.Link,"FileData");
GetFile (Adresa, Object.FileEmri, True);
Fundi i procedurës

Leja për të kryer një grup operacionesh skedarësh

Kur kryeni disa operacione në klientin në ueb, mund t'ju duhet të merrni leje për operacione të shumëfishta skedarësh.
Për shembull, ju duhet të merrni një dokument nga një infobazë dhe më pas të hapni dokumentin e ruajtur duke përdorur aplikacionin përkatës.
Për të kryer këtë operacion, do t'ju duhet t'i përgjigjeni pyetjes në lidhje me ruajtjen e dokumentit dhe pyetjes në lidhje me nevojën për ta ekzekutuar atë. Nëse ka më shumë operacione, përdoruesi do të ketë gjithashtu më shumë pyetje.
Për të zvogëluar numrin e pyetjeve, mund të përdorni metodën. Kur përdorni këtë metodë
Përdoruesit i shfaqet një listë e të gjitha operacioneve që janë planifikuar të kryhen dhe i kërkohet të lejojë kryerjen e grupit të operacioneve. Nëse përdoruesi ka lejuar ekzekutimin, atëherë operacionet e kërkuara do të kryhen pa kërkesa shtesë për përdoruesin. Nëse nuk jepet leja, operacionet do të vazhdojnë si zakonisht: një kërkesë për çdo operacion.
SHËNIM. Për të përdorur metodën RequestUserPermission() Në klientin në internet duhet të aktivizoni shtesën e menaxhimit të skedarit.
Le të shohim një shembull të përdorimit të metodës:

Nëse ConnectExtensionWorking me Files() Pastaj
Link = GetNavigationLink(Object.Link, “FileData”);
// Formimi i një përshkrimi të skedarëve të transferuar (në këtë rast ka vetëm një skedar)
Skedarët e transferuar= Array i ri;
Përshkrimi = Përshkrimi i ri i skedarit të transferuar (Object. Filename, Link);
TransferredFiles.Add(Description);
// Përgatitni një objekt për të marrë informacion rreth skedarëve të marrë
Skedarët e transferuar= Array i ri;

// Përcaktoni parametrat e tjerë të metodës
DirectorySave= “c:\temp”;
Interaktiv = E rreme ;
Emri i skedarit të transmetuar = Ruajtja e drejtorisë + "\" + Emri i objektit;
// Përgatitni një përshkrim të metodave për marrjen e lejeve
Metodat = Array i ri;

Metodat.Add(“GetFiles”);
Metodat.Add(TransferFiles);
Metodat.Add(TransferredFiles);
Metodat.Add(SaveDirectory);
Metodat.Add(Interactive);
Metodat.Add(New Array);
Metodat.Add(“RunApplication”);
Metodat.Add(TransferredFileName);
Nese jo Kërkoni lejen e përdoruesit (Metodat) Pastaj
Paralajmërim ("Përdoruesi ka refuzuar lejen.");
Kthimi;
fundNëse;
GetFiles (TransferFiles, Transmitted Files, SavingDirectory, Interactive);
RunApplication (Transferred FileName);
Përndryshe
Paralajmërim ("Ekzekutimi nuk mbështetet. Shtesa e skedarit nuk është instaluar.");
fundNëse;

Duhet të theksohen disa veçori të metodës RequestUserPermission().

1. Leja kërkohet vetëm për metodat e mëposhtme:

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

2. Kërkohet leje për një grup specifik parametrash të metodës. Nëse, gjatë ekzekutimit aktual të një metode të manipulimit të skedarëve, vlerat e parametrave ndryshojnë nga ato për të cilat është marrë leja, kjo leje nuk do të jetë e vlefshme dhe përdoruesi do të marrë një kërkesë të veçantë për të konfirmuar operacionin.

3. Nëse keni nevojë të kryeni dy (ose më shumë) operacione identike me skedarë (madje edhe me të njëjtin grup parametrash), duhet të specifikoni numrin e duhur të elementeve në grupin e parametrave të metodës RequestUserPermission(). Për shembull, nëse ju duhet të merrni të njëjtin skedar nga infobaza dy herë dhe ta vendosni në një vendndodhje fikse në sistemin e skedarëve, duhet të kërkoni leje
për dy operacione.

4. Nëse kërkohet leje për një operacion që kryen një operacion ndërveprues (për shembull, funksioni GetFiles(), një objekt kalohet si parametër Dialogu i përzgjedhjes së skedarit), atëherë një operacion i tillë përjashtohet nga kërkesa.

Lejet e dhëna mbahen ose derisa thirrja e autorizuar të ekzekutohet ose derisa gjuha e integruar të përfundojë ekzekutimin.
SHËNIM. Në klientë të trashë dhe të hollë RequestUserPermission() Metoda gjithmonë kthen True, pa ndërveprim të përdoruesit.

Puna me ruajtje të përkohshme në një punë në sfond

Mekanizmi për të punuar me ruajtje të përkohshme ka aftësinë për të transferuar të dhëna nga një punë në sfond në seancën që ka iniciuar punën në sfond.
Për një transferim të tillë, duhet të vendosni një vlerë boshe në ruajtje të përkohshme në sesionin prind (duke përdorur metodën PlaceInTemporaryStorage()), duke specifikuar çdo identifikues të ruajtjes së përkohshme që po krijohet (Parametri i adresës). Pastaj kaloni adresën e marrë në punën e sfondit përmes parametrave të punës së sfondit. Më tej, nëse në një punë në sfond, kjo adresë përdoret si vlerë e parametrit Method Address PlaceInTemporaryStorage(), më pas rezultati do të kopjohet në seancën nga e cila është nisur puna e sfondit.
Të dhënat e vendosura në ruajtje të përkohshme në një punë në sfond nuk do të jenë të aksesueshme nga sesioni prind derisa të përfundojë puna e sfondit.

Mbështetje për adresat në fushën e figurës

Elementi i formës View Field Fusha Picture mbështet shfaqjen e një fotografie të specifikuar nga adresa e një vlere (e cila mund të jetë një foto ose të dhëna binare) në ruajtje të përkohshme ose një bazë të dhënash.
Për ta bërë këtë, duhet të vendosni një atribut tip vargu në vetinë Data e elementit të formës. Vlera e këtij atributi do të interpretohet si adresa e figurës.

// Shembulli 1
// Lidhja e fushës së imazhit me adresën e imazhit në mënyrë të përkohshme
// ruajtje. AdresaPictures – detajet e formës së llojit të vargut
PlaceFile(ImageAddress, InitialName, SelectedName, True, UniqueIdentifier);
// Shembulli 2
// Marrja e adresës së figurës nga atributi i objektit
// bazë informacioni
FilePictures = Object.FilePictures;
Nëse jo PictureFile.Empty() Pastaj
ImageAddress = GetNavigationLink (ImageFile, “FileData”);
Përndryshe
Adresa e Imazhit = “”;
E pafundme;

Qasja në drejtoritë standarde

Gjatë përdorimit të sistemit, kërkohet një hapësirë ​​në sistemin e skedarëve ku mund të ruhen të dhëna të ndryshme skedarësh, të cilat, nga njëra anë, janë të përkohshme, dhe nga ana tjetër, duhet të ruhen për një kohë mjaft të gjatë. Skedarë të tillë përfshijnë drafte për sistemet e menaxhimit të dokumenteve, komponentë të jashtëm që funksionojnë në anën e kompjuterit të klientit, etj.
Një drejtori speciale është menduar për ruajtjen e skedarëve të tillë, i cili është i lidhur me një përdorues specifik të një baze informacioni specifik.
I njëjti përdorues që punon me dy baza informacioni do të ketë akses në dy drejtori të ndryshme për ruajtjen e të dhënave të përdoruesit. Vendndodhja e kësaj drejtorie përcaktohet duke përdorur metodën Drejtoria e të Dhënave të Përdoruesit të Punës(). Nëse drejtoria nuk ekziston, ajo krijohet herën e parë që aksesohet. Nëse drejtoria nuk mund të krijohet, sistemi bën një përjashtim.
SHËNIM. Metoda UserDataWorkDirectory() nuk disponohet në anën e serverit.
Sistemi operativ ka një drejtori të veçantë të caktuar për ruajtjen e përhershme të të dhënave të përdoruesit. Mund të jenë disa
raportet, format e printuara të dokumenteve, etj. Të dhënat vendosen në këtë direktori, të cilat më vonë mund të dërgohen në të jashtme
tek konsumatorët. Metoda DocumentDirectory() përdoret për të hyrë në këtë direktori. Vendndodhja fizike e drejtorisë ndryshon në varësi të sistemit operativ.
sistemi ku ekzekutohet aplikacioni dhe renditet në asistentin e sintaksës.