Internet Windows Android

Cerințe ale formei 1c 8.3. Acreditări de formular gestionat (1Cv8)

Mai jos sunt enumerate principalele obiecte 1C care sunt utilizate atunci când se lucrează cu formulare gestionate. Sunt date exemple de cod scurt care demonstrează utilizarea tradițională a acestor obiecte la scrierea configurațiilor 1C.

Acest formular

Folosit într-un modul formular, în proceduri& OnClient și & OnServer.

Vă permite să accesați atât elementele formularului, cât și atributele.

Un element de formular este accesat printr-un obiect Elemente și arată astfel:

ThisForm.Elements.VersionNumber.Header = "v." + ProgramVersion;

Referința la cerințele existente în formular este următoarea:

ThisForm.Announcement text = "Bună ziua, tovarăși!";

Acces simplificat la elemente de formă și elemente de recuzită

În principiu, în modulul formular, puteți omite cuvântul cheie Acest formular ... Puteți face referire la elementele și atributele formularului într-un mod simplificat:

// Element de formă

Elements.VersionNumber.Header = "v." + ProgramVersion;

// Formați recuzită

Textul anunțului = "Bună ziua, tovarăși!";

Caracteristici ale obținerii detaliilor formularului (important!)

Dacă recuzita de formă este de tip simplu -Șir, număr, dată ... atunci puteți obține (setați) valoarea unui atribut pur și simplu după nume:

Text = Nume produs; // Numele produsului este un atribut de formular

Cu toate acestea, în acest mod este imposibil să obțineți detalii de tip „complex” -Tabelul valorilor, Arborele valorilor ... Dacă încercați să obțineți un atribut cu acest tip după nume, un obiect de acest tip va fi returnatDataFormsCollection.

Pentru a obține valoarea unui atribut cu un tip „complex”, trebuie să utilizați funcțiaPropsFormVValue ():

CurrentTable = FormInValue ("SelectedConstructionObjects");

Pentru a seta valoarea unei variabile "complexe", puteți utiliza funcțiaAtribut ValueBForm (<Значение>, <ИмяРеквизита>) sunt necesari ambii parametri.

Funcții PropsFormVValue ()și ValueBForm Attribute ()disponibil numai pe server.

Un obiect

Strict vorbind, așa cuvânt cheieîn cadrul formularului, nr. Doar că atunci când se creează un formular, de exemplu, un formular de element, 1C creează automat o recuzită cu un nume pe formular Un obiect ... Acest atribut oferă acces la proprietățile obiectului curent, care este editat în formular.

sau, o înregistrare mai completă:

Acest obiect

Conține obiectul în sine. Este destinat obținerii unui obiect într-un modul obiect sau într-un modul formular.

Utilizare: numai citire.

Disponibilitate: Server, Fat Client, Conexiune exterioară.

Cum se adaugă cerințe suplimentare unui element de referință în 1C Accounting 8.3 (revizuire 3.0)

2016-12-07T18: 20: 33 + 00: 00

Se întâmplă să ne lipsească capacitățile deja disponibile în 1C. Și nu este întotdeauna necesar să contactați programatorul. Vă voi spune despre unul dintre aceste cazuri în legătură cu noul 1C: Contabilitatea 8.3 (revizuirea 3.0).

Să nu avem suficiente câmpuri pentru a introduce informații despre contrapartidele noastre. Și vrem să adăugăm un câmp nou, care se va numi „Stare” și va avea una dintre cele trei valori - „Înalt”, „Mediu” și „Scăzut”. Cum să adăugați un astfel de câmp fără a intra în configurator, vă voi spune mai jos în pași.

1. Accesați secțiunea „Administrare” și selectați „ Setari generale" ():

2. Găsiți și bifați caseta de selectare „Detalii și informații suplimentare”, dacă nu este deja instalată. Faceți clic pe linkul „Detalii suplimentare”:

3. În partea stângă a ferestrei de setări care se deschide, selectați elementul „Contractor”. Faceți clic pe butonul Nou din bara de instrumente.

4. S-a deschis fereastra pentru crearea unei noi variabile pentru elementele din directorul „Contractori”. Introduceți „Stare” în câmpul Nume. Lăsați „Valoare suplimentară” ca tip de valoare, deși pentru viitor, rețineți că sunt posibile alte tipuri de valori (șir, număr, dată etc.). Dar acum avem nevoie doar de o valoare suplimentară, deoarece vrem să oferim utilizatorului o alegere limitată de trei opțiuni.

5. Pentru a crea fiecare dintre opțiuni, accesați fila „Valori”, faceți clic pe butonul „Creați” acolo, introduceți numele valorii (de exemplu, „Ridicat”) și faceți clic pe butonul „Salvare și închidere”.

6. Și așa mai departe până când toate cele trei valori sunt create cu numele „Înalt”, „Mediu” și „Scăzut” așa cum se arată în figura de mai jos. Faceți clic pe butonul „Ardeți și închideți”.

7. După cum puteți vedea, în lista de detalii suplimentare, contrapartida are acum un atribut Status.

8. Acum, dacă mergem la orice element al contrapartidelor din director, vom vedea în partea de jos a formularului un nou câmp Status ( dacă nu vedeți - deschideți grupul „Detalii suplimentare” prăbușit pe formular):

9. În acest câmp, putem înlocui una dintre cele trei valori pe care le-am creat. Prin acest câmp, puteți face o selecție sub forma unei liste, poate fi afișată în rapoarte etc.

Detalii despre formular

Setul de atribute de formular descrie compoziția datelor care sunt afișate, editate sau stocate în formular. În același timp, detaliile formularului de la sine nu oferă posibilitatea de a afișa și edita date. Elementele formularului (a se vedea secțiunea „Elementele formularului” din acest capitol), asociate cu atributele formularului, sunt utilizate pentru afișare și editare. Setul tuturor detaliilor formularului va fi numit date formular.

Important! Trebuie amintit că, spre deosebire de formularele obișnuite, toate datele forma gestionată trebuie descris sub formă de cerințe. Nu este permisă utilizarea variabilelor modulului formularului ca surse de date pentru elementele formularului.

Este posibil să atribuiți Principala cerință a formularului, adică un element de recuzită care va defini funcționalitatea standard a formularului (extensia formularului). Trebuie amintit că un formular poate avea un singur atribut principal.

Extinderea formularului- acestea sunt proprietăți suplimentare, metode și parametri ai formularului de obiect ManagedForm, caracteristic obiectului care este elementul principal al formularului.

În procesul de dezvoltare a unui formular, puteți seta în mod explicit capacitatea de a vizualiza și edita detalii specifice ale formularului, în ceea ce privește rolurile, utilizând proprietățile Vizualizare și editare (pentru mai multe detalii, consultați secțiunea „Personalizarea formularului bazat pe roluri”) în capitolul „Editori”). În plus, disponibilitatea unui anumit atribut în formular poate fi configurată folosind opțiuni funcționale (pentru mai multe detalii despre opțiunile funcționale, consultați capitolul "Gestionarea interfeței de configurare").

Proprietăți de recuzită Date stocate este un semn că o schimbare interactivă a elementelor de recuzită va duce la o încercare de a bloca datele formularului pentru editare, precum și la instalare automată un semn de modificare a formularului.

Tipuri de date disponibile în formă gestionată

Un formular gestionat diferă, de asemenea, de un formular obișnuit în tipurile de date cu care funcționează. Dacă formularul obișnuit funcționează cu majoritatea tipurilor pe care 1C: Enterprise le oferă (inclusiv tipul DirectoryObject, DocumentObject etc.), atunci următoarele categorii de tipuri pot fi distinse în forma gestionată:

  • tipurile care sunt utilizate direct în formular sunt cele care există pe partea clientului subțire și Web (de exemplu, Number, ReferenceRef.Products, GraphicalSchema, TabularDocument);
  • tipuri care vor fi convertite în tipuri de date speciale - tipuri de date de formular gestionate. Astfel de tipuri sunt afișate în lista de atribute de formă între paranteze, de exemplu (ReferenceObject.Goods);
  • listă dinamică (a se vedea secțiunea „Listă dinamică” a acestui capitol pentru mai multe detalii).

Conversia obiectelor aplicației în date de formular

Unele tipuri de aplicații (cum ar fi DirectoryObject etc.) nu există din partea clienților subțiri și Web (pentru mai multe detalii, consultați capitolul „Conceptul unei aplicații gestionate”). Prin urmare, pentru a reprezenta astfel de tipuri de aplicații în formular, platforma a introdus tipuri de date speciale concepute pentru a funcționa în formulare gestionate. Această caracteristică a unei aplicații gestionate necesită conversia obiectelor aplicației pentru a forma date (și invers).

Sunt utilizate următoarele tipuri de date:

  • FormDataStructure - conține un set de proprietăți de tip arbitrar. Proprietățile pot fi alte structuri, colecții sau structuri cu colecții. Acest tip este reprezentat, de exemplu, în formularul DirectoryObject.
  • O colecție FormData este o listă de valori tipizate ca o matrice. Un articol dintr-o colecție este accesat prin index sau identificator. Este posibil ca accesul prin ID să nu fie disponibil în unele cazuri. Acest lucru se datorează tipului de obiect de aplicație reprezentat de această colecție. Identificatorul poate fi orice număr întreg. Acest tip este reprezentat, de exemplu, în formă parte tabelară.
  • FormDataStructureCollection este un obiect reprezentat în același timp ca o structură și o colecție. Poate fi tratat ca oricare dintre aceste entități. Acest tip este reprezentat, de exemplu, sub forma unui set de înregistrări.
  • FormDataTree - obiectul este conceput pentru a stoca date ierarhice.

Un obiect de aplicație este reprezentat fie de unul sau mai multe elemente de date de formular. În general, ierarhia și compoziția datelor din formular depind de complexitatea și relația obiectelor aplicației din formularul gestionat.

De exemplu, un document care conține o secțiune tabulară va fi reprezentat de un obiect de tipul FormDataStructure (documentul în sine), căruia îi este subordonat un obiect de tipul FormDataCollection (secțiunea tabulară a documentului).

Important! Când proiectați o configurație, este important să rețineți că obiectele aplicației sunt disponibile numai pe server, în timp ce obiectele de date de formular pot fi utilizate atât pe server, cât și pe client.

Transmiterea datelor între partea clientului și partea din spate a unui formular gestionat

De fapt, putem spune că datele formularului reprezintă o reprezentare unificată a datelor diferitelor obiecte ale aplicației cu care formularul funcționează într-un mod uniform și care sunt prezente atât pe server, cât și pe client. Adică, formularul conține o oarecare „proiecție” a datelor obiectelor aplicației sub forma propriilor tipuri de date și convertește între ele, dacă este necesar. Cu toate acestea, dacă un dezvoltator de configurație își implementează propriul algoritm de procesare a datelor, atunci el trebuie să efectueze conversia datelor (de la tipuri specializate la tipuri aplicate și invers) independent.

Când editați atributele formularului într-un editor specializat (pentru mai multe detalii, consultați secțiunea „Atribute formular” din capitolul „Editori”), este posibil să influențați transferul de date între client și server în timp ce formularul rulează. Pentru a face acest lucru, utilizați coloana editorului de atribute. Folosiți întotdeauna... Efectul acestei proprietăți diferă pentru trei tipuri de atribute:

  • Pentru un atribut subordonat unei liste dinamice (coloană listă dinamică):
    • property on - atributul este întotdeauna citit din baza de date și inclus în datele formularului;
    • property off - atributul este citit din baza de date și este inclus în datele formularului numai atunci când există un element de formular vizibil în prezent asociat cu atributul sau atributul subordonat al acestuia.
  • Pentru recuzită subordonată colecției de mișcare:
    • proprietate pe - mișcările documentului sunt citite din baza de date și vor fi prezente în datele formularului;
    • proprietatea este dezactivată - mișcările documentelor nu vor fi citite din baza de date și nu vor fi incluse în datele formularului (dacă nu există niciun element formular care să se refere la mișcările documentului).
  • Alte detalii ale formularului:
    • proprietate activată - atributul va fi prezent în datele formularului, indiferent dacă există sau nu cel puțin un element de formular care este asociat cu atributul sau atributul său subordonat;
    • property off - recuzita va fi prezentă în datele formularului numai dacă există un element de formă asociat cu recuzita sau recuzita subordonată a acesteia. Spre deosebire de atributele unei liste dinamice, vizibilitatea elementului asociat cu atributul nu contează aici.

Notă. Trebuie amintit că proprietatea setată pe atributul părinte afectează toate atributele subordonate. De exemplu, dacă proprietatea Use este întotdeauna ștearsă pentru secțiunea tabulară a documentului, atunci sistemul consideră că această proprietate este ștearsă și pentru toate atributele subordonate (în ciuda stării reale a proprietății).

Metode de conversie a datelor obiectelor aplicației în date formular

Există un set de metode globale pentru conversia obiectelor aplicației pentru a forma date și invers:

  • ValueInForm Data (),
  • FormDataValue (),
  • CopyFormData ().

Important! Metodele care funcționează cu obiectele aplicației sunt disponibile numai în procedurile serverului. Metoda de copiere a valorilor între datele formularului este disponibilă pe server și pe client, deoarece nu necesită obiecte de aplicație ca parametri.

Când convertiți datele formularului într-un obiect aplicație, luați în considerare compatibilitatea.

  • FormDataValue () - convertește un obiect de tipul aplicat în date de formular;
  • FormDataValue () - convertește datele formularului într-un obiect de tip aplicat;
  • CopyFormData () - copiază datele formularului cu o structură compatibilă. Returnează True dacă a fost făcută copia sau False dacă structura obiectelor este incompatibilă.

Notă. Când efectuați acțiuni standard (deschiderea unui formular, executarea comenzii de scriere standard etc.) a unui formular cu atributele principale, transformarea se efectuează automat.

Iată un exemplu de utilizare a transformării datelor în algoritmii proprii.

& AtServer Procedure OnCreateAtServer (Eșec, procesare standard)

ObjectObject = Cărți de referință.Goods.FindByName ("Cafetieră"). GetObject (); ValueVDataForm (ObjectObject, Object);

Sfârșitul procedurii

Scriere procedură & OnClient ()

WriteOnServer ();

Sfârșitul procedurii

Procedura & AtServer WriteAtServer ()

ObjectObject = FormDataValue (Object, Type ("DirectoryObject.Goods")); ObjectObject.Write ();

Sfârșitul procedurii

De asemenea, obiectul ManagedForm are metode disponibile pe server:

  • ValueBFormAttribute () - convertește un obiect de tipul aplicat în atributul de formular specificat.
  • Form AttributeValue () - convertește atributul de date formular într-un obiect de tipul aplicat.

Utilizarea acestor metode este de obicei mai convenabilă, deoarece acestea au, de exemplu, informații despre tipul de atribut formular. În plus, metoda FormPropsBValue () efectuează maparea între datele formularului și obiectul, care este utilizat la generarea mesajelor. Puteți citi mai multe despre acest lucru în capitolul „Opțiuni pentru serviciul de navigare”.

Să dăm un exemplu de utilizare a acestor metode.

Procedura & AtServer RecalculateAtServer ()

// Convertește obiectul recuzită într-un obiect aplicație. Document = AttributeFormVValue ("Obiect"); // Efectuează recalcularea utilizând metoda definită în modulul document. Document.Recalculate (); // Convertește obiectul aplicației înapoi în recuzită. ValueVRequisitForm (Document, „Obiect”);

Sfârșitul procedurii

Interfață de programare

FormDataTree (FormDataTree)

  • FindById
  • GetItems

Descriere:

Proiectat pentru modelarea unui copac în date de formular gestionate.

Acest obiect poate fi serializat în / de la XDTO. Tip XDTO corespunzător acest obiect definit în spațiul de nume. Nume tip XDTO:

GetItems

Sintaxă:

GetElements ()

Valoare returnată:

Tip: FormDataTreeElement Collection.

Descriere:

Obține colecția de articole din arborele de nivel superior.

Disponibilitate: client, server, client slab, client web.

FindById

Sintaxă:

FindById (<Идентификатор>)

Opțiuni:

<Идентификатор>(obligatoriu)

Tip: Număr. Identificatorul elementului copac.

Valoare returnată:

Tip: FormDataTreeElement.

Descriere:

Obține un articol de colecție după ID.

Disponibilitate: client, server, thin client, web client.

FormDataTreeItem (FormDataTreeItem)

Proprietăți:

<Имя свойства> (<Имя свойства>)

  • GetId
  • GetParent
  • GetItems
  • Proprietate

Descriere:

Element de arbore de date formular.

FormDataTreeItemCollection (FormDataTreeItemCollection)

Elemente de colecție: FormDataTreeElement

Pentru un obiect, colecția poate fi parcursă folosind operatorul Pentru fiecare ... Din ... Buclă. Traversarea selectează elementele colecției. Este posibil să faceți referire la un element de colecție utilizând [...] operatorul. Indexul elementului este transmis ca argument.

  • Introduce
  • Adăuga
  • Index (IndexOf)
  • Numara
  • clar
  • Obține (Obține)
  • Mutare
  • Șterge

Descriere:

Colecție de elemente de copac.

Disponibilitate: client, server, thin client, web client.

Vezi si:

  • FormDataTreeElement, metoda GetElements
  • FormDataTree, metoda GetElements

Caracteristici de lucru cu un arbore de valori

Actualizarea arborelui

Există o problemă toamna platforme la actualizarea arborelui.

Dacă un nod a fost extins în arbore și a fost selectat un nod subordonat, atunci când arborele este actualizat cu funcția ValueInDataForm platforma cade.

Soluție: Înainte de actualizare, trebuie să ștergeți copacul.

De exemplu:

& AtServer Procedure ClearTree (elements) Pentru fiecare element al elementelor Loop ClearTree (element.GetElements ()); Sfârșitul ciclului; elements.Clear (); Sfârșitul procedurii

& AtServer Procedura de completare ConceptTree () dzConceptions = cpProperties.Construct ConceptTree (OnDate, Meta.CurrentIB ()); ClearTree (ConceptTree.GetElements ()); ValueVDataForms (Concept, Concept Tree); Sfârșitul procedurii

& OnClient Procedure OnDateOnChange (Element) Fill ConceptTree (); Sfârșitul procedurii

Lucrarea utilizatorului cu cărți de referință și documente în 1C constă în completarea câmpurilor din formular.

Detaliile 1C sunt câmpurile cărții de referință și ale documentului care sunt afișate pe formular pentru completarea utilizatorului.

Să luăm în considerare în detaliu subiectul detaliilor din 1C.

Ce sunt cerințele 1C

Fiecare carte de referință și document 1C constă dintr-un set de câmpuri. Astfel de câmpuri se numesc detalii 1C (pentru un programator 1C).

În configurator, în arborele de configurare 1C, deschideți orice director sau document și veți vedea ramura Cerințe. Aceasta este o listă a cerințelor (câmpurilor) din director.

Aruncați o privire la aspectul acelorași detalii 1C pe formularul de referință 1C.

Fiecare atribut 1C are proprietăți care indică ce fel de valoare este stocată în atribut (șir, număr etc.) și modul în care utilizatorul va lucra cu acesta.

Faceți clic dreapta pe orice proprietate 1C și faceți clic pe Proprietăți. O listă cu proprietățile atributului selectat se va deschide în fereastra din dreapta.

Proprietățile de bază ale cerințelor 1C:

Detalii standard 1C

După cum ați observat, forma directorului conține detalii 1C care nu sunt listate în configurator: grup, nume, BIC.

Sub forma listei de directoare, există și detalii 1C care nu sunt în listă: marca de ștergere.

Acestea sunt detalii standard 1C. Ce este? Fiecare are un set de detalii 1C în mod implicit. Pentru cărțile de referință, acesta este, de exemplu, un cod și un nume. Pentru documente, aceasta este data și numărul.

Detaliile standard 1C pot fi vizualizate după cum urmează:

  • Mergeți la editorul de obiecte 1C (carte de referință sau document) făcând dublu clic pe el cu mouse-ul
  • În editorul care se deschide, selectați fila Date
  • Aici puteți configura detaliile standard Cod și numele cărții de referință
  • Faceți clic pe butonul Detalii standard 1C pentru a vizualiza lista completă.

Detalii generale 1C

Începând cu versiunea 1C 8.2.14, un nou obiect 1C a apărut în 1C - Detalii generale ale 1C. Folosindu-l, puteți adăuga un atribut (câmp), care va fi prezent în mai multe directoare și documente simultan.

Proprietățile accesoriilor generale 1C:

  • Utilizare automată - adaugă un atribut comun 1C la toate directoarele și documentele simultan
  • Compoziție - vă permite să adăugați un atribut general 1C numai la directoarele și documentele necesare (apoi utilizați automat în valoarea Nu utilizați).

Cum se adaugă recuzită 1C

Faceți clic dreapta pe ramura 1C Requisites din directorul dorit și selectați Adăugare.

Trebuie să introducem numele variabilei 1C, de exemplu, „Adresa biroului” și sinonimul „Adresa biroului”. Lăsați tipul implicit ca Șir, dar bifați caseta Lungime nelimitată.

Să adăugăm încă un atribut 1C în același mod, trebuie doar să selectăm tipul boolean, să-l numim „WorksOnExit”.

Cum se afișează detaliile pe formularul 1C (client gros 1C)

Să deschidem ramura Forms din același director. Pentru a deschide formularul, selectați forma elementului și faceți dublu clic pe el cu mouse-ul.

Trageți mouse-ul peste marginea formei și întindeți-l (element opțional).

În panoul configuratorului, faceți clic pe butonul „Plasare date”. De asemenea, puteți utiliza meniul Formular / Plasarea datelor.

După cum puteți vedea, detaliile noastre nu sunt afișate în formular. Puneți o bifă pe ele. Și, de asemenea, casetele de selectare Inserați etichete și Plasați automat.

Cum se afișează detaliile pe formularul 1C (client subțire 1C)

Să deschidem ramura Forms din același director. Selectați forma elementului și faceți dublu clic pe el cu mouse-ul.

În fila Atribute, extindeți linia Obiect. Veți vedea o listă de detalii adăugate anterior în director.

Acum, pur și simplu trageți atributul necesar din fereastra din dreapta spre stânga și va apărea pe formular.

Detalii formular 1C

La clientul gros, formularul are propriile sale recuzite. Acestea se află în fila Detalii.

Aceste detalii nu sunt stocate în baza de date, dar pot fi utilizate pe formular pentru câmpurile necesare pentru a lucra cu formularul.

De exemplu, ați adăugat o bifă la formular. Când faceți clic pe acesta, se întâmplă ceva în formular. Valoarea casetei de selectare nu este importantă pentru dvs. (nu este necesar să o notați) - este utilizată doar pentru a schimba formularul atunci când lucrați cu acesta. În acest caz, nu folosiți un atribut de carte de referință ca date, ci un atribut de formular.

Detalii periodice 1C

În versiunea 1C 7.7, existau cerințe periodice. Semnificația lor este următoarea: semnificația recuzită este diferită la date diferite. De exemplu, valoarea pentru 1 septembrie este una, dar pentru 1 octombrie este diferită. Au aceleași recuzită.

Nu există cerințe periodice în 1C 8. Aceasta este implementată după cum urmează: