Lucrul cu magazinul de valori din 1cv8

În magazinul de valori, puteți salva aproape orice informație, de exemplu,

. poze (imagini):

// în acest moment imprimă totul. Forme de elemente: FieldsKartinki1 Picture = Vault Get (); TeXImage. Scrie ();

. document tabel:

Procedură Salvare în magazinPrimire (element)

. fișiere aleatoare (date binare):

HZ = stocare de valoare nouă (date binare noi (fișier));

Opt sprijină comprimarea datelor stocate în depozit:

HZ = stocare de valoare nouă (date binare noi (fișier), compresie de date noi (9));

. procesarea externă și rapoartele:

Procedura de descărcareProcesareaInHolocare (RequisiteTypeHook)

Lucrul cu depozitul

Dacă acestea sunt date binare, le puteți restabili din magazinul de valori utilizând metoda Get și scrieți fișierul utilizând metoda Write ().

Dacă TypeZ (Depozit) <> Tip ("Date binare") Apoi

Sfârșit Dacă; BinaryData.Record (NumeFile);

Dacă a fost, de exemplu, un document Word (fișier doc sau alt fișier de tip înregistrat), îl puteți deschide astfel:

Porniți aplicația (FileName);

Pentru a șterge un câmp de stocare de tip de valoare, trebuie să îl atribuiți Undefined:

RequisiteHand = Undefined;

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

numire

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

Mecanismul este un set de metode prin care puteți pune datele stocate local pe utilizator pentru stocarea temporară a bazei de informații, pentru a transfera această informație de stocare temporară la baza de date și să-l înapoi la calculatorul utilizatorului. Cele mai comune sarcini de aplicare care urmează să fie rezolvate prin acest mecanism - o stocare de informații de transmitere, cum ar fi imagini asociate contractelor de bunuri și documente, etc ...

Domeniul de aplicare al metodelor

Depozitare temporară

Depozitarea temporară este o zonă specializată a bazei de date cu informații în care pot fi plasate date binare. Scopul principal este depozitarea temporară a informațiilor în interacțiunea client-server înainte de a fi transferată în baza de date.

Necesitatea stocării temporare rezultă din faptul că în modelul de funcționare al browserului web este necesar să se transfere fișierul selectat de utilizator direct la server fără posibilitatea de a fi stocat pe client. Când un fișier este transferat, el este plasat în spațiu de stocare temporar și poate fi folosit mai târziu când scrieți un obiect la baza de date.

Cea mai tipică aplicație rezolvată prin stocare temporară este furnizarea accesului la fișiere sau imagini înainte ca obiectul să fie scris în baza de informații, de exemplu, sub forma unui element.

Baza de informații

Mecanismul vă permite să accesați datele binare stocate în rechizitele tipului ValueVault.

Metodele de lucru cu fișiere au o limitare atunci când lucrează cu rechizitele bazei de date de informații. Pentru ei, spre deosebire de stocarea temporară, este disponibilă numai citirea informațiilor, dar nu înregistrarea sau ștergerea lor.

Descrierea metodelor de lucru cu fișierele

Salvarea datelor pentru stocarea temporară

Scenariul cel mai tipic pentru utilizarea acestui mecanism implică plasarea inițială a datelor utilizatorilor în spațiul de stocare temporară. Există două metode pentru aceasta: Plasați fișierul () și plasați fișierul în magazinul de timp ().

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

Obținerea fișierului din spațiul de stocare temporar

Ștergerea unui fișier din spațiul de stocare temporar

După ce datele sunt plasate în recuzită în baza de date, este posibil să fie necesar să le accesați utilizând metode de fișiere.

Obținerea unui fișier din baza de date de informații

În mod implicit, metoda este executată interactiv, adică ultimul parametru este Adevărat. Aceasta înseamnă că este afișată o casetă de dialog în care puteți specifica acțiunea cu fișierul primit: porniți-l sau salvați-l în locația specificată de utilizator. Dacă modul interactiv este activ și calea fișierului țintă de pe disc 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țiunea din dialogul de salvare a fișierului interactiv.

Un exemplu de utilizare a metodelor de fișier

// Obțineți un fișier interactiv de pe disc și puneți-l în spațiu de stocare temporară În procedura clientului Selectați FileFieldDisplay Write ()

// Citiți fișierul din recuzită și salvați-l / / pe discul local în modul interactiv Cu privire la procedura clientului Citiți informațiile fișierului de pe disc ()

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

Funcționarea mecanismului descris la utilizarea clientului Web are anumite limitări. Aceste restricții se referă la caracteristicile modelului de securitate al browserului. De exemplu, numai clientul nu poate salva fișierul în sistemul de fișiere local, care este accesibil numai la versiunea interactivă a metodelor client PomestitFayl () și PoluchitFayl (). O încercare de a utiliza modul non-interactiv aruncă o excepție. Casetele de dialog care sunt afișate în modul interactiv sunt specifice tipului de browser specific.

Funcții atunci când lucrați cu Vault Valorilor pe Client

În cazul în care documentul în tabelele de acest tip au recuzită HranilischeZnacheny, incetineste deschiderea formei documentului, în cazul în care se înregistrează datele de mari dimensiuni necesare.

  • În proprietățile recuzelor tabulare ale formularului există un pavilion "Utilizați întotdeauna". Dacă este setat, conținutul câmpului este întotdeauna trecut între server și client - de exemplu, atunci când formularul este deschis. Acest steag ar trebui să fie dezactivat, dar trebuie să țineți cont de acest lucru în cod, deoarece în mod implicit valoarea acestui câmp nu va fi pe client. Un exemplu poate fi găsit în secțiunea 1C: Arhivă.


Este chiar mai bine să utilizați un spațiu de stocare temporar pentru a transfera fișiere între client și server.