internetul Windows. Android

1c Transformați un șir în date binare. Lucrați cu date binare

Datele binare din 1c sunt concepute pentru a stoca falsul unui format arbitrar. Cu ajutorul lor, puteți:

  • Organizați interacțiunea cu protocolul binar cu diferite dispozitive;
  • Depozitați sub forma detaliilor obiectelor de metadate ale oricăror formate;
  • Convertiți datele de text pe binare (cele mai des utilizate pentru a trimite rapoarte);
  • Lucrați cu date binare în memorie.

Ce poate sistemul poate

Când lucrați cu date binare, platforma 8.3 este capabilă să efectueze următoarele acțiuni:

  1. Citiți și scrieți date binare;
  2. Mutați datele de la client la server și înapoi folosind stocarea temporară;
  3. Inițializați cu ajutorul fișiere binare tipul de obiect "imagine";
  4. Să le citiți din rețeaua mondială utilizând obiectele de corespondență, compusul NTTR etc.
  5. Utilizare mijloace criptografice pentru criptarea și semnătura investițiilor importante;
  6. Folosind obiectul "hashizat", calculați funcția HASH.

Salvarea datelor în recuzită

De exemplu, creați un director în configurația de testare.

De fapt, utilizați aceeași carte de referință pentru stocarea informațiilor despre nomenclatura și datele binare ale imaginilor este un pic incorectă. Cu cantități suficient de mari de date și fișiere mari la scară largă, în sistem pot apărea în sistem de întrerupere nedorite și "frâne". O carte separată de referință "Imagini" va fi organizată mult corect din punctul de vedere al sistemului, link-ul la care am putea seta ca un tip de recuzită.


Este important de menționat că, datorită faptului că cerințele de tip binar de tip "depozitare" nu sunt disponibile în modul de aplicare controlat, recursul la acestea este posibilă numai utilizând metoda de conformitate.


Câmpul mesajului oferă o înregistrare a datelor de stocare a datelor binare.

Citirea datelor de la recuzită

Creați o prelucrare care va afișa fișierul stocat într-un formular binar în configurația noastră într-un document tabular (este necesar, să spunem să tipări logo-ul companiei).


În principiu, acesta este întregul cod de care avem nevoie. Folosind operatorul pentru a obține (), citim datele binare stocate în detaliile corespunzătoare ale cărții de referință și le transmit la obiectul "imagine", care va fi afișat în celula din stânga sus document tabular. Forme (figura 9).

Fig.9.

Conversia datelor

Rar, dar se întâmplă că atunci când lucrați cu schimburi non-standard cu sisteme externe Trebuie să convertiți datele din format binar la bază64 sau înapoi.

În majoritatea cazurilor, platforma convertește în mod independent datele dacă acest lucru nu apare, este necesar să se utilizeze funcțiile globale de traducere:

  1. Base64 Stroke - traduce valoarea specificată în rândul codificării corespunzătoare;
  2. Base64ding - face transformarea inversă.

Optimizarea codului de mai sus

Codul prezentat în Figura 4 funcționează cu siguranță, dar cu o rezervare substanțială: dacă caseta de selectare "modalitate" este selectată în proprietățile de configurare (figura 10). În caz contrar, utilizarea sa va provoca o eroare.
Fig.10.

Pentru ca acest lucru să nu se întâmple, se află în formele modulului formularului de element de referință, accesați textul Menu-\u003e Refacting-\u003e Apeluri sincrone recomandate-\u003e Conversia apelurilor modulului.

După ceva timp, apelurile sincrone vor fi automat transformate în asincron, iar codul va lua forma (figura 11)

Fig.11.

Platforma tehnologică 1C: Enterprise 8 vă permite să salvați fișiere arbitrare în baza de informații, să le obțineți de acolo și să utilizați căi diferite. Luați în considerare aceste operațiuni pe exemple.

Înainte de a descărca fișierul în baza de date cu informații 1c, trebuie să obțineți adresa completă a fișierului de pe disc. Lucrul cu dialogurile de selectare a fișierelor este descris în.

Necesare (sau resurse de înregistrare) este utilizată pentru a stoca fișiere. Străin.

Încărcarea unui fișier arbitrar la baza de date de informații 1c

Orice fișier poate fi reprezentat ca date binare și descărcare la Străinngerii.

La conversia datelor binare într-un obiect Străin Design utilizat depozitare nouă (date, compresie) Cu doi parametri:

  1. Date - Datele binare care trebuie plasate în depozit
  2. Comprimare - gradul de deflație a algoritmului de compresie. Un număr întreg în intervalul -1 ... 9. -1 - gradul de compresie în mod implicit. 0 - Nu există compresie, 9 este raportul maxim de compresie. Valoarea implicită: -1. Opțiunea este opțională, dacă nu este specificată, compresia nu este utilizată.

// Transformați fișierul la datele binare
Fișier \u003d nou binar (calea);

// Creați o nouă instalație de depozitare

Stocate \u003d depozitare nouă (fișier, comprimat nou (9));

Salvarea unui fișier arbitrar din baza de date de informații 1c pe disc

Pentru a salva fișierul din baza de date 1c la disc, trebuie să determinați calea și numele fișierului. Pentru a face acest lucru, există un dialog pentru salvarea fișierelor, de lucru cu care este descris în.

// obțineți date binare din depozit
// recuzită de obiecte cu tipul de reposit

// Scrieți datele primite pe disc
// în calea variabilă este adresa completă a fișierului de pe disc
Date. Notați (calea);

Vizualizarea unui fișier situat în baza de date a informațiilor 1c

Pentru a vizualiza fișierul salvat în baza de date, este necesar ca aplicația să fie instalată pe computerul care deschide acest fișier.

// Obțineți numele fișierului temporar cu expansiunea necesară.
// În extensia variabilă, trebuie să puneți extensia de fișier, de exemplu, "PDF"
Calea \u003d fișierul operaretequmen (expansiune);

// primiți date din depozit
// recuzită de obiecte cu tipul de reposit
Date \u003d stocate. A primi() ;

// Scrieți date într-un fișier temporar
Date. Notați (calea);

// Încercați să deschideți fișierul în aplicația destinată acestuia
// Dacă aplicația nu este găsită, va apărea un dialog de sistem "Deschis cu ..."
Rularea aplicației (calea);

În stocarea valorii, puteți salva aproape orice informații, de exemplu,

... poze (imagini):

Imaginea echipei. Project \u003d Sprinti.Link; Lucrul în echipă. VIDATA \u003d listare. Obiecte de informații Vidual. Imagine; Depozitare \u003d Depozitare nouă (carotină nouă, nouă comprimată ()); Procesul de echipă. Everbill \u003d Depozitare. Pour ();

// În acest loc, se dovedește totul ... Elementsforms. Polekartinki1. Cartink \u003d Depozitare. Pour (); Procesarea echipei. Pentru a recruta ();

... document tabular:

Tabu \u003d lemn nou; Tabdow.stiver (elemente elementare. PeletablichnogymentA1); Repository \u003d Depozitare nouă (tabid); Scrie ();

Extradreses.

Procedură RestoreshustHustinging (element)

Tabdok \u003d stocare. Turnați (); În cazul tabloului<>Este pe o perioadă nedeterminată, Poleleolschnogymentta1.shet (tabd); Încheiat;

Extradreses.

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

XS \u003d Depozitare nouă (noul binar (fișier));

Cele opt sprijină comprimarea datelor plasate în depozit:

XS \u003d Depozitare nouă (noul binar (fișier), nou comprimat (9));

... Prelucrarea externă și rapoartele:

Procedură de comutare / rechizite)

De descurajare \u003d comprimat nou (9); // 9 valoare maximă \u003d stocare nouă (nou binar ("C: \\ rapoarte \\ raport.epf", grad));

Extradreses.

Procedura de procesare a executării (necesare)

Imagremnyfile \u003d fișiere de violență catalog () + "raport.epf"; Două) \u003d rechizittypusto. Turnați (); Bicked. Pentru a recruta (imagrermenfal); Prelucrare externă \u003d Prelucrare externă. Creați (Imagineenefile); Prelucrare externă. SOCUMOR (). Open ();

Extradreses.

Lucrați cu depozitare

Dacă acestea au fost dublate, ele pot fi restabilite din stocarea metodei valorii și scrierea fișierului pentru a scrie ().

Dacă tipul tipcoon (stocare)<> Tip ("binar") atunci

Binar) \u003d depozitare. Pour ();

Binar) \u003d depozitare;

Încheiat; Bichelat. Pentru a recruta (numele);

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

Rularea aplicației (fișier nume);

Pentru a șterge câmpul de stocare de tip, trebuie să îl atribuiți pe o perioadă nedeterminată:

Necesare \u003d incertă;

Lucrul cu fișierele și imaginile în limba încorporată 1C: Enterprises 8

Scop

În aplicația gestionată implementată mecanism nou Funcționează cu fișiere. Acesta oferă partajarea de fișiere între baza de informații și aplicația client. O caracteristică a acestui mecanism este că se concentrează pe utilizarea client slab și un client web și dezvoltat ținând cont de restricțiile privind lucrul cu fișierele impuse de browserele web.

Mecanismul este un set de metode cu care puteți pune datele stocate local de la utilizator la stocarea temporară baza de informare, transferați aceste informații de la spațiul de stocare temporar în baza de date și obțineți-l înapoi la computerul utilizatorului. Cele mai frecvente sarcini aplicate rezolvate de acest mecanism sunt stocarea informațiilor însoțitoare, de exemplu, imagini ale bunurilor legate de contractele de documente etc.

Domeniu de aplicare

Depozitare temporara

Depozitarea temporară este o zonă de bază de informații specializată în care pot fi plasate date binare. Scopul principal este stocarea temporară a informațiilor în timpul interacțiunii client-server până când acesta este transferat în baza de date.

Nevoia de stocare temporară apare din cauza modului în modelul de lucru al browserului web de care aveți nevoie pentru a transfera direct de utilizator direct pe server, fără posibilitatea de ao depozita pe client. Când transferați un fișier, acesta este plasat într-o depozitare temporară și poate fi utilizată deja la scrierea unui obiect la baza de date.

Cea mai tipică de stocare temporară rezolvată sarcina aplicată - Asigurarea accesului la fișiere sau imagini înainte ca obiectul să fie înregistrat în baza de informații, de exemplu, sub forma unui element.

Datele sau datele binare plasate în depozit sunt identificate printr-o adresă unică, care poate fi utilizată ulterior în înregistrarea, citirea sau ștergerea operațiunilor. Această adresă este emisă metode pentru înregistrarea unui fișier de stocare temporar. O metodă separată în limba încorporată vă permite să determinați dacă adresa sa transferat la adresa care indică datele din spațiul de stocare temporar.

Baza de informare

Mecanismul permite accesul la datele binare stocate în detaliu despre tipul de stocare.

Ca și în cazul stocării temporare, accesul la informații este posibil printr-o adresă specială. Puteți obține o metodă specială, trecând legătura cu obiectul sau înregistrarea înregistrării informațiilor și numele de recuzită. În cazul părții tabulare, este necesar să se transfere suplimentar indicele liniilor părții de masă.

Metodele de lucru cu fișiere au o limită atunci când lucrați cu detaliile bazei de informații. Pentru aceștia, spre deosebire de stocarea temporară, este disponibilă numai informațiile de citire, dar nu înregistrarea sau ștergerea acesteia.

Descrierea metodelor de lucru de fișiere

Salvarea datelor în stocarea temporară

Scenariul cel mai tipic al utilizării acestui mecanism prevede plasarea inițială a datelor de utilizator în spațiul de stocare temporară. În acest scop, sunt destinate două metode: vize () și plasarea locuinței ().

Prima metodă, plasarea (), plasează fișierul de la sistemul de fișiere locale în spațiul de stocare temporar. Metoda poate lua adresa țintă în depozit. Dacă nu este definită sau este un șir gol, acesta va fi creat fișier nou. Și metoda își va returna adresa prin parametrul corespunzător.

Dacă un parametru care definește modul interactiv de funcționare este adevărat, metoda va afișa caseta de dialog Select de selectare a fișierelor în care puteți selecta un fișier pentru incintă. În acest caz, metoda va returna, de asemenea, adresa fișierului selectat.

Ca rezultat, metoda returnează o minciună dacă utilizatorul din modul interactiv a refuzat să efectueze operația în dialogul de selectare a fișierelor. Metoda este disponibilă numai pe client.

A doua metodă, amplasarea vârstei () iubitoare (), este similară cu cea precedentă, cu excepția faptului că este disponibil pe server, iar datele de înregistrare la un depozit temporar nu sunt sub forma unei căi în sistemul de fișiere și In forma tipul variabil Două. În același mod, dacă adresa țintă nu este specificată, în depozit este creat un fișier nou. Adresa lui este returnată ca urmare a funcției.

Obținerea unui fișier din stocarea temporară

Când scrieți un obiect în baza de date de informații, este posibil să fie necesar să extrageți datele din spațiul de stocare temporar și să le plasați, de exemplu, în recuzită. Pentru a face acest lucru, există o metodă de server corespunzătoare - obținerea filtrică (). Această metodă preia datele din stocarea temporară și le returnează ca rezultat. Pentru aceasta, trebuie să specificați adresa în stocarea temporară. Această adresă returnează parametrii descriși mai sus () Metode și plasarea anemiei () în cazul executării reușite.

Ștergerea unui fișier temporar de stocare

După ce datele sunt stocate în detalii, fișierul din spațiul de stocare temporar poate fi șters. Pentru a face acest lucru, există o metodă de fișier Ștergere (), care șterge un fișier din spațiul de stocare temporar. Metoda ia adresa de fișier în parametrul de stocare temporară. Disponibil pe server.

Verificarea adreselor care aparțin depozitării temporare

Adresa de fișier poate indica atât stocarea temporară, cât și cerințele din baza de informații. Pentru a verifica tipul său, există o metodă de lupă ().

Verifică că adresa transmisă este o adresă care indică depozitul. Returnează adevărul dacă adresa indică o depozitare temporară. Metoda este disponibilă pe server.

Obținerea adreselor necesare

După plasarea datelor în recuzită în baza de informații, poate fi necesar să le accesați metodele de fișiere.

Dar înainte de obținerea datelor, cum ar fi detaliile, este necesar să se obțină adresa acestor recuzită. Pentru aceasta, există o metodă pentru recepție ().

Scopul său este de a returna adresa fișierului în baza de date de informații privind parametrii sursă. Pentru a face acest lucru, este necesar să se transfere obiectul obiectului (aceasta poate fi atât o referință la obiect, cât și la cheia înregistrării informațiilor) și numele de recuzită. Dacă aveți nevoie să obțineți adresa fișierului stocat în detaliile părții tabulare, la numele de confiscare din parametrul care specifică numele recuzită, trebuie să adăugați numele părții tabulare și punctul ".". Metoda este disponibilă atât pe client, cât și pe server.

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

Metoda de recepție () primește un fișier din baza de informații și o salvează la local sistemul de fișiere Utilizator. Primul parametru determină adresa fișierului în rechiziție sau în stocarea temporară a fișierelor. Al doilea parametru determină locația țintă a fișierului primit. În modul nu Interactive, trebuie să specificați calea. În modul interactiv, parametrul este opțional.

În mod implicit, metoda este executată în modul interactiv, adică ultimul parametru este egal cu adevărul. Aceasta înseamnă că este emisă o casetă de dialog în care puteți specifica acțiunea cu fișierul primit: Rulați-l sau salvați de locația specificată de utilizator. Dacă este activă un mod interactiv și parametrul calea țintă în fișierul disc nu este specificat, operația de deschidere a fișierelor nu este disponibilă. Returnează valoarea booleană. O minciună înseamnă că utilizatorul a selectat anularea operațiunii în caseta de dialog de salvare a fișierelor din modul interactiv.

Exemplu de utilizare a metodelor de fișiere

// chitanță în modul interactiv al fișierului de pe disc // și plasarea acesteia în procedura de stocare și programare temporară Selectați Railsdiski Recruit ()

AG selectat; Pentru a schimba agentul de aderență; Dacă sunt plasate (dependente-granulate, selectate, adevăr), apoi obiect. Imafeel \u003d selectat; Zână simplă (dependenți); Încheiat;

Extradreses.

// Copierea fișierului din spațiul de stocare temporar la Props // Referință, introducerea obiectului, ștergerea unui fișier din procedura temporară // Storage & Nasserver Procedura a eșuat (ADDITIVIREENSHID)

Element consilier \u003d cerință (obiect "); Două aripi \u003d obțineți-cinci (dependenți); Element AdvIxer. DataFile \u003d Noua stocare (BICHERED); Filenadadisk \u003d fișier nou (element perm.imyfyle); Element Sfaturi. Imafile \u003d FileputNadisk. Element AdvIXER. Recrutare (); Modificarea \u003d falsă; Ștergerea fișierului Remiere Elementar (intrare Addreridainal); RecentRevisitforms (element permanent, "obiect");

Extradreses.

// citiți fișierul de la recuzită și salvează // pe disc local Într-un mod interactiv și personalizați, citiți fișierul și cravenadadisk ()

Adresa \u003d baza OperadlespleFileVinformation (obiect. Link, "Puttails"); Fișier opt (adresa, obiect. Imiafyle, adevăr);

Extradreses.

Suport adrese în câmpurile de câmp

Controlul câmpului de control acceptă afișarea imaginii specificată de adresa fișierului din stocarea temporară sau în baza de date.

Pentru a face acest lucru, în proprietatea elementului de formă, este necesar să specificați recuzită de tip de șir. Valoarea acestor recuzită și va fi interpretată ca o adresă de imagine.

Exemplu // Field de legare imagini la adresa imaginii în spațiul temporar // stocare. AddAparticles Props String Type Formulare

Puneți fișierul (Addistory, Adevăr)

Imagine. Date \u003d addaparticule

Restricții atunci când lucrați cu un client web

Activitatea mecanismului descrise atunci când se utilizează un client web are unele limitări. Aceste restricții sunt legate de caracteristicile modelului de securitate al browserului. De exemplu, clientul nu poate salva fișierul în sistemul de fișiere locale în mod independent, adică doar o versiune interactivă a metodelor client în loc () și sunt disponibile fișiere (). Când încercați să nu utilizați un mod interactiv, este generată o excepție. Casetele de dialogAfișate în modul interactiv specific pentru un anumit tip de browser.

Caracteristici atunci când lucrează cu depozitele de pe client

Problemă:

Când documentul din tabelul există o recuzită de tipul de stocare, acesta încetinește deschiderea formularului de document dacă detaliile sunt înregistrate în acest domeniu.

Motivul estimat:

Poate că atunci când deschideți o formă, nu este transferată clientului că legătura cu datele din datele depozitelor este transmisă, dar datele însele.

Decizie

  • În proprietățile de recuzită de masă, există întotdeauna pavilionul "Utilizare întotdeauna". Dacă este instalat, conținutul câmpului este întotdeauna transmis între server și client - de exemplu, atunci când deschideți formularul. Acest steag trebuie să fie dezactivat, dar este necesar să se țină seama de acest lucru în cod, deoarece valorile implicite ale acestui câmp nu vor fi pe client. Un exemplu poate fi găsit în 1c: arhivă.

Chiar mai bine de utilizat depozitare temporara Pentru a transfera fișiere între client și server.