Unele teorii despre noua abordare a programării, în formă de 1C 8.2
Directivele considerate compilație de proceduri și funcții care sunt definite în modulul formular.
Experții au trecut deja la pista 1C 8.2 este puțin probabil să găsească ceva nou în acest articol. Ei bine, cel care cu 1C 8.2 nu funcționează încă - Sper, vor găsi informații utile.
Înainte de trecerea la noua platforma 1C 8.2, trebuie să mărturisesc că nu-mi pasă, chiar în cazul în care se execută într-un formular cod modul în scris - pe client sau pe server. Am scris codul, „cum merge.“ Subiectiv, 1C 8.1 această valoare nu a fost dat. În mod obiectiv, desigur, cărțile au fost oferite recomandări pentru optimizarea codului, dar, așa cum se întâmplă atât de des în viață - m-am gândit, de ce ar trebui să respecte câteva reguli atunci când se poate face fără ele și de a obține un rezultat de lucru? Optimalitatea codului a devenit relevant numai atunci când sistemul a apărut grav „conectarea“ și a trebuit să înțeleagă „de ce sa întâmplat asta?“. Și „grele“ în cod, nu a fost întotdeauna evidentă. Dans cu o tamburina, măsurarea performanței, o analiză detaliată a blocajelor ...
Acum 1C 8.2 utilizează o nouă abordare a formelor de programare. Cu acest lucru de mult pentru a sorta prin intermediul, dar în cele din urmă la toate pentru a înțelege, a trebuit să-și petreacă ceva timp și reconstrui creierul să lucreze în logica unei interacțiuni client-server. Și totul a fost mai complicat decât crezut inițial (ca întotdeauna).
Deși nu înțeleg teoria, în mod constant am făcut greșeli în practică și se întreba „de ce nu funcționează?“.
Deci, un pic de alfabetizare. În primul rând, ceea ce este o formă? Trebuie să înțelegem că acesta este un obiect de program care este creat în procesul de soluții de aplicare și constă din două părți care interacționează. Fiecare piesă este executat în contextul său: în contextul server sau contextul clientului. Contextul noii platforme determină nu numai mediul de software în care codul se execută, dar, de asemenea, un loc fizic în cazul în care codul (server sau client) vor fi executate. Astfel, un dezvoltator de programe separate în mod clar aplicații client și server.
Server și accesul clientului la diferite obiecte și proprietățile lor și metodele difuzoarelor încorporate. Serverul efectuează acțiuni legate de accesul la OBD și tratamentul lor. iar clientul efectuează de cartografiere a datelor și interacțiunea cu utilizatorul. Astfel, interacțiunea client-server determină numărul de reguli din codul de proiectare.
În primul rând, trebuie remarcat faptul că structura codului nu este determinată de logica problemei, și logica de interacțiune client-server. Codul de client este scris ca un transfer de script de control de la client la server și înapoi, mai degrabă decât ca o succesiune de acțiuni pentru a efectua. Pentru organizarea unui astfel de scenariu sunt directive de compilare:
Codul care implementează logica de afaceri ar trebui să fie separate de codul implementează interfața. Trebuie să se înțeleagă că există forma atât pe client și pe server, dar fiecare dintre ele „vede“ doar o parte cu toate consecințele sale. Din acest motiv, toate procedurile și funcțiile create în formă de modul, ar trebui să aibă o indicație clară a contextului în care acestea vor fi executate. De exemplu, compilarea directivă și procedura poate fi după cum urmează:
În cazul în care elaborarea directivei înainte de a descrie procedura sau funcția lipsește, se consideră că procedura sau funcția este executată pe server ( NaServere).
Procedura sau funcția este executată în contextul apelului clientului clientul, respectiv, executate în contextul părții server este numit server. pot fi apelate din procedurile și funcțiile serverului client, atunci când acestea vor fi executate, executarea de cod va reveni la client. Este important să rețineți că returneze forțat executarea de cod de pe un client nu funcționează, și anume de proceduri și funcții de server pentru a determina clientul - este imposibil.
Aceasta indică faptul că procedura sau funcția este executată în contextul cererii de server. Acesta este utilizat pentru toate serverul formular manipulare eveniment, precum și pentru propriile sale proceduri și funcții care sunt definite de către dezvoltator pentru a transfera executarea de cod pe un server. Astfel de proceduri și funcții ale procedurilor simplificate menționate formularul de server. Dezvoltatorul trebuie să controleze frecvența apelurilor de server. În mod ideal, ar trebui să depună eforturi pentru a se asigura că numărul lor a fost minim, deoarece de fiecare dată când apelați sistemul de „plimbari“ datele înainte și înapoi.
Directiva indică faptul că o procedură sau funcția este executată în cadrul aplicației client, și va fi disponibil în întregul context al formei - detaliile, elementele și parametrii de formular. Dar baza de date va aborda elementele nu funcționează, și anume cod
nu va funcționa. Ar fi dreptul de a face o funcție de server de apel care returnează o valoare:
Directiva indică faptul că codul va fi executat pe server în același timp forme contextul nu este disponibil. Deci, pentru a avea acces la datele și să formeze elemente ale procedurii sau funcția îndeplinită de directivă - nu va funcționa. Dar, pe de altă parte, o procedură de apel sau o funcție mult mai „ușor“ cu privire la volumul de date transmise către server. client subțire sau client Web, joacă un rol important. În cazul în care detaliile și elementele de formular nu sunt necesare pentru executarea de cod pe server, procedura de apel sau funcția compilate cu directiva NaServereBezKonteksta - alegerea potrivită.
Această directivă definește procedura sau funcția poate fi executată în contextul clientului, cât și în cadrul serverului. În cazul în care ar putea avea nevoie să se dezvolte? Sansele sunt atunci când aveți nevoie pentru a efectua aceleași acțiuni în cele două părți ale cererii. Nu pentru a crea două proceduri identice cu diferite directive - poate face o directivă NaKlienteNaServereBezKonteksta.