1c stocare de date stocare temporară. Depozitare temporara. Cum se numesc?

Aproape orice informație poate fi stocată într-un depozit de valori, de ex.

... poze (fotografii):

CurrentImage.Object = SprFabric.Link; CurrentImage.DataType = Enumerări.Tipuri de informații suplimentare despre Objects.Image; Stocare = NewValueStorage(NewPicture, NewDataCompression()); CurrentImage.Storage = Storage.Get();

// în acest loc afișează totul... Form Elements.PictureField1.Picture = Storage.Get(); CurrentImage.Write();

...document foaie de calcul:

TabDoc=New TabularDocument; TabDoc.Output(FormElements.TabularDocumentField1); Stocare=NewValueStorage(TabDoc); Scrie();

Sfârșitul procedurii

Procedura RestoreFromStoragePress(Element)

TabDoc=Storage.Get(); Dacă TabDoc<>Nedefinit ThenFormElements.TabularDocumentField1.Output(TabDoc); endIf;

Sfârșitul procedurii

...fișiere arbitrare (date binare):

XZ = NewValueStorage(NewBinaryData(fișier));

Opt acceptă comprimarea datelor plasate în stocare:

XZ = NewValueStorage(NewBinaryData(fișier),NewDataCompression(9));

... prelucrare și raportare externă:

Procedura LoadProcessingIntoStorage(PropsStorageType)

CompressionRate = NewDataCompression(9); //9 PropsStorageType maxim = New StorageValues(New BinaryData("c:\reports\report.epf", Compression Rate));

Sfârșitul procedurii

Procedure StartProcessingFromStorage(PropsStorageType)

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

Sfârșitul procedurii

Lucrul cu stocarea

Dacă au fost date binare, atunci pot fi restaurate din depozitul de valori folosind metoda Get și scrise într-un fișier folosind metoda Write().

If TypeValue(Stocare)<>Tastați ("BinaryData") Apoi

BinaryData = Storage.Get();

BinaryData = Stocare;

endIf; BinaryData.Write(FileName);

Dacă a fost, de exemplu, un document Word (fișier doc sau alt tip de fișier înregistrat), atunci poate fi deschis astfel:

LaunchApplication(FileName);

Pentru a șterge un câmp de tip Value Storage, trebuie să-l atribuiți Nedefinit:

PropsStorage = Nedefinit;

Lucrul cu fișiere și imagini în limbajul încorporat 1C:Enterprise 8

Scop

Aplicația gestionată implementează un nou mecanism de lucru cu fișierele. Oferă schimb de fișiere între baza de informații și aplicația client. Particularitatea acestui mecanism este că este proiectat pentru utilizare într-un client subțire și un client Web și este conceput ținând cont de restricțiile de lucru cu fișiere impuse de browserele web.

Mecanismul este un set de metode care pot fi folosite pentru a plasa datele stocate local pe computerul utilizatorului într-o stocare temporară a bazei de informații, a transfera aceste informații din stocarea temporară în baza de date și a le primi înapoi pe computerul utilizatorului. Cele mai frecvente probleme de aplicare rezolvate de acest mecanism sunt stocarea informațiilor însoțitoare, de exemplu, imagini ale mărfurilor, documente legate de contracte etc.

Domeniul de aplicare al metodei

Depozitare temporara

Stocarea temporară este o zonă specializată a bazei de informații în care pot fi plasate date binare. Scopul principal este stocarea temporară a informațiilor în timpul interacțiunii client-server înainte ca acestea să fie transferate în baza de date.

Necesitatea stocării temporare apare deoarece modelul de operare al browserului web necesită ca fișierul selectat de utilizator să fie transferat direct pe server fără posibilitatea stocării acestuia pe client. Când un fișier este transferat, acesta este plasat în stocare temporară și poate fi apoi utilizat atunci când scrieți un obiect în baza de date.

Cea mai tipică sarcină a aplicației rezolvată prin stocarea temporară este furnizarea de acces la fișiere sau imagini înainte ca obiectul să fie înregistrat în baza de informații, de exemplu, sub forma unui element.

Un fișier sau date binare plasate în stocare sunt identificate printr-o adresă unică, care poate fi folosită ulterior în operațiuni de scriere, citire sau ștergere. Această adresă este dată de metode de scriere a unui fișier în stocarea temporară. O metodă separată în limbajul încorporat vă permite să determinați dacă adresa transmisă este o adresă care indică date în stocare temporară.

Baza de informatii

Mecanismul vă permite să accesați date binare stocate în atribute de tipul Value Storage.

Ca și în cazul stocării temporare, accesul la informații este posibil printr-o adresă specială. Îl puteți obține printr-o metodă specială prin transmiterea unui link către un obiect sau o cheie de intrare în registrul de informații și numele atributului. În cazul unei piese tabulare, este necesar să se transfere în plus indexul de rând al părții tabulare.

Metodele de lucru cu fișiere au limitări atunci când se lucrează cu detaliile bazei de informații. Pentru ei, spre deosebire de stocarea temporară, sunt disponibile doar informațiile de citire, dar nu scrierea sau ștergerea acestora.

Descrierea metodelor de lucru cu fișiere

Salvarea datelor în stocarea temporară

Scenariul cel mai tipic pentru utilizarea acestui mecanism implică plasarea inițială a datelor utilizatorului în stocare temporară. Există două metode pentru aceasta: PlaceFile() și PlaceFileInTemporaryStorage().

Prima metodă, PlaceFile(), plasează un fișier din sistemul de fișiere local în stocarea temporară. Metoda poate accepta o adresă țintă în stocare. Dacă nu este definit sau este un șir gol, atunci va fi creat un fișier nou și metoda își va returna adresa prin parametrul corespunzător.

Dacă parametrul care determină modul interactiv de operare este True, atunci metoda va afișa o casetă de dialog standard de selecție a fișierelor în care puteți selecta un fișier pe care să îl plasați în stocare. În acest caz, metoda va returna și adresa fișierului selectat.

Ca rezultat, metoda returnează False dacă utilizatorul a refuzat în mod interactiv să efectueze o operație în dialogul de selecție a fișierului. Metoda este disponibilă numai pentru client.

A doua metodă, PlaceFileInTemporaryStorage(), este similară cu cea anterioară, cu excepția faptului că este disponibilă pe server, iar datele care urmează să fie scrise în stocarea temporară sunt reprezentate nu ca o cale în sistemul de fișiere, ci ca o variabilă de tip BinaryData. De asemenea, dacă nu este specificată nicio adresă țintă, este creat un fișier nou în stocare. Adresa sa este returnată ca rezultat al funcției.

Preluarea unui fișier din stocarea temporară

Când scrieți un obiect în baza de informații, poate fi necesar să extrageți date din stocarea temporară și să le plasați, de exemplu, într-un atribut. Există o metodă de server corespunzătoare pentru aceasta - GetFileFromTemporaryStorage(). Această metodă preia datele din stocarea temporară și, ca rezultat, le returnează. Pentru a face acest lucru, trebuie să specificați adresa în stocarea temporară. Această adresă este returnată de metodele descrise mai sus PlaceFile() și PlaceFileInTemporaryStorage() dacă sunt executate cu succes.

Ștergerea unui fișier din stocarea temporară

După ce datele sunt salvate în detalii, fișierul din stocare temporară poate fi șters. În acest scop, există o metodă DeleteFileFromTemporaryStorage(), care șterge un fișier din stocarea temporară. Metoda ia ca parametru adresa unui fișier aflat în stocare temporară. Disponibil pe server.

Verificarea adresei pentru stocare temporară

Adresa fișierului poate indica atât stocarea temporară, cât și detalii în baza de informații. Pentru a-i verifica tipul, există o metodă This isTemporaryStorageAddress().

Verifică dacă adresa transmisă este o adresă care indică către magazin. Returnează True dacă adresa indică o stocare temporară. Metoda este disponibilă pe server.

Primirea adresei de recuzită

După ce datele sunt plasate în detaliile din baza de informații, poate fi necesar să le accesați folosind metode de fișier.

Dar înainte de a primi date, de exemplu de la o proprietate, trebuie să obțineți adresa acestei proprietăți. În acest scop, există o metodă GetFileAddressInInformationBase().

Scopul său este de a returna adresa fișierului în baza de informații conform parametrilor originali. Pentru a face acest lucru, trebuie să transmiteți cheia obiectului (aceasta poate fi fie un link către obiect, fie o cheie de intrare în registrul de informații) și numele atributului. Dacă trebuie să obțineți adresa unui fișier stocat într-un atribut al părții tabelare, înainte de numele atributului din parametrul care specifică numele atributului, trebuie să adăugați numele părții tabelare și un punct „.”. Metoda este disponibilă atât pe client, cât și pe server.

Preluarea unui fișier din baza de informații

Metoda GetFile() primește un fișier din baza de informații și îl salvează în sistemul de fișiere local al utilizatorului. Primul parametru specifică adresa fișierului din elementele de recuzită sau stocarea temporară a fișierului. Al doilea parametru specifică locația de destinație a fișierului rezultat. În modul non-interactiv, trebuie să specificați calea. În modul interactiv, parametrul este opțional.

Implicit, metoda este executată în modul interactiv, adică ultimul parametru este True. Aceasta înseamnă că este afișată o casetă de dialog în care puteți specifica o acțiune cu fișierul primit: rulați-l sau salvați-l într-o locație specificată de utilizator. Dacă modul interactiv este activ și parametrul Cale fișier disc țintă nu este specificat, operația de deschidere a fișierului nu este disponibilă. Returnează o valoare booleană. Fals înseamnă că utilizatorul a ales să anuleze operația în caseta de dialog interactivă de salvare a fișierului.

Exemplu de utilizare a metodelor de fișiere

// Primirea unui fișier de pe disc în modul interactiv // și plasarea acestuia în stocare temporară &Pe Procedura Client SelectDiskFileAndWrite()

Variabila SelectedName; VariableTemporaryStorageAddress; Dacă PutFile(TemporaryStorageAddress, SelectedName, True) Atunci Object.FileName = SelectedName; PlaceObjectFile(TemporaryStorageAddress); endIf;

Sfârșitul procedurii

// Copierea unui fișier din stocarea temporară într-un atribut de director //, înregistrarea unui obiect, ștergerea unui fișier din stocarea temporară // &Pe server Procedure Place Object File (Adresa de stocare temporară)

Director Element = Form AttributesValue("Obiect"); BinaryData = GetFileFromTemporaryStorage(TemporaryStorageAddress); Director Element.File Data = NewValueStorage(BinaryData); FilePathOnDisk = Fișier nou (DirectoryItem.FileName); Director Item.FileName = FilePathOnDisk.Name; Director element.Write(); Modificat = Fals; DeleteFileFromTemporaryStorage(TemporaryStorageAddress); ValueВFormAttributes(Element director, „Obiect”);

Sfârșitul procedurii

// Citirea unui fișier din elemente de recuzită și salvarea lui // pe discul local în modul interactiv &Pe Procedura Client ReadFileAndSaveToDisk()

Adresă = GetFileAddressInInformationBase(Object.Link, "FileData"); GetFile(Adresă, Object.FileName, True);

Sfârșitul procedurii

Suport pentru adrese din câmpul de imagine

Controlul Picture Field acceptă afișarea unei imagini specificate de adresa unui fișier în stocarea temporară sau într-o bază de date.

Pentru a face acest lucru, trebuie să setați un atribut de tip șir în proprietatea Data a elementului de formular. Valoarea acestui atribut va fi interpretată ca adresa imaginii.

Exemplu // Legarea câmpului de imagine la adresa imaginii în // stocare temporară. AddressPictures formează detalii de tip șir

PlaceFile(Adresă imagine, adevărat)

Picture.Data = AddressPictures

Limitări atunci când lucrați cu clientul Web

Funcționarea mecanismului descris atunci când se utilizează clientul Web are unele limitări. Aceste restricții sunt legate de modelul de securitate al browserului. Deci, de exemplu, clientul nu poate salva independent un fișier în sistemul de fișiere local, adică doar versiunea interactivă a metodelor client PlaceFile() și GetFile() este disponibilă. O excepție este aruncată atunci când încercați să utilizați modul non-interactiv. Casetele de dialog care apar interactiv sunt specifice tipului dvs. de browser.

Caracteristici atunci când lucrați cu Value Storage pe Client

Problemă:

Când un Document are un atribut de tipul de stocare a valorii în secțiunea tabelară, acesta încetinește deschiderea formularului de document dacă acest atribut conține date mari.

Motiv presupus:

Poate că, la deschiderea unui formular, nu linkul către datele aflate în Value Store este trimis către client, ci datele în sine.

Soluţie

  • În proprietățile atributului tabel al formularului există un steag „Folosește întotdeauna”. Dacă este setat, conținutul câmpului este întotdeauna transferat între server și client - de exemplu, la deschiderea unui formular. Acest flag trebuie să fie dezactivat, dar acest lucru trebuie luat în considerare în cod, deoarece implicit nu va exista nicio valoare pentru acest câmp pe client. Un exemplu poate fi găsit în 1C:Arhive.

Este chiar mai bine de folosit depozitare temporara pentru a transfera fișiere între client și server.

Material actualizat pentru a se potrivi cu Drupal 8.7.0+

Magazin termic(stocare temporară) - vă permite să stocați temporar orice date. Acesta este un fel de stocare a datelor în $_SESSION, deoarece această stocare este de obicei asociată cu un anumit utilizator. Dar nu folosește $_SESSION și stochează totul în interiorul sistemului (în baza de date).

Nucleul are două servicii pentru stocare temporară, tempstore.private și tempstore.shared. Ele funcționează identic, dar private stochează întotdeauna date pentru un anumit utilizator. Adică, apelarea unei chei dintr-o stocare privată va returna date diferite pentru fiecare utilizator. Partajat este accesibil de la fiecare utilizator.

Domeniul de aplicare al acestor servicii și stocarea lor poate fi foarte vast. De exemplu, stocați unele valori temporare ale formularelor, iar dacă utilizatorul nu le-a salvat, acestea pot fi restaurate din această stocare, de exemplu, pentru unele formulare REST și chiar potrivite pentru cele obișnuite. În general, pentru ce aveți suficientă imaginație sau sarcini. De exemplu, aceasta poate fi folosită pentru unele forme controlate în afara Drupal, de exemplu în React sau Vue.

Valorile din aceste stocări sunt valabile în mod implicit timp de 604800 de secunde (1 săptămână), după care sunt șterse automat.

Pentru a schimba această valoare. Va trebui să vă conectați, de exemplu, site-uri/default/services.yml și să-l redefiniți:

Parametri: # 10 secunde tempstore.expire: 10

Dar acest lucru, din motive întemeiate, nu ar trebui să se întâmple.

Să ne uităm la capacitățile fiecărui dispozitiv de stocare; deși sunt similare, sunt ușor diferite.

tempstore.private - depozitare privată

Această stocare este privată pentru fiecare utilizator.

tempstore.shared - spațiu de stocare partajat

Această stocare este partajată și poate conține date comune tuturor utilizatorilor.

Depozitul are următoarele metode:

  • get($key) : Preia o valoare din magazin prin cheia sa. Dacă nu există date, va returna NULL, dacă există, va returna o valoare.
  • getIfOwner($key): Preia o valoare din magazin prin cheia sa. Dacă nu există date sau datele nu au fost scrise sub utilizatorul curent, va returna NULL, dacă există și au fost scrise sub utilizatorul curent, va returna valoarea.
  • setIfNotExists($key, $value) : scrie valoarea $value sub cheia $key la stocare numai dacă în prezent nu există date pentru acea cheie. Returnează TRUE dacă este înregistrat, FALSE dacă datele au fost deja înregistrate.
  • setIfOwner($key, $value) : scrie valoarea $value sub cheia $key la stocare numai dacă în prezent nu există date sau dacă proprietarul datelor reale este utilizatorul curent.
  • set($key, $value) : scrie valoarea $value sub cheia $key to storage.
  • getMetadata($key): returnează metadate pentru o anumită $key , fără date. Acesta este un obiect care conține proprietatea proprietarului, care stochează valoarea, cine deține valoarea și proprietatea actualizată - marca temporală Unix a momentului în care a fost scrisă această valoare.
  • delete($key): Șterge datele asociate cu $key dată din stocare.
  • deleteIfOwner($key): Șterge datele asociate cu $key-ul dat din stocare, numai dacă datele aparțin utilizatorului curent.

Cum se numesc?

Mici exemple despre cum să le numiți.

Primul pas constă în obținerea temporară a stocării necesare, apoi din stocare se obține o „colecție”, unde datele sunt deja stocate sub cheile necesare. De regulă, numele „colecției” este egal cu numele modulului.

Utilizați Drupal\Core\TempStore\PrivateTempStoreFactory; utilizați 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("nume de utilizator", "Drupal"); /** @var SharedTempStoreFactory $shared_tempstore */ $shared_tempstore = \Drupal::service("tempstore.shared"); $my_shared_storage = $shared_tempstore->get("dummy"); $my_shared_storage->set(„nume de utilizator”, „Drupal”);

Exemplu

În exemplu, vom crea un formular pe pagina /temp-store-form cu două câmpuri, dintre care unul va stoca mesajul în stocare privată, iar celălalt în public.

Creați un formular:

Src/FormWithTempStore.php

privateTempStore = $private_temp_store->get("dummy"); $this->sharedTempStore = $shared_temp_store->get("dummy"); ) /** * (@inheritdoc) */ public static function create(ContainerInterface $container) ( return new static($container->get("tempstore.private")), $container->get("tempstore.shared") ); ) /** * (@inheritdoc) */ public function getFormId() ( returneaza "form_with_temp_store"; ) /** * (@inheritdoc) */ public function buildForm(array $form, FormStateInterface $form_state) ( $form ["private_message"] = [ "#type" => "textarea", "#title" => $this->t("Mesaj privat"), "#required" => TRUE, "#description" => $ this->t("Această valoare va fi privată pentru fiecare utilizator."), "#default_value" => $this->privateTempStore->get("mesaj"), ]; $form["shared_message"] = [ " #type" => "textarea", "#title" => $this->t ("Mesaj partajat"), "#required" => TRUE, "#description" => $this->t("Această valoare va fi partajat pentru toți utilizatorii."), "#default_value" => $this->sharedTempStore->get("message"), ]; $form["actions"] = ["#type" => "actions" ]; $form["actions"]["submit"] = [ "#type" => "trimite", "#value" => $this->t("Salvare"), ]; returnează $form; ) /** * (@inheritdoc) */ public function submitForm(array &$form, FormStateInterface $form_state) ( $this->privateTempStore->set("mesaj", $form_state->getValue("private_message")); $this->sharedTempStore->set(„mesaj”, $form_state->getValue(„mesaj_partajat”)); ) )

Imprimare (Ctrl+P)

1C: Enterprise are un mecanism de lucru cu stocarea temporară care oferă stocarea unor date legate de sesiune.
În plus, a fost implementat un mecanism de lucru cu fișiere, care asigură schimbul de fișiere între baza de informații și aplicația client. Particularitatea acestui mecanism este că este conceput pentru utilizare într-un client subțire și un client web și este conceput ținând cont de restricțiile de lucru cu fișiere impuse de browserele web.

Depozitare temporara

Acesta este un depozit specializat de informații în care poate fi plasată o valoare. Scopul principal este stocarea temporară a informațiilor în timpul interacțiunii client-server înainte ca acestea să fie transferate în baza de date. Mecanismul de stocare temporară, împreună cu mecanismul de gestionare a fișierelor, oferă un set care poate fi utilizat pentru a plasa datele stocate local pe computerul utilizatorului în stocarea temporară a bazei de informații, pentru a transfera aceste informații din stocarea temporară în baza de date și pentru a obține înapoi la computerul utilizatorului. Cele mai frecvente probleme de aplicare rezolvate de aceste mecanisme sunt stocarea informațiilor însoțitoare, de exemplu, imagini ale mărfurilor, documente legate de contracte etc. Mecanismele de stocare temporară și de lucru cu fișiere sunt adesea folosite împreună, dar pot fi utilizate și separat.
Necesitatea stocării temporare apare, de exemplu, deoarece modelul de browser web necesită ca un fișier selectat de utilizator să fie transferat direct pe server, fără posibilitatea de a-l stoca pe client. Când un fișier este transferat, acesta este plasat în stocare temporară și poate fi apoi utilizat atunci când scrieți un obiect în baza de date.
Puteți utiliza stocarea temporară ca stocare universală cu durata de viață controlată a datelor:

1. Dacă, la plasarea datelor în stocare temporară, datele au fost legate la o anumită formă, atunci durata de viață a datelor stocate depinde de speranța de viață a formei la care sunt legate datele. Când ștergeți un obiect formular, stocarea temporară va fi șters de toate informațiile asociate cu acesta.

2. Dacă, la plasarea datelor în stocare temporară, legarea la formular nu a fost finalizată, atunci stocarea temporară va fi ștearsă în următoarele cazuri:

  • Data viitoare când solicitați formularul.
  • La următorul apel de server de la modulul comun client.
  • Pentru apelurile client contextuale și non-contextuale din formular.
  • Când este apelat pe partea de server de la un modul de comandă. Dacă se efectuează un apel la server pentru a plasa o valoare în stocarea temporară, nu se efectuează curățare. Curățarea are loc după ce apelul și-a încheiat activitatea.

Adică, puteți pune una sau mai multe valori în stocarea temporară și puteți utiliza această valoare în apelul următor. Cu toate acestea, după utilizare și înainte ca apelul la server să fie finalizat, valoarea plasată va fi eliminată automat.

Cea mai tipică problemă a aplicației rezolvată prin stocarea temporară este asigurarea accesului la fișiere sau imagini înainte ca obiectul să fie înregistrat în baza de informații, de exemplu, sub forma unui element. La organizarea unui astfel de acces, se recomandă transferul datelor de pe computerele client pe server exact ca fișiere, fără „conversie” prealabilă într-un document text, document foaie de calcul și formate similare ale sistemului 1C:Enterprise. Este recomandat să transferați fișierul pe partea de server și, pe partea de server, să încărcați datele fișierului în cel dorit
formatul sistemului 1C:Enterprise.
Datele plasate în stocare sunt identificate printr-o adresă unică, care poate fi folosită ulterior în operațiuni de scriere, citire sau ștergere. Această adresă este dată de metode de scriere a unei valori în stocarea temporară. O metodă separată în limbajul încorporat vă permite să determinați dacă adresa transmisă este o adresă care indică date în stocare temporară.
Stocarea temporară creată într-o sesiune nu este accesibilă dintr-o altă sesiune. O excepție este capacitatea de a transfera date de la un job de fundal la sesiunea care a inițiat jobul de fundal folosind stocare temporară.

Burty . Cel mai acceptabil mod de a păstra cartofi, rădăcinoase și varză albă este îmbutelierea. O grămadă este un terasament alungit, înclinat pe ambele părți și acoperit cu material izolator deasupra. Este făcut pentru a păstra recolta timp de un sezon. Burts poate fi măcinat, atunci când cartofii sunt turnați pe o suprafață plană, și semi-măcinat, când sunt săpate gropi de mică adâncime. Popunautny (îngropat) grămadă. Pentru o astfel de grămadă, se săpa o groapă cu o adâncime de 25 cm în direcția de la nord la sud. Lățimea cea mai bună a gropii pentru cartofi de sămânță este de 170-200 cm. Pentru depozitarea pe termen scurt a cartofilor sănătoși, puteți face un terasament mai larg (până la 4 m). Lungimea gropii poate fi arbitrară, dar, cu toate acestea, este mai bine atunci când nu este mai mare de 20-25 m. Înălțimea terasamentului grămezii, cu lățimea sa la baza de 2 m, poate fi de 90- 100 cm. De obicei, cartofii sunt depozitați în mai multe grămezi pe un singur loc. Locul de foraj este amplasat in apropierea zonelor de cultivare a cartofilor intr-un loc care nu este inundat de ploaie si apa de topire, nu departe de drum. De-a lungul axei centrale a gropii este săpată o conductă de ventilație de 20-25 cm lățime și adâncime, care se extinde dincolo de groapă și este cu 25 cm mai lungă decât învelișul de la capătul gulerului. Partea canalului care se extinde dincolo de limitele gropii este acoperită strâns cu scânduri deasupra, astfel încât niciun pământ să nu intre în groapă și canal. La colierele de pamant, conducta de aerisire este asezata direct pe suprafata solului si este realizata sub forma unui cort grilaj format din sectiuni separate de un metru si jumatate. Pentru a preveni pătrunderea paielor și a pământului în conducta de ventilație, capetele acesteia sunt făcute fără goluri. Pentru acoperirea canalelor de ventilație, se pregătesc în prealabil secțiuni de zăbrele de 1,5 m lungime și 0,5 m lățime. Secțiunea este formată din șipci de 2-3 cm lățime și goluri între ele de 2-2,5 cm. Secțiunile sunt așezate pe conducta de ventilație și fixate pe reciproc. Grila de ventilație continuă rezultată acoperă partea canalului situată sub produs. În timpul formării unei movile de cartofi sau alte produse, în interior sunt plasate un termometru cu guler sau tuburi tetraedrice special realizate cu o secțiune interioară de 3x3 cm, în care se introduc termometre la capătul tijei. Gulerele sunt ventilate printr-o creastă și o conductă de ventilație. Pilotele sunt acoperite cu paie și pământ. Paiele de grosime completă sunt așezate într-un strat dens de jos în sus, astfel încât creasta grămezii să se suprapună. După aceasta, grămada este presărată cu un strat subțire de pământ pe părțile laterale. Coasta grămezii rămâne sub acoperire de paie până la primul îngheț. Pe vreme ploioasă, este acoperit temporar cu pâslă de acoperiș sau folie de plastic. Când se răcesc cartofii la +4°C înainte de apariția înghețurilor stabile, conductele de ventilație sunt acoperite etanș cu paie, iar grămada este complet acoperită cu pământ. Dacă temperatura în grămezi scade sub +1°C, grămezii sunt acoperiți suplimentar cu materiale termoizolante - turbă, paie, gunoi de grajd sau zăpadă. În caz de ninsori abundente, care duc la acoperirea excesivă a grămezilor, acestea sunt curăţate periodic de zăpadă.

Depozitare în șanț . Această metodă de depozitare necesită de 2 ori mai puține paie sau alte materiale termoizolante decât atunci când se depozitează în grămezi. Șanțurile sunt folosite atunci când apele subterane sunt adânci. Adâncimea și lățimea șanțului este de la 60-80 cm (în regiunile sudice) la 1,5-2 m (în Siberia). Șanțurile sunt acoperite cu un strat de paie deasupra: în regiunile centrale este de 30-40 cm, în Siberia - până la 70 cm, apoi se toarnă un strat de pământ (de la 40 la 70 cm în funcție de zonă). De obicei, se folosesc diferite tipuri de șanțuri: puțin adânci, adânci cu canale de ventilație, cu un strat de sol și fără strat și obișnuite. Șanțurile și piloții sunt echipate cu ventilație simplă (naturală). Scopul său principal este răcirea cartofilor și a legumelor toamna. Principiul de funcționare a ventilației de alimentare și evacuare se bazează pe diferența de presiune a aerului, adică. asupra tirajului de aer mișcare în sus datorită diferenței de temperatură în stiva de produse și în exterior. Aerul cald, fiind mai ușor, iese prin conducta de evacuare, iar aerul rece intră prin conducta de alimentare. Sistemul de ventilație este format din conducte de alimentare și evacuare. Canalul de intrare trece în mijlocul bazei gulerului; există ieșiri spre exterior la capete. În grămezi cu cartofi și legume rădăcinoase, fac o canelură cu o secțiune transversală de 20x20 cm sau 30x30 cm, acoperită cu scânduri de zăbrele, șipci transversale sau tufiș, astfel încât copiile individuale ale produsului să nu cadă. Prin acest canal, aerul exterior mai rece curge în stivă prin gravitație. Aerul încălzit din coș este îndepărtat prin conducte de evacuare (țevi). Sunt cutii tetraedrice din scânduri cu secțiunea transversală de 20x20 cm sau 15x15 cm.În partea inferioară, trecând prin stratul de legume, sunt realizate zăbrele, iar în partea superioară, trecând prin adăpost, sunt solide. ca să nu cadă pământ în ele. Deasupra acestora este instalat un baldachin pentru a proteja produsele de apa de ploaie. Țevile de evacuare, în funcție de caracteristicile și calitatea legumelor depozitate pentru depozitare, se montează la fiecare 2-4 m pe lungimea grămezii. Unul dintre dezavantajele țevilor de evacuare verticale este că aerul cald și umed este îndepărtat numai din zonele adiacente ale coșului, iar zonele îndepărtate sunt cu greu răcite. Apa curge în apropierea țevilor de evacuare, transpiră și îngheață produsele, deoarece aici adăpostul este mai puțin dens și de încredere. Prin urmare, se utilizează ventilația de evacuare a creastă. La depozitarea legumelor pe vreme uscată și răcoroasă, creasta șanțului este acoperită numai cu paie, prin care aerul cald este îndepărtat. Cu toate acestea, astfel de condiții sunt rare; vremea este adesea ploioasă toamna. În astfel de cazuri, este instalată o conductă orizontală de evacuare - plăci lovite împreună la un unghi de 90 °, care sunt așezate pe un teanc de legume cu o ieșire la capete spre exterior. În acest caz, șanțul de-a lungul crestei poate fi acoperit imediat cu paie și pământ, fără teama ca paiele să se ude și ca produsul să înghețe. Trebuie doar să închideți găurile din capăt la timp. Avantajul unei conducte de evacuare pe coamă orizontală față de țevile verticale de ventilație este că, în acest caz, aerul cald și umed este îndepărtat uniform din întregul teanc de produse.

Groapă. Cea mai simplă depozitare este o groapă de pământ - destinată depozitării, cel mai adesea, a unui lot mic de cartofi și, ocazional, a culturilor de rădăcină. Este săpat pe o zonă înălțată cu un nivel scăzut al apei subterane. In functie de densitatea solului se sapa cu pereti drepti sau inclinati. Cea mai acceptabilă formă de groapă este rotundă, totuși, uneori sunt făcute dreptunghiulare. O groapă este săpată într-un sol argilos dens, în formă de ulcior. Nu este recomandat să faceți acest lucru în sol nisipos, deoarece se va prăbuși. Săpați o gaură după cum urmează: trageți un cerc cu diametrul de 1 m și scoateți gâtul ulciorului, apoi, săpat mai adânc, extindeți treptat gaura până la o lățime de 2-2,5 m în diametru. Adâncimea ulciorului de groapă ar trebui să fie de 1,5-2 m. Pentru a preveni intrarea apei topite în groapă, o rolă de argilă îndepărtată este așezată în jurul deschiderii gâtului. O astfel de unitate de depozitare este acoperită cu un capac plasat într-o pantă pentru a permite apei de ploaie să se scurgă. Un ulcior de groapă bine făcut rezistă 30-40 de ani fără reparații. Iarna, va menține o temperatură și umiditate mai constante decât într-un subsol obișnuit. Cartofii într-o astfel de groapă nu transpiră și nu germinează mult timp. Cartofii sunt depozitați în gropi mici, fără ventilație. În cele mari, o conductă de ventilație este instalată din scânduri sau patru țăruși înfipți în fundul gropii și înfășurați cu un șnur de paie. Cartofii sunt coborâți în gaură folosind o găleată. Două frânghii sunt legate de găleată: una de mâner, iar cealaltă de fund. După ce găleata ajunge la podea, trageți de frânghia atașată la fund. În același timp, găleata se răsturnează și cartofii se revarsă. Tuberculii nu sunt răniți cu această metodă de umplere. După ce umpleți ulciorul cu cartofi, gâtul se închide cu paie și un capac. În primele două săptămâni, cartofii eliberează multă umezeală atunci când respiră, astfel încât stratul de paie nu trebuie să fie gros. Ulterior, stratul este ajustat la 50-70 cm, în funcție de condițiile locale de iarnă.

Imprimare (Ctrl+P)

Această secțiune descrie cele mai frecvente utilizări ale mecanismului de lucru cu stocarea temporară și fișiere.

Salvarea datelor dintr-un fișier în stocarea temporară

Plasarea unui singur fișier

Metoda PlaceFile() plasează un fișier din sistemul de fișiere local în stocarea temporară. Metoda poate accepta o adresă în stocarea temporară unde fișierul ar trebui să fie salvat. Dacă adresa nu este definită sau este un șir gol, atunci va fi creată o nouă adresă și metoda o va returna printr-un parametru special.
Notă. Cantitatea de date mutată între client și server într-un apel la metoda PutFile().
Dacă parametrul care determină modul interactiv de operare este True, atunci metoda va afișa o casetă de dialog standard de selecție a fișierelor în care puteți selecta un fișier pe care să îl plasați în stocare. În acest caz, metoda va returna și adresa fișierului selectat.
Metoda returnează False ca rezultat, dacă utilizatorul a refuzat în mod interactiv să efectueze o operație în dialogul de selecție a fișierului.

Plasarea unui set de fișiere

Metodă PlaceFiles() plasează mai multe fișiere în stocare temporară într-un singur apel. Există mai multe moduri diferite de a utiliza această metodă:
● pre-generați o listă de fișiere de adăugat, de exemplu, când ați selectat anterior fișierele care trebuie plasate în baza de informații;
● treceți o mască de căutare a fișierelor metodei, de exemplu, când doriți să plasați toate fișierele de un anumit tip, de exemplu, toate imaginile, în baza de date de informații;
● treceți metodei un obiect pregătit anterior Dialog de selectare a fișieruluiîn modul de deschidere a fișierului.
După terminarea lucrării, metoda poate returna o listă de fișiere adăugate efectiv.

// FileList – atribut al formei de tip ValueList,
// care conține o listă de fișiere adăugate
FileArray = Matrice nouă;
Pentru fiecare element al listei din ciclul List of Files
FileArray.Add(NewDescriptionofTransferFile(ListElement,));
EndCycle;
PlacedFiles= New Array;
Rezultat = PlaceFiles(ArrayFiles, PlacedFiles, False, UniqueIdentifier);

Nota 1: Pentru a utiliza metoda PlaceFiles() Clientul web necesită conectarea unei extensii de procesare a fișierelor.
Nota 2: Cantitatea de date mutată între client și server per apel de metodă PlaceFiles(), nu trebuie să depășească 4 Gb (în formă serializată).

Plasarea datelor în stocare temporară

Metoda este similară cu metoda PlaceFile(), cu excepția faptului că datele vor fi scrise în stocarea temporară
nu sunt reprezentate ca o cale în sistemul de fișiere, ci ca o valoare. De asemenea, dacă nu este specificată nicio adresă existentă în stocarea temporară, este creată o nouă adresă. Adresa este returnată ca rezultat al funcției. Ca și în cazul fișierelor, datele postate trebuie să aparțină unui anumit formular și sunt șterse automat după ce sunt șterse.
Notă. Cantitatea de date mutată între client și server per apel de metodă PlaceInTemporaryStorage(), nu trebuie să depășească 4 Gb (în formă serializată).
Atenţie! Când este plasată în stocare temporară, valoarea nu este de fapt serializată. O referință la valoare este plasată și stocată în cache timp de 20 de minute. După această perioadă, valoarea este serializată, scrisă pe disc (stocarea datelor de sesiune) și eliminată din cache.

Preluarea datelor din stocarea temporară

Când scrieți un obiect într-o bază de informații, poate fi necesar să extrageți date din stocarea temporară și să le plasați, de exemplu, într-un atribut de obiect al bazei de informații. Există o metodă specială pentru aceasta - GetFromTemporaryStorage(). Această metodă preia datele din stocarea temporară și le returnează ca rezultat al execuției. Pentru a primi date, trebuie să indicați temporar adresa
depozitare. Această adresă este returnată prin metode de plasare a datelor în stocare temporară dacă au succes (vezi secțiunile anterioare).
Atenţie! Când recuperați o valoare din stocarea temporară pe server, ar trebui să țineți cont de faptul că aceasta este obținută prin referință. În realitate, această legătură indică o valoare care este stocată în cache. În 20 de minute, din momentul în care a fost plasată în stocare sau din momentul în care a fost ultima accesată, valoarea va fi stocată în cache, apoi va fi scrisă pe disc și ștearsă din cache. Data viitoare când valoarea este accesată, aceasta este încărcată de pe disc și plasată înapoi în cache.
După deserializarea și restaurarea valorilor din stocarea temporară, referințele nu sunt restaurate. Valoarea cache-ului este restaurată de pe disc. Dar după serializare/dezerializare, este imposibil să se restabilească referințe la alte obiecte din interiorul valorii.

Ștergerea datelor din stocarea temporară

După ce datele sunt salvate în atributul obiectului infobase, datele din stocarea temporară pot fi șterse. Există o metodă pentru asta
RemoveFromTemporaryStorage(), care efectuează îndepărtarea. Metoda ia ca parametru o adresă în stocare temporară.

Verificarea adresei pentru stocare temporară

Adresa poate indica atât stocarea temporară, cât și detalii în baza de informații. Există o metodă de a verifica tipul acestuia
Aceasta esteTemporaryStorageAddress(). Verifică dacă adresa transmisă este o adresă care indică către magazin. Returnează True dacă adresa indică o stocare temporară.

Primirea adresei de recuzită

După ce datele sunt plasate în atributul obiectului infobase, poate fi necesar să le accesați folosind metode de fișier.
Dar înainte de a primi date, de exemplu de la o proprietate, trebuie să obțineți adresa acestei proprietăți. Există o metodă pentru asta GetNavigationLink().

Poate returna adresa valorii din baza de informații pe baza parametrilor originali. Pentru a face acest lucru, trebuie să transmiteți cheia obiectului (aceasta ar putea fi
atât un link către obiect cât și cheia de introducere a registrului de informații) cât și numele atributului. Dacă trebuie să obțineți adresa valorii stocate în atribut
partea tabulară, apoi la numele atributului din parametrul care specifică numele atributului, trebuie să adăugați numele părții tabelare și un punct „.”. De exemplu: Produse.Imagine

Preluarea unui fișier din baza de informații

Primirea unui singur fișier

Metoda GetFile() primește un fișier din baza de informații și îl salvează în sistemul de fișiere local al utilizatorului. Primul parametru specifică adresa fișierului în atributul obiectului infobase sau în stocarea temporară a fișierului. Salvarea nu va avea loc dacă utilizatorul în numele căruia se efectuează operația nu are dreptul de vizualizare la detaliile obiectului infobase. Al doilea parametru determină locația în care este salvat fișierul rezultat. În modul non-interactiv, trebuie să specificați calea. În modul interactiv parametrul este
opțional.
În mod implicit, metoda este executată interactiv. Aceasta înseamnă că va fi generată o casetă de dialog în care puteți specifica o acțiune cu fișierul primit: rulați-l sau salvați-l într-o locație specificată de utilizator în sistemul de fișiere. Dacă este selectat modul interactiv și opțiunea Nume fișier nu este specificată, operațiunea de deschidere a fișierului nu este disponibilă. Metoda returnează o valoare booleană. Fals înseamnă că utilizatorul a ales să anuleze operația în caseta de dialog interactivă de salvare a fișierului.

Primirea unui set de fișiere

Metoda GetFiles() vă permite să primiți și să salvați mai multe fișiere stocate în baza de informații în sistemul de fișiere local al utilizatorului. Lista fișierelor încărcate este transmisă ca parametru.

// FileList – o listă de valori care conține link-uri către elemente
// directorul în care se află fișierele încărcate
// Lista de reprezentare a valorilor este numele fișierului care se încarcă
FileArray = Matrice nouă;
Pentru fiecare element al listei din ciclul List of Files
Fișier = Nou File(String(ListElement.Value));
ReceiveFile = Nou Descrierea fișierului transmis;
ReceiveFile.Name = ListElement.View;
ReceiveFile.Storage= P getNavigationLink(ListItem.Value, „Date”);
FileArray.Add(ReceivingFile);
EndCycle;
Fișiere primite= New Array;
Rezultat = ReceiveFiles(FilesArray, ReceivedFiles, UploadedFilesPath, False);
Dacă NU rezultă, atunci
Mesaj = Nou Mesaj pentru utilizator;
Mesaj.Text = „Eroare la primirea fișierelor!”;
Message.Message();
EndIf ;

După terminare, metoda poate returna o listă de fișiere descărcate efectiv, indicând numele complet al fiecărui fișier salvat.
NOTĂ. Pentru a utiliza metoda GetFiles() în clientul web, trebuie să conectați extensia de fișier. Dacă proprietatea Nume obiect Descrierea fișierului transmis conține calea absolută către fișier, fișierul va fi salvat pe această cale, indiferent de parametru Locația fișierului.
Parametrul Locație fișier poate fi fie o cale în sistemul de fișiere local, fie un obiect Dialog de selecție a fișierelor în modul de selectare a unui director sau de salvare a fișierelor. Dacă valoarea parametrului Locația fișierului obiect specificat Dialog de selectare a fișieruluiîn mod
salvarea fișierelor, apoi:

● dialogul va fi apelat pentru fiecare fișier transferat, cu excepția acelor fișiere pentru care proprietatea nume obiect Descriere fișier transmis conține o cale absolută;
● valoarea obiectului Name of the Description of the Transmitted File va fi folosită ca nume inițial de fișier în dialog;
● dacă pentru orice fișier este selectat refuzul de salvare, atunci numele obiectului Descrierea proprietății Fișier transferat va conține un șir gol;
● metoda GetFiles() va returna valoarea True daca cel putin un fisier a fost primit cu succes;
● trebuie luat în considerare faptul că fișierele sunt primite efectiv după ce utilizatorul răspunde la întrebări despre specificarea numelui și a căii
toate fișierele primite;
● dacă utilizatorul în numele căruia se execută metoda GetFile() nu are dreptul de vizualizare la cel puțin un atribut al obiectului infobase din care sunt preluate fișierele, întreaga operațiune va eșua.
Exemplu:

TransferredFiles = New Array;
Descriere = Nou Descrierea fișierului transmis(„Descriere”, FileAddress);
Fișiere transferate.Adăugați(Descriere );
FileSelect = Nou FileSelectionDialog(FileSelectionDialogMode.Save);
FileSelect.Header= „Salvează arhiva”;
File Selection.Extension= „fermoar”;
FileSelect.Filter= „Arhivă(*.zip)|*.zip|Toate fișierele|*.*”;
FileSelect.FilterIndex = 0;
ReceiveFiles(TransferFiles, SelectFile, False);

Dacă este selectat modul interactiv de selectare a directorului pentru salvarea fișierelor, clientul web va solicita suplimentar permisiunea de a salva fișierele specificate cu căi absolute. În cazul salvării neinteractive (calea către director este specificată în parametrul corespunzător), cererea va fi executată pentru întreaga listă de fișiere salvate.

Exemplu de utilizare a metodelor de fișiere

// Preluarea unui fișier de pe disc în mod interactiv
// și plasându-l în depozit temporar.
&OnClient
Procedură SelectDiskFileIWrite()
Variabila SelectedName;
Perem TemporaryStorageAddress;
NewObject = Object.Link.Empty();
Dacă PlaceFile(TemporaryStorageAddress, „”, SelectedName, True) Apoi
Object.FileName = SelectedName;
PlaceObjectFile(TemporaryStorageAddress);
endIf;
Sfârșitul procedurii
// Copierea unui fișier din stocarea temporară în elemente de recuzită
// director, scrierea unui obiect, ștergerea unui fișier din temporar
// depozitare.
&Pe server
Procedură PlaceObjectFile(TemporaryStorageAddress)
Director Element = Form AttributesValue(„Obiect”);
BinaryData = GetFromTemporaryStorage(TemporaryStorageAddress);
Director Element.File Data= Nou Valori stocare (Date binare, NewDataCompression()) ;
Fișier = Nou Fișier(Articol Director.NumeFișier);
Director Item.FileName = File.Name;
Director element.Write();
Modificat = Fals;
DeleteFromTemporaryStorage(TemporaryStorageAddress);
ValueВFormAttributes(Element director, „Obiect”);
Sfârșitul procedurii
// Citiți fișierul din recuzită și salvați-l
// pe discul local în modul interactiv.
&OnClient
Procedură ReadFileAndSaveToDisk()
Adresa = GetNavigationLink(Object.Link,"FileData");
GetFile(Adresă, Object.FileName, True);
Sfârșitul procedurii

Permisiunea de a efectua un grup de operații cu fișiere

Când efectuați unele operații în clientul web, poate fi necesar să obțineți permisiunea pentru operațiuni cu mai multe fișiere.
De exemplu, trebuie să preluați un document dintr-o bază de informații și apoi să deschideți documentul salvat folosind aplicația asociată.
Pentru a efectua această operație, va trebui să răspundeți la întrebarea despre salvarea documentului și la întrebarea despre necesitatea rulării acestuia. Dacă există mai multe operațiuni, utilizatorul va avea și mai multe întrebări.
Pentru a reduce numărul de întrebări, puteți utiliza metoda. Când utilizați această metodă
Utilizatorului i se arată o listă cu toate operațiunile care sunt planificate a fi efectuate și i se cere să permită efectuarea grupului de operațiuni. Dacă utilizatorul a permis executarea, atunci operațiunile solicitate vor fi efectuate fără solicitări suplimentare către utilizator. Dacă permisiunea nu este acordată, operațiunile vor decurge normal: o solicitare per operație.
NOTĂ. Pentru a folosi metoda RequestUserPermission()În clientul web trebuie să activați extensia de gestionare a fișierelor.
Să ne uităm la un exemplu de utilizare a metodei:

Dacă ConnectExtensionLucrul cu fișiere() Apoi
Link = GetNavigationLink(Object.Link, „FileData”);
// Formarea unei descrieri a fișierelor transferate (în acest caz există un singur fișier)
Fișiere transferate= New Array;
Descriere = Descriere nouă a fișierului transferat (Object. FileName, Link);
TransferredFiles.Add(Descriere);
// Pregătește un obiect pentru a primi informații despre fișierele primite
Fișiere transferate= New Array;

// Definiți alți parametri ai metodei
DirectorSalvare= „c:\temp”;
Interactiv = Fals ;
Nume fișier transmis = Salvare director + „\” + Object.FileName;
// Pregătește o descriere a metodelor de obținere a permisiunilor
Metode = New Array;

Methods.Add(„GetFiles”);
Methods.Add(TransferFiles);
Methods.Add(TransferredFiles);
Methods.Add(SaveDirectory);
Metode.Add(Interactiv);
Metode.Add(New Array);
Methods.Add(„RunApplication”);
Methods.Add(TransferredFileName);
Dacă nu RequestUserPermission(Metode) Apoi
Warning(„Utilizatorul a refuzat permisiunea.”);
Întoarcere;
endIf;
GetFiles(TransferFiles, TransmittedFiles, SavingDirectory, Interactive);
RunApplication(TransferredFileName);
In caz contrar
Avertisment ("Execuția nu este acceptată. Extensia fișierului nu este instalată.");
endIf;

Trebuie remarcate mai multe caracteristici ale metodei RequestUserPermission().

1. Permisiunea este cerută numai pentru următoarele metode:

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

2. Se solicită permisiunea pentru un set specific de parametri ai metodei. Dacă, în timpul executării efective a unei metode de manipulare a fișierelor, valorile parametrilor diferă de cele pentru care a fost obținută permisiunea, această permisiune nu va fi valabilă, iar utilizatorul va primi o solicitare separată pentru confirmarea operațiunii.

3. Dacă trebuie să efectuați două (sau mai multe) operații identice cu fișiere (chiar și cu același set de parametri), trebuie să specificați numărul adecvat de elemente în matricea parametrilor metodei RequestUserPermission(). De exemplu, dacă trebuie să obțineți același fișier din baza de informații de două ori și să-l plasați într-o locație fixă ​​în sistemul de fișiere, ar trebui să solicitați permisiunea
pentru două operații.

4. Dacă se solicită permisiunea pentru o operație care efectuează o operație interactivă (de exemplu, funcția GetFiles(), un obiect este transmis ca parametru Dialog de selectare a fișierului), atunci o astfel de operațiune este exclusă din cerere.

Permisiunile acordate sunt păstrate fie până când apelul autorizat este executat, fie până când limbajul încorporat se termină de execuție.
NOTĂ. În clienți groși și subțiri RequestUserPermission() Metoda returnează întotdeauna True, fără interacțiunea utilizatorului.

Lucrul cu stocare temporară într-o lucrare de fundal

Mecanismul de lucru cu stocarea temporară are capacitatea de a transfera date de la un job de fundal la sesiunea care a inițiat jobul de fundal.
Pentru un astfel de transfer, ar trebui să plasați o valoare goală în stocarea temporară în sesiunea părinte (folosind metoda PlaceInTemporaryStorage()), specificând orice identificator al stocării temporare care se creează (parametrul Adresă). Apoi treceți adresa primită jobului de fundal prin parametrii jobului de fundal. În plus, dacă într-un job de fundal, această adresă este utilizată ca valoare a parametrului Adresă metodei PlaceInTemporaryStorage(), apoi rezultatul va fi copiat în sesiunea din care a fost lansată lucrarea de fundal.
Datele plasate în stocare temporară într-o lucrare de fundal nu vor fi accesibile din sesiunea părinte până la finalizarea lucrării de fundal.

Suport pentru adrese din câmpul de imagine

Elementul de formular View Field Câmpul Picture acceptă afișarea unei imagini specificate de adresa unei valori (care poate fi o imagine sau date binare) în stocare temporară sau într-o bază de date.
Pentru a face acest lucru, trebuie să setați un atribut de tip șir în proprietatea Data a elementului de formular. Valoarea acestui atribut va fi interpretată ca adresa imaginii.

// Exemplul 1
// Legarea câmpului de imagine la adresa imaginii în mod temporar
// depozitare. AddressPictures – detalii formular de tip șir
PlaceFile(ImageAddress, InitialName, SelectedName, True, UniqueIdentifier);
// Exemplul 2
// Obținerea adresei imaginii din atributul obiectului
// baza de informatii
FilePictures = Object.FilePictures;
Dacă nu PictureFile.Empty() Atunci
ImageAddress = GetNavigationLink(ImageFile, „FileData”);
In caz contrar
Adresă imagine = „”;
Fără sfârşit;

Acces la directoare standard

Când utilizați sistemul, este necesar un anumit spațiu în sistemul de fișiere în care pot fi stocate diverse date de fișiere, care, pe de o parte, sunt temporare și, pe de altă parte, trebuie să fie stocate pentru o perioadă destul de lungă. Astfel de fișiere includ schițe pentru sistemele de gestionare a documentelor, componente externe care rulează pe partea computerului client etc.
Un director special este destinat pentru stocarea unor astfel de fișiere, care este legat de un anumit utilizator al unei anumite baze de informații.
Același utilizator care lucrează cu două baze de informații va avea acces la două directoare diferite pentru stocarea datelor utilizatorului. Locația acestui director este determinată folosind metoda WorkUserDataDirectory(). Dacă directorul nu există, acesta este creat prima dată când este accesat. Dacă directorul nu poate fi creat, sistemul aruncă o excepție.
NOTĂ. Metoda UserDataWorkDirectory() nu este disponibilă pe partea serverului.
Sistemul de operare are un director special alocat pentru stocarea permanentă a datelor utilizatorului. Ar putea fi unele
rapoarte, formulare tipărite ale documentelor etc. Datele sunt plasate în acest director, care pot fi ulterior trimise către
către consumatori. Metoda DocumentDirectory() este folosită pentru a accesa acest director. Locația fizică a directorului variază în funcție de sistemul de operare.
sistem în care se execută aplicația și este listată în asistentul de sintaxă.