Adăugarea și modificarea programelor de elemente ale formularelor gestionate. Adăugarea și modificarea programelor de elemente ale formularelor gestionate Modificarea elementelor de formular

Articolul continuă seria „Primii pași în dezvoltarea 1C”.

În configurația de pe platforma 1C:Enterprise, la afișarea informațiilor, cel mai des sunt folosite tabele care afișează diverse liste de informații. Lucrul cu astfel de liste poate avea loc atât sub forma unei liste, cât și sub forma unui element (procesare).

În acest articol, ne vom familiariza cu aceste opțiuni pentru personalizarea listelor și, de asemenea, ne vom uita la alte caracteristici de personalizare a formularelor din partea utilizatorului.

Aplicabilitate

Articolul discută despre interfața gestionată în versiunea „Versiunea 8.2” a configurației dezvoltate pe platforma 1C 8.3.4.482.

Dacă lucrați cu configurații care acceptă această interfață, atunci informațiile sunt relevante pentru dvs. pentru versiunile curente ale platformei.

Dacă lucrați în noua interfață Taxi, atunci numele unor comenzi de configurare, precum și secvența generală a acțiunilor, pot fi ușor diferite.

În plus, versiunea actuală a platformei a adăugat noi capabilități de căutare în liste.

Configurarea formularelor și lucrul cu liste

Pentru elementele de formular gestionate, este posibilă modificarea vizibilității și a altor proprietăți. În aceste scopuri într-o formă controlată în meniu Toate acțiunile servește ca element Schimbați forma.

După ce faceți clic pe această comandă, va apărea fereastra „Setări formular”.

În fereastra care apare, puteți utiliza casetele de selectare pentru a modifica vizibilitatea unor detalii. În acest caz, formularul este scalat automat.

Puteți modifica ordinea detaliilor. Adăugați un nou grup și plasați câteva detalii (elemente) în el, definind opțiunea pentru gruparea lor (orizontală, verticală).

Detaliile incluse în grup vor fi postate în consecință. În plus, puteți configura proprietăți precum lățimea, înălțimea și datele antetului pentru elemente.

Puteți defini atribute care vor fi activate la deschiderea formularului.

O caracteristică importantă este capacitatea de a adăuga noi câmpuri în formular. Acest lucru devine posibil prin atributele tipului de referință.

De exemplu, având un atribut tip referință pe formular Contrapartidă, puteți adăuga Persoana de contact, dacă acest detaliu este prezent în directorul „Contrapărți”.

Dacă este necesar, câmpurile suplimentare pot fi eliminate. Câmpurile create în configurator nu pot fi șterse. Toate setările făcute de utilizator sunt salvate.

Pentru a reveni la setările standard în fereastra Setări formular din meniu Toate acțiunile ar trebui să selectați elementul Setați setările implicite.

Pe lângă personalizarea formularelor din interfața gestionată, este posibilă personalizarea listelor (elemente de director, documente).

Sub forma unei liste în meniu Toate acțiunile conţine o comandă specială Personalizați lista.

Se va deschide fereastra „Setări Listă”. În această fereastră puteți selecta, sorta, defini formatarea condiționată și gruparea.

Figura prezintă un formular pentru editarea selecției.

Selectarea se poate face folosind mai multe câmpuri. În acest caz, în mod implicit selecția va funcționa în funcție de condiția ȘI. Puteți utiliza, de asemenea, condițiile SAU și NU.

Pentru a utiliza condiția SAU (NU), trebuie să utilizați comanda Group Conditions pentru a adăuga grupul corespunzător (OR Group, NOT Group).

Figura prezintă un formular pentru definirea câmpurilor de sortare.

Gruparea poate fi configurată. În figură, câmpul pentru grupare este selectat Contrapartidă.

Figura următoare arată cum va fi efectuată gruparea.

Puteți colora lista în orice fel sau puteți aplica alte elemente de design condiționat (selectarea fontului, anumite formatări) în funcție de o anumită condiție, precum și selectați o listă de câmpuri de formatat.

Figura arată rezultatul proiectării condiționate a fundalului câmpului Sumă.
Când suma este > 100.000.

Trebuie remarcat faptul că este posibil să vizualizați directoare în modul ierarhic.

Vizualizarea ierarhică a directoarelor poate fi configurată prin intermediul articolului Mod Vizualizareîn meniu Toate acțiunile. Puteți alege una dintre opțiuni: Lista ierarhică, Listă, Copac.

De asemenea, este posibil să configurați propria grupare a elementelor de director după anumite detalii.

De exemplu, puteți grupa articolele după furnizor. Exemplul este similar cu cel în care am analizat gruparea documentelor „Vânzări de bunuri și servicii” pe contrapărți.

O caracteristică convenabilă este selecția multiplă în liste și execuția ulterioară a acțiunilor de grup (postare, anulare, debifare ștergere).

Obiectele din listă sunt selectate ținând apăsată tasta Schimbare sau Ctrl.

Căutarea unei anumite valori într-o listă are propriile sale caracteristici. Căutarea operează în modul de selecție. Rămân doar acele rânduri care îndeplinesc condiția de căutare.

Pentru a căuta după valoare în coloana curentă, trebuie doar să poziționați cursorul pe coloana dorită și să faceți clic pe butonul Găsiîn panoul de comandă. Va apărea o fereastră în care ar trebui să faceți clic și pe butonul Găsi.

Pentru a face căutarea mai precisă, puteți utiliza caseta de selectare Caută în găsit.

Când căutați un șir de date de un tip de referință (de exemplu, unități de măsură), ar trebui să selectați opțiunea de căutare corespunzătoare ...(pe linie).

Aceasta se încheie cu liste și modalități de configurare a acestora. În următorul articol, vom continua să ne familiarizăm cu interfața și să privim un instrument convenabil pentru informarea utilizatorului, despre care nu am vorbit înainte. Ce fel de instrument este acesta? :)

1C sunt create automat de către sistem atunci când se utilizează soluția de aplicație. Ele stau la baza prezentării (afișării) informațiilor în sistemul 1C:Enterprise.

Structura formularului 1C

Forma B este o descriere logică a compoziției formularului. elemente descrie cum va arăta forma. Amplasarea elementelor de formular este efectuată automat de către sistem atunci când este afișată.

Partea afișată a formularului (vizibilă pentru utilizator) este descrisă ca un arbore care include elemente de formular (vezi figura de mai jos, câmpul „Elemente de formular”):

  • grup inclusiv alte elemente,
  • câmpuri de intrare,
  • casete de selectare,
  • comutatoare,
  • butoane,
  • tabele care includ elemente de coloană etc.

„Elementele formei 1C”

[colaps]

Un grup de elemente de formular poate fi reprezentat ca

  1. panou cu cadru,
  2. panou cu pagini (marcaje),
  3. pagina în sine,
  4. panoul de comandă.

Toate funcționalitățile formularului sunt descrise după cum urmează:

  • detalii (date cu care lucrează formularul);
  • comenzi (acțiuni efectuate).

Personalizarea aspectului unui formular gestionat

Personalizarea aspectului unui formular gestionat de către utilizator

Aspectul unui formular gestionat poate fi personalizat la nivel de utilizator. Pentru această caracteristică, în acțiunile de formular există o comandă „Mai multe” - „Modificați formularul” (gestionând doar acele elemente de formular care sunt definite în stadiul de dezvoltare sau conform regulilor standard pentru autogenerarea formularelor).

„Mai multe” - „Schimbați forma”

Comanda „Mai multe” - „Schimbați forma”:

După ce faceți clic pe „Schimbați formularul”, este afișată fereastra de setări a formularului 1C:

[colaps]

În plus, în modul utilizator este posibil să:


  • schimbați ordinea formularelor, mutați-le de la o coloană la alta (dacă desktop-ul este organizat în două coloane), dar nu puteți modifica numărul de coloane de pe desktop;
  • afișați informații sub formă de ferestre separate (când apelați o comandă de navigare, trebuie să țineți apăsată tasta Shift).

Dacă sunt folosite secțiuni, atunci când apelați o comandă în panoul de navigare, lista corespunzătoare este afișată în zona de lucru, înlocuind conținutul anterior al zonei de lucru.

Personalizarea aspectului unui formular gestionat de către un dezvoltator

Dezvoltatorul poate influența aranjarea elementelor cu diverse setări. Poate determina ordinea elementelor, poate specifica lățimea și înălțimea acestora și, de asemenea, poate folosi:

  • comenzile formei în sine;
  • comenzi globale utilizate pe parcursul configurației;
  • comenzi parametrizabile care vor deschide alte formulare pe baza datelor specifice formularului curent.

Figura (modificarea formei 1C de către dezvoltator)

[colaps]

Când dezvoltați Formularul 1C trebuie să:

  1. În editorul de formulare, includeți detaliile și comenzile necesare în formular;
  2. creați elemente de formular care le afișează, determinați ordinea elementelor, specificați lățimea și înălțimea (dacă este necesar);
  3. aranjați elementele în grupuri (dacă este necesar).
  1. Utilizați setările de vizibilitate bazate pe rol în elementele formularului (vizualizarea și editarea detaliilor prin , vizibilitate personalizată a câmpurilor de formular după rol, utilizarea comenzilor după rol) în cazul unui număr mare de roluri în configurație (de la câteva zeci). În schimb, ar trebui urmate următoarele abordări:
    • atunci când există diferențe puternice în aspectul și funcționalitatea formularului în funcție de prezența anumitor roluri pentru utilizator – dezvolta forme separate, specializat pentru un set specific de drepturi de utilizator;
    • cu mici diferente - efectuați verificări de permisiuni în cod. Trebuie avut în vedere faptul că controlul programatic al vizibilității poate reduce viteza de deschidere a formularului, lucru care trebuie luat în considerare la alegerea dintre abordările propuse.
  2. Utilizați setările de vizibilitate bazate pe roluri în interfața de comandă de configurare, interfața de comandă a secțiunii principale și zona de lucru a paginii de pornire. În schimb, ar trebui să setați permisiuni pentru secțiunile interfeței de comandă și obiectele incluse în interfața de comandă sau spațiul de lucru. Acest lucru face ca comportamentul interfeței gestionate să fie mai previzibil pentru utilizator și, de asemenea, facilitează investigarea erorilor.

Pentru informații mai detaliate despre lucrul cu formulare, consultați cursul „Lucrul cu formulare în 1C:Enterprise 8.3”, http://www.1c.ru/rus/partners/training/uc1/course.jsp?id=161.

Și Data Transfer Object la structurarea codului, sub formă controlată în mediul 1C 8.2.

Introducere

Să începem cu o scurtă descriere a conceptului de „formă gestionată” și a conceptelor conexe ale platformei 1C. Cunoscătorii de platforme ar putea dori să omite această secțiune.

În 2008, a devenit disponibilă o nouă versiune a platformei 1C: Enterprise 8.2 (denumită în continuare Aplicația Gestionată), care schimbă complet întregul nivel de lucru cu interfața. Aceasta include interfața de comandă, formularele și sistemul de ferestre. În același timp, nu numai că se schimbă modelul de dezvoltare a interfeței cu utilizatorul în configurație, dar este propusă și o nouă arhitectură de separare a funcționalității între aplicația client și server.
Aplicația gestionată acceptă următoarele tipuri de clienți:

  • Client gros (mod de lansare normal și gestionat)
  • Client subțire
  • Client web
Aplicația gestionată utilizează formulare construite pe tehnologie nouă. Ei sunt numiti Formulare gestionate. Pentru a ușura tranziția, sunt acceptate și formularele anterioare (așa-numitele formulare Regular), dar funcționalitatea lor nu este dezvoltată și sunt disponibile doar în modul de lansare a clientului gros.
Principalele diferențe ale formularelor gestionate pentru un dezvoltator:
  • Descriere declarativă, nu „pixel cu pixel” a structurii. Amplasarea specifică a elementelor este efectuată automat de către sistem atunci când formularul este afișat.
  • Toate funcționalitățile formularului sunt descrise ca detaliiŞi echipe. Detaliile sunt datele cu care funcționează formularul, iar comenzile sunt acțiunile care trebuie efectuate.
  • Formularul rulează atât pe server, cât și pe client.
  • În contextul clientului, aproape toate tipurile de aplicații sunt indisponibile și, în consecință, este imposibil să se modifice datele din baza de informații.
  • Pentru fiecare metodă sau variabilă de formă, aceasta trebuie specificată directivă de compilare, definirea locației de execuție (client sau server) și accesul la contextul formularului.
Să enumerăm directivele pentru compilarea metodelor de formulare:
  • &OnClient
  • &OnServer
  • &OnServerWithout Context
  • &OnClientOnServerWithout Context
Să ilustrăm cele de mai sus. Captura de ecran arată un exemplu de formular gestionat și modulul său în modul de dezvoltare. Găsiți descrierea declarativă, elementele de recuzită, directivele de compilare etc.

Toate discuțiile ulterioare vor fi despre partea dreaptă a ilustrației, despre cum să structurați codul modulului și ce principii vă vor permite să implementați interacțiunea eficientă client-server.

Să definim problema

Au trecut câțiva ani de când noua versiune a platformei 1C este utilizată în mod activ și multe soluții (configurații) au fost lansate atât de 1C, cât și de numeroșii săi parteneri.
În acest timp, dezvoltatorii au dezvoltat o înțelegere comună a principiilor interacțiunii client-server la crearea formularelor și s-a schimbat abordarea implementării modulelor software în noile realități arhitecturale?

Să ne uităm la structura codului (modul formular) în mai multe forme ale aceleiași configurații standard și să încercăm să găsim modele.
Prin structură înțelegem secțiuni de cod (cel mai adesea acestea sunt blocuri de comentarii) alocate de dezvoltator pentru a grupa metode și directive de compilare pentru aceste metode.
Exemplul 1:
Secțiunea de gestionare a evenimentelor Metoda - pe client Metoda - pe server Metoda - pe client Secțiunea proceduri și funcții de service Funcții auxiliare de control al intrărilor
Exemplul 2:
Proceduri și funcții de serviciu Documente de plată Valori Manipulatori de evenimente
Exemplul 3:
Proceduri de service pe server Proceduri de service pe client Proceduri de service pe server fără context.
Exemplul 4:
Proceduri de uz general Manipulatori de evenimente de formulare Proceduri ale subsistemului „informații de contact”.
În esență, structura codului lipsește sau, pentru a spune ușor, este similară cu ceea ce era în Forms 8.1:

  • Cuvinte neinformative „General, Serviciu, Auxiliar”.
  • Încercări timide de a separa metodele client și server.
  • Metodele sunt adesea grupate pe elemente de interfață „Lucrul cu partea tabelară Produse, Informații de contact”.
  • Aranjamentul arbitrar al metodelor și grupurilor de coduri. De exemplu, Event Handlers pot fi în partea de sus într-o formă, în partea de jos într-o alta, deloc evidențiate într-o a treia, etc.
  • Și să nu uităm că toate acestea sunt într-o singură configurație.
  • Da, există configurații în care cuvintele „General, Service, Auxiliar” sunt întotdeauna în aceleași locuri, dar...
De ce aveți nevoie de structură de cod?
  • Simplificarea întreținerii.
  • Simplificați învățarea.
  • Înregistrarea principiilor generale/importante/de succes.
  • ...opțiunea ta
De ce nu ajută standardul de dezvoltare existent de la 1C?
Să ne uităm la principiile publicate pe discuri ITS și în diverse „Ghiduri pentru dezvoltatori...” care sunt recomandate atunci când scrieți un formular gestionat.
  • Minimizați numărul de apeluri pe server.
  • Calcul maxim pe server.
  • Apelurile non-contextuale ale serverului sunt mai rapide decât cele contextuale.
  • Program cu comunicarea client-server în minte.
  • etc.
Acestea sunt sloganuri care sunt absolut adevărate, dar cum să le implementăm? Cum să minimizezi numărul de apeluri, ce înseamnă să programezi în modul client-server?

Modele de design sau înțelepciune generațională

Interacțiunea client-server a fost folosită în diverse tehnologii software de zeci de ani. Răspunsul la întrebările prezentate în secțiunea anterioară este cunoscut de mult și este rezumat în două principii de bază.
  • Fațada la distanță(denumită în continuare interfață de acces la distanță)
  • Obiect de transfer de date(denumit în continuare obiect de transfer de date)
Un cuvânt de la Martin Fowler, descrierea sa a acestor principii:
  • Fiecare obiect potențial destinat accesului de la distanță trebuie să aibă interfață cu granularitate scăzută, care va minimiza numărul de apeluri necesare pentru a efectua o anumită procedură. ... În loc să solicitați o factură și toate articolele ei separat, trebuie să citiți și să actualizați toate elementele facturii într-o singură solicitare. Acest lucru afectează întreaga structură a obiectului... Amintiți-vă: interfața de acces la distanță nu conține logica domeniului.
  • ...dacă aș fi o mamă grijulie, cu siguranță i-aș spune copilului meu: „Nu scrie niciodată obiecte de transfer de date!” În cele mai multe cazuri, obiectele de transfer de date nu sunt altceva decât set câmp umflat... Valoarea acestui monstru dezgustător constă numai în posibilitatea transmite mai multe informații prin rețea într-un singur apel- o tehnică de mare importanţă pentru sistemele distribuite.
Exemple de șabloane în platforma 1C
Interfața de programare a aplicației disponibilă dezvoltatorului atunci când dezvoltă un formular gestionat conține multe exemple ale acestor principii.
De exemplu, metoda OpenForm(), o interfață tipică „aspră”.
Parametri de deschidere = Structură nouă(„Parametru1, Parametru2, Parametru3”, Valoare1, Valoare2, Valoare3); Form = OpenForm(FormName, OpeningParameters);
Comparați cu stilul adoptat în v8.1.
Form = GetForm(FormName); Form.Parameter1 = Value1; Form.Parameter2 = Value2; Form.Open();

În contextul unui formular gestionat, există multe „Obiecte de transfer de date”. Puteți selecta sistemicăŞi definit de dezvoltator.
Cei de sistem modelează un obiect de aplicație pe client, sub forma unuia sau mai multor elemente de date de formular. Este imposibil să le creezi în afara conexiunii la detaliile formularului.

  • DataFormsStructure
  • DataFormsCollection
  • DataFormStructureWithCollection
  • DataShapesTree
Conversia obiectelor de transfer de date de sistem în tipuri de aplicații și înapoi se realizează folosind următoarele metode:
  • ValueInFormData()
  • FormDataValue()
  • CopyFormData()
  • ValueInFormAttributes()
  • FormAttributesValue()
Adesea, conversia explicită este utilizată atunci când se adaptează o soluție existentă. Metodele se pot aștepta (utiliza caracteristici) parametri de intrare, cum ar fi ValueTable, mai degrabă decât FormDataCollection, sau metoda a fost definită în contextul unui obiect aplicație și a devenit indisponibilă pentru apelul direct din formular.
Exemplul 1C v8.1:
// pe client în contextul formularului FillUserCache(DepartmentLink)
Exemplul 1C v8.2:
// pe server în contextul formularului ProcessingObject = Form AttributesValue("Object"); ProcessingObject.FillUserCache(DepartmentRef); ValueÂFormAttributes(ProcessingObject, "Object");

Obiectele de transfer de date, a căror structură este determinată de dezvoltator, sunt un mic subset al tipurilor disponibile atât pe client, cât și pe server. Cel mai adesea, următoarele sunt utilizate ca parametri și rezultate ale metodelor unei interfețe „groșate”:

  • Tipuri primitive (șir, număr, boolean)
  • Structura
  • Corespondenţă
  • Matrice
  • Legături către obiectele aplicației (identificator unic și reprezentare text)
Exemplu: metoda acceptă o listă de comenzi pentru schimbarea statutului și returnează clientului o descriere a erorilor.
&OnServerWithoutContext Funcția ServerChangeOrderStatus(Comenzi, NewStatus) Erori = Potrivire nouă(); // [comanda][descrierea erorii] Pentru fiecare comandă din ciclul comenzi StartTransaction();

Încercați DocOb = Order.GetObject();

…. alte actiuni, posibile nu numai cu comanda... Exceptie CancelTransaction();
  • Errors.Insert(Comandă, ErrorDescription()); EndTempt;
  • EndCycle;
  • Eroare de returnare; EndFunction // ServerChangeOrderStatus() Structurarea codului
  • Principalele obiective pe care modulul de formulare gestionate ar trebui să le reflecte și abordări ale soluției. Trebuie să existe o locație clară pentru adăugarea unui cod nou. Un punct important este că șabloanele de metodă create automat de configurator sunt adăugate la sfârșitul modulului. Deoarece manipulatorii de evenimente pentru elementele de formular sunt cel mai adesea creați automat, blocul corespunzător este situat ultimul, pentru a nu trage fiecare handler în alt loc din modul.
Mai jos este structura de bază a modulului care implementează obiectivele enumerate.
  • Opțiune grafică – arată clar fluxul principal de execuție.
  • Opțiunea text este un exemplu de design șablon pentru inserarea rapidă a unei structuri într-un nou modul de formular.

//////////////////////////////////////////////////////////////////////////////// // <(c) Автор="„Data=""/> // <Описание> // // //////////////////////////////////////////////////////////////////// ////////////////////////////// VARIABILE DE MODUL ////////////////// // ////////////////////////////////////////////////////////////////////// ////////// // PE SERVER //******* EVENIMENTE PE SERVER ******* &Pe Procedura Server când este creat pe server (Eșec, Procesare standard) / /Inserați conținutul handler-ului Sfârșitul procedurii //******* INTERFAȚA DE ACCES LA DISTANȚĂ ******* //******* LOGICA DE AFACERI PE SERVER ******* ///////// ///////////////////////////////////////////////////////////// /////// //////////////////// // METODE COMUNE DE CLIENT ȘI SERVER ///////////////// /////// /////////////////////////////////////////////////////////////// ///// //////// // PE CLIENT //******* LOGICA DE AFACERI PE CLIENT ******* //******* ECHIPA * ****** //******* EVENIMENTE CLIENȚI ******* //////////////////////////// ///// ///////////////////////////////////////////////////////////////// // / / PRINCIPALI OPERATORI DE PROGRAM

Întrebări înrudite
În concluzie, vom schița câteva domenii la care este util să ne gândim atunci când programați interacțiunea client-server.
  • Opțiuni de implementare a interfeței de acces la distanță. Asincronie, nivel de detaliu...
  • Memorarea în cache. 1C a luat o decizie arhitecturală nereușită, introducând memorarea în cache doar la nivelul metodelor de apelare a modulelor comune și neasigurând capabilități de control (timp de relevanță, resetare la cerere).
  • Apeluri implicite pe server. Nu uitați de caracteristicile tehnologice multe operațiuni „inofensive” pe client provoacă platforma să contacteze serverul.

Formularele care există în 1C:Enterprise sunt concepute pentru ca utilizatorul să interacționeze interactiv cu datele de bază de informații. Pentru a oferi această caracteristică, formularul este „umplut” cu funcționalitatea necesară.


Funcționalitatea formularului este determinată de compoziția detaliilor și comenzilor sale. Detaliile formularului sunt datele cu care funcționează formularul. Comenzile de formular sunt acțiuni pe care un formular le poate efectua asupra datelor. Cu toate acestea, doar pentru că o comandă este pe un formular nu vă permite să utilizați funcționalitatea acesteia. De asemenea, detaliile în sine nu oferă posibilitatea de a afișa și edita date.
Pentru a utiliza comenzi, pentru a afișa și edita datele stocate în detalii, sunt utilizate elemente de formular asociate comenzilor și detaliilor corespunzătoare.
Fără a intra în detalii, relația dintre comenzi, detalii și elemente de formular poate fi reprezentată printr-o diagramă.

Relația dintre comenzi, detalii și elemente de formular

Pot fi remarcate următoarele caracteristici cheie ale formularelor.
În primul rând, noua formă nu este desenată în detaliu de către dezvoltator, ci este construită automat de către sistem. Dezvoltatorul este în modul de configurare:

  • definește compoziția formei sub forma unui arbore de elemente
  • descrie comportamentul unui formular prin setarea de valori pentru proprietățile sale și/sau implementarea procedurilor într-un limbaj încorporat.

Când construiește o interfață pentru un anumit utilizator, sistemul folosește această descriere declarativă pentru a crea formularul și a plasa elementele acestuia.
În al doilea rând, la crearea unui formular, se folosește un nou model de gestionare a accesibilității și vizibilității elementelor formularului. Aceasta ia în considerare:

  • setări de drepturi în funcție de rolurile utilizatorului
  • dependența elementelor de formular de opțiunile funcționale
  • personalizarea formularului efectuată de dezvoltator în etapa de configurare a soluției aplicației
  • personalizarea formularului efectuată de utilizator în timpul etapei de operare a soluției aplicației.

Funcționalitate implicită

În 1C:Enterprise nu trebuie să creați formulare pentru prezentarea și procesarea obiectelor de date. În acest caz, la executarea comenzilor pentru deschiderea formularelor, sistemul va crea automat formularul necesar din mers. Formularul generat va avea funcționalitate și prezentare implicite. Ce determină prezentarea și funcționalitatea unui formular?
Prezentarea standard și funcționalitatea unui formular este determinată de obiectul de interfață Formular gestionat (de exemplu, capacitatea formularului de a fi închis) și extensia formularului (de exemplu, capacitatea de a scrie date de formular în baza de informații).
O extensie de formular este proprietăți suplimentare, metode, parametri și comenzi care apar pe obiectul Form atunci când i se atribuie atributul principal.

ATENŢIE!
Un singur atribut poate fi selectat ca principal
din detaliile formularului.

Este important să înțelegeți că:

  • funcționalitatea suplimentară furnizată este inclusă în obiectul Formular gestionat, adică devine parte integrantă a acestuia
  • compoziția caracteristicilor suplimentare este determinată de tipul atributului principal al formularului, adică de tipul de date pe care formularul este destinat editării.

Extensiile pot fi prezente și pe elementele de formular. Ca și în cazul formei în sine, compoziția extensiei, adică proprietăți suplimentare, metode etc., ale unui element de formular este determinată de tipul de atribut cu care este asociat elementul.
Dacă este necesar să se implementeze o prezentare a datelor non-standard sau o funcționalitate non-standard, dezvoltatorul poate crea în mod independent un formular în configurator. Editorul de formulare este folosit pentru a crea formulare. Folosind acest editor, dezvoltatorul creează setul necesar de detalii și comenzi pentru formular, precum și elementele de formular cu care sunt afișate.

Formular comenzi

Pentru a ne familiariza cu comenzile formularului, să creăm un alt formular pentru documentul Consum de mărfuri. Din meniul contextual al nodului Formulare al acestui document, selectați Adăugare.

Adăugarea unui subformular


Ca rezultat, se va deschide fereastra de proiectare a formularelor. În fereastra de proiectare, selectați tipul de formular – Document Form, bifați caseta de selectare Atribuire formular ca principal și setați numele MainForm. Faceți clic pe butonul Terminare.

Fereastra de proiectare a formularului

1C8: Fereastra de proiectare formular

Ca rezultat al muncii designerului, este creat un formular de document, acest formular este atribuit ca principal, adică este utilizat în mod implicit pentru lucrul cu documentul. După ce designerul completează formularul creat, se va deschide fereastra editorului de formulare.

Editor de formulare cu formular de document creat automat


NOTA
În editorul de formulare, detaliile principale ale formularului sunt evidențiate cu caractere aldine.

Dacă deschideți documentul Consum de mărfuri în modul 1C:Enterprise, noi vom vedea că formularul pe care l-am creat este folosit pentru a lucra cu documentul.

Formular pentru editarea documentului „Consum de bunuri”


Elementele care oferă acces la comenzi sunt situate în panourile de comandă. În cazul nostru, sistemul a generat un panou de comandă formular și un panou de comandă tabel de produse. Puteți selecta oricare dintre comenzile disponibile din meniul Toate acțiunile din panoul de comandă corespunzător. Pentru a accelera accesul la comenzi, unele dintre ele (cele mai importante sau utilizate frecvent) sunt prezentate sub formă de butoane direct în panourile de comandă.
Ce „ghidează” sistemul atunci când se formează componența echipelor uniforme? Ce echipe ar trebui să fie în uniformă? Pentru a răspunde la aceste întrebări, trebuie să vă amintiți scopul principal al formularului - prelucrarea interactivă a datelor. Prin urmare, formularul trebuie să conțină comenzi care să ofere utilizatorului posibilitatea de a procesa datele din formular și posibilitatea de a accesa datele asociate cu datele prelucrate.

Pentru a procesa datele de formular - comenzi de formular standard s

Formularul trebuie să conțină comenzi pentru prelucrarea datelor și pentru gestionarea formularului. Aceste capabilități sunt furnizate de comenzile standard de formulare locale. În editorul de formulare, acestea sunt prezentate pe filă Comenzi standard editor de comenzi.

Comenzi de formular standard în editor și interfață

1C8: comenzi de formular standard în editor și interfață

Aceste comenzi sunt furnizate de formular și extensia de formular. Compoziția comenzilor furnizate de formular este standard și nu depinde de datele din formular - acestea sunt comenzile:

  • Referinţă
  • Schimbați forma...
  • Aproape
  • Salvați setările...
  • Restabiliți setările...

Compoziția comenzilor furnizate de extensie depinde de tipul atributului principal al formularului. În cazul nostru, atributul principal al formularului este atribuit atributului Object cu tipul de date DocumentObject.ProductConsumption (vezi figura de mai sus Extensia corespunzătoare acestui tip de date a furnizat comenzile:

  • Glisați și închideți
  • Scrieți
  • Recitiți
  • Copie
  • Marcați pentru ștergere
  • Anulați marcarea ștergerii
  • Şterge
  • Executa
  • Anulare.

ATENŢIE!
Este necesar să se facă distincția între comenzile standard de obiect de configurare și comenzile de formular standard. Primele sunt utilizate în interfața globală de comandă și sunt furnizate de obiectul de configurare. Acestea din urmă sunt utilizate în formular și sunt furnizate de formularul propriu-zis, extensia acestuia și extensiile elementelor de formular de tip Tabel.

Pentru a facilita dezvoltarea algoritmilor de gestionare a formularelor, comenzile standard de formulare includ următoarele comenzi:

  • Nu,
  • Anula,
  • Avorta,
  • Sari peste,
  • Repeta.

Dacă o astfel de comandă este adăugată în formular, atunci când utilizatorul o selectează, sunt efectuate următoarele acțiuni:

  • Pentru un formular deschis în mod modal, formularul este închis și se returnează o valoare de tip DialogReturnCode corespunzătoare comenzii selectate.
  • Pentru un formular deschis în modul fără model, doar formularul este închis.

Dacă elementele formularului conțin tabele, atunci comenzile sunt adăugate la comenzile locale standard ale formularului pentru a procesa datele afișate în aceste elemente. La document Consumul de produs Există o parte tabelară, care este reprezentată în datele formularului prin atributul Produse. Pentru a afișa o listă de produse în formular, utilizați elementul Produse din tipul Tabel. Comenzile locale standard ale formularului includ comenzi pentru procesarea datelor tabulare - nodul Produse din editorul de comenzi.

Comenzi standard de tabel în editor și interfață


Pentru a lucra cu date legate - comenzi parametrizate globale

Atunci când procesați datele din formular, poate fi necesar să vizualizați datele asociate cu datele în curs de prelucrare. Acesta ar putea fi, de exemplu, un set de înregistrări în registrul decontărilor reciproce cu contrapărțile, subordonate documentului în curs de prelucrare, sau o listă de prețuri pentru mărfurile vândute etc. De asemenea, poate fi necesară efectuarea unor prelucrări a datelor aferente. , de exemplu, introduceți un document de plată pe baza unui document de vânzare sau tipăriți coduri de bare pentru bunurile vândute etc.

Accesul la datele legate este asigurat de comenzile de navigare parametrizabile la nivel global, iar procesarea datelor legate este asigurată de comenzile de acțiune parametrizabile la nivel global. În editorul de formulare, acestea sunt prezentate în fila Comenzi globale a editorului de comenzi.

Comenzi parametrizabile globale în editor și interfață


Aceste comenzi sunt furnizate de interfața globală de comandă a soluției aplicației. Compoziția comenzilor disponibile în formular depinde de tipul de parametru al comenzii parametrizate (vezi. "Comenzi arbitrare"). Acele comenzi parametrizate globale sunt disponibile în forma pentru care în contextul formularului este posibil să se obțină valori ale parametrilor de tipul necesar.
În editorul de comenzi, sursa parametrului pentru o comandă este indicată în paranteze după comandă. De exemplu, pentru comanda de deschidere a unei liste de registru de vânzări, parametrul este un link către documentul care este editat.
Dacă există mai multe surse pentru o comandă pe un formular, atunci comanda este reprezentată ca un nod arborescent, iar lista de surse este reprezentată ca elemente ale acestui nod. O astfel de comandă poate fi inclusă în comenzile de formular cu oricare dintre surse (sau mai multe instanțe ale aceleiași comenzi cu surse diferite).
Pentru a lucra cu funcționalitatea aplicației - comenzi globale independente Când procesați datele din formular, poate fi necesar să utilizați funcționalitatea aplicației care nu este direct legată de datele care sunt procesate.
De exemplu, atunci când procesăm datele documentului, trebuie să efectuăm o căutare în date sau să introducem un nou tip de preț. Echipele globale independente vă vor ajuta să efectuați aceste operațiuni. În editorul de formulare, acestea sunt prezentate în fila Comenzi globale a editorului de comenzi.

Comenzi globale independente în editor și interfață


Comenzile globale independente sunt furnizate de interfața de comandă globală. În editorul de comenzi, comenzile globale independente sunt grupate în secțiuni ale interfeței de comandă globală. Comanda va fi disponibilă din toate secțiunile interfeței de comandă globală în care este inclusă.

Metode de formare a componenței echipei

După ce ne-am familiarizat cu sursele comenzilor de formular, să vedem ce opțiuni ne oferă sistemul pentru a crea compoziția comenzilor de formular.

NOTA
Există o altă sursă de comenzi pentru formular - dezvoltatorul, care poate crea comenzi locale arbitrare pentru formular. Vom vorbi despre aceste comenzi puțin mai târziu (vezi „Dacă comenzile standard lipsesc”).

În cel mai general caz, există trei opțiuni:

  • automat – compoziția comenzilor formularului este determinată de sistem complet automat
  • combinat – compoziția comenzilor de formular este determinată automat de sistem, iar dezvoltatorul, folosind editorul de formulare, o corectează
  • manual – compoziția comenzilor formularului este determinată în întregime de dezvoltator.

Opțiunea automată este cea mai rapidă și mai puțin costisitoare din punctul de vedere al dezvoltării unei soluții de aplicație - sistemul face totul independent. Opțiunea de combinare este probabil cea mai des folosită. Prin această abordare, dezvoltatorul intervine în funcționarea sistemului doar atunci când setul de comenzi generat de sistem nu oferă funcționalitatea necesară pentru prelucrarea datelor din formular. În marea majoritate a cazurilor, intervenția se exprimă într-o simplă extindere a componenței echipelor uniforme. Opțiunea manuală oferă oportunități maxime pentru gestionarea compoziției comenzilor de formular și plasarea acestora. Cu toate acestea, necesită dezvoltatorului să efectueze o cantitate semnificativă de muncă minuțioasă.

Platforma conține un număr mare de mecanisme care facilitează procesul de implementare și oferă oportunități mai mari de personalizare a soluției aplicației. Ceea ce în alte sisteme trebuie făcut prin adăugarea sau rescrierea codului de program, în 1C:Enterprise 8 se poate face cu câteva clicuri de mouse. Uneori chiar chiar în modul utilizator. Fără modificarea soluției aplicației în sine, fără modificarea codului programului acesteia.

De regulă, o soluție de aplicație conține toate rolurile necesare pentru funcționarea completă. Cu toate acestea, pot exista cerințe speciale pentru o anumită implementare. Implementatorul poate crea noi roluri pentru a satisface aceste nevoi. Cel mai convenabil mod de a face acest lucru este prin copierea și modificarea rolurilor deja existente în soluția aplicației.

Configurarea panoului de secțiuni

Puteți modifica compoziția panoului de secțiuni în Configurator în modul 1C:Enterprise.

Configurarea paginii de start

Compoziția formularelor aflate pe pagina inițială poate fi modificată în Configurator cu detalii pe rol, sau individual pentru unul sau mai mulți utilizatori în modul 1C:Enterprise.

Configurarea interfeței de comandă a secțiunii principale

Puteți modifica componența echipelor afișate în secțiunea principală din Configurator cu detalii pe rol.

Configurarea interfețelor de comandă de partiție

Compoziția comenzilor afișate într-o anumită secțiune a soluției aplicației poate fi modificată în Configurator cu detalii după rol. În același timp, este posibil să configurați atât toate secțiunile simultan (editorul „Toate subsistemele”), cât și fiecare secțiune separat (editorul interfeței de comandă).

Configurarea formularelor