Comutatoare, aplicații obișnuite, formulare gestionate. Butoane radio, aplicație obișnuită, formulare gestionate Modificarea comenzilor de formular

În acest articol ne vom familiariza cu principalele aspecte ale lucrului cu un formular gestionat în 1C 8.3. Ce este o formă și pentru ce este? Un formular este obiectul principal prin care utilizatorul interacționează cu programul. Adică, folosind formularul, utilizatorul introduce informații în program, iar informațiile necesare utilizatorului sunt, de asemenea, afișate pe formular.

Sarcina principală a unui dezvoltator de orice formă (gestionată sau obișnuită) este să ofere utilizatorului un mecanism convenabil de interacțiune cu programul.

Platforma 1C are capacitatea de a genera orice formă a unui obiect, dar, de obicei, atunci când dezvoltă soluții de aplicație, programatorii configurează ei înșiși formularele.

Problemele de lucru cu formulare gestionate în special și cu o aplicație gestionată în general sunt discutate în detaliu în cartea „Noțiuni fundamentale de dezvoltare în 1C: Taxi. Dezvoltare gestionată de aplicații în 12 pași”. Această carte va fi de un real ajutor pentru cei care abia încep să se familiarizeze cu dezvoltarea de aplicații gestionate.

Cartea „Bazele dezvoltării în 1C: Taxi” este perfectă pentru cei care au început deja programarea și întâmpină anumite dificultăți cu acest subiect și pentru cei care programează de mult timp, dar nu au lucrat niciodată cu formulare gestionate 1C.

  1. Fără termeni tehnici complexi;
  2. Peste 600 de pagini de material practic;
  3. Fiecare exemplu este însoțit de un desen (captură de ecran);

Cod promoțional pentru o reducere de 15% - 48PVXHeYu

Uneori se pare că învățarea limbajului de programare în 1C este complicată și dificilă. De fapt, programarea în 1C este ușoară. Cărțile mele vă vor ajuta să stăpâniți rapid și ușor programarea în 1C: și „Elementele de bază ale dezvoltării în 1C: Taxi”

Învață programarea în 1C cu ajutorul cărții mele „Programare în 1C în 11 pași”

  1. Fără termeni tehnici complicati.
  2. Peste 700 de pagini de material practic.
  3. Fiecare sarcină este însoțită de un desen (captură de ecran).
  4. O colecție de probleme pentru teme.
  5. Cartea este scrisă într-un limbaj clar și simplu - pentru un începător.
  6. Cartea este trimisă prin e-mail în format PDF. Poate fi deschis pe orice dispozitiv!


Dacă această lecție te-a ajutat să rezolvi vreo problemă, ți-a plăcut sau ti-a fost utilă, atunci poți să-mi susții proiectul donând orice sumă:

Puteți plăti manual:

Yandex.Bani - 410012882996301
Web Money - R955262494655

Alăturați-vă grupurilor mele.

Știm cu toții că compania 1C a avut multe versiuni diferite ale platformei 1C; acum vom fi interesați de una dintre cele mai recente versiuni la momentul scrierii acestui articol, acestea sunt versiunile 1C 8.2 și 1C 8.3. Dacă ați trebuit să lucrați în ambele versiuni, atunci cel mai probabil a observat diferențe în interfețele acestor versiuni, pentru utilizatori diferă doar ca aspect. În esență, o alegere aplicație obișnuită sau gestionată spune sistemului ce formulare să afișeze să ruleze, regulate sau controlate, precum și ce client de aplicație va fi utilizat implicit, gros sau subțire. Pentru informații mai detaliate despre clienți, citiți articolul „Ce sunt clienții grosi și subțiri în 1C, precum și diferențele lor.”

Aplicație obișnuită 1C (forme obișnuite, interfață obișnuită, versiunea 1C 8.2)

În 1C 8.2 este posibil să funcționeze numai cu forme obișnuite, în modul obișnuit de aplicare. Imaginea de mai jos prezintă baza de date în modul de operare „aplicație obișnuită 1C” (formulare obișnuite).

Aplicație gestionată 1C (formulare gestionate, interfață gestionată, versiunea 1C 8.3)

Pe platforma 1C 8.3 putem lucra atât cu forme obișnuite (în modul de compatibilitate), cât și cu cele gestionate. în plus formularele gestionate au două tipuri de afișare, acesta este standard și taxi. Un exemplu de configurație 1C 8.3 cu formulare standard gestionate este prezentat mai jos, iar după aceasta este afișată interfața „Taxi”.

Care este diferența dintre o aplicație 1C obișnuită și gestionată?

După cum am aflat deja o aplicație obișnuită și o aplicație gestionată sunt aceste tipuri de lansare a unui program 1C. Mai mult, în funcție de valoarea tipului de lansare 1C ( aplicație obișnuită sau gestionată), o interfață specifică va fi încărcată implicit ( forme regulate sau gestionate), prin urmare, există atât de multe sinonime pentru acest concept. Dorim să remarcăm că diferențele dintre interfețe sunt destul de semnificative; interfața gestionată a fost complet reproiectată. În principiu, acestea sunt toate diferențele pe care le văd utilizatorii obișnuiți ai programului 1C. În ceea ce privește programatorii, interfața gestionată necesită scrierea codului modificat, deoarece dezvoltarea este deja efectuată în 1C 8.3, și nu în 1C 8.2, de aici toate consecințele care decurg. Codul trebuie, de asemenea, împărțit în client și server; acest lucru este indicat folosind directivele corespunzătoare din configurator.

Platforma 1C:Enterprise vă permite să adăugați și să modificați în mod programatic elemente ale unui formular gestionat. Să ne dăm seama de ce ar putea fi nevoie de acest lucru.

Modificarea software-ului a formularului poate fi necesară în mai multe cazuri:

  • La finalizarea configurațiilor standard pentru a facilita procedura de actualizare ulterioară. În acest caz, doar modulul formular va fi modificat. Modulele sunt mult mai ușor de actualizat decât formularele.
  • La implementarea unor algoritmi comuni. De exemplu, în subsistemul „Interzicerea editării detaliilor obiectului”, un buton poate fi creat în mod programatic pentru toate obiectele conectate la subsistem pentru a permite posibilitatea de a edita detalii.
  • La implementarea unor algoritmi specifici. De exemplu, în directorul Nomenclatură, sunt create câmpuri pentru editarea detaliilor suplimentare.

Într-o formă gestionată, puteți adăuga, modifica și șterge în mod programatic:

  • rechizite;
  • echipele locale;
  • elemente.

Toate aceste operațiuni sunt posibile numai pe server.

Remodelarea programatică are limitări:

  • Puteți șterge numai detalii/comenzi/elemente adăugate programatic. Nu puteți șterge în mod programatic obiectele create în configurator.
  • Nu puteți atribui un atribut ca principal.

Modificarea comenzilor de formular

Pentru a gestiona compoziția comenzilor pentru un obiect ManagedForm există o colecție Echipe

    Adăuga (< ИмяКоманды >)

    Cantitate ()

    Găsi (< ИмяКоманды >)

    Șterge (< Команда >)

Colecția Teams este disponibilă atât pe client, cât și pe server. Puteți modifica colecția (metodele Add() și Delete()) numai pe server. Puteți căuta și obține numărul de elemente (metodele Find () și Count ()) atât pe client, cât și pe server.

Ca exemplu de lucru cu comenzi de formular, să creăm o nouă comandă ChangeHistory cu titlul „ChangeHistory...”, care va apela handler-ul Afișează Istoricul(). Crearea are loc atunci când formularul este deschis.

&Pe server
Procedură WhenCreatingOnServer (Eșec, Procesare standard)
Echipă = Echipe. Adăuga( „Istoria schimbărilor”);
Echipă . Acțiune = ;
Echipă . Titlu = „Istoria schimbărilor...”;
Sfârșitul procedurii
&OnClient
Procedură Connectable_DisplayHistory(Comandă)
// acțiuni de comandă
Sfârșitul procedurii

Managerul de comenzi trebuie să fie localizat pe un formular și să aibă o directivă de compilare &OnClient.

Modificarea detaliilor formularului

Citirea compoziției detaliilor formularului este efectuată de funcție Obțineți detalii(< Путь >) returnând o matrice de tip FormAttributes. Parametrul funcției specifică calea către atributul părinte (sub formă de șir). Dacă parametrul este omis sau este specificat un șir gol, sunt returnate detaliile de nivel superior.

Modificarea detaliilor se face folosind metoda Modificați detaliile(<Detalii adăugate>, <Detalii detașabile>) obiect ManagedForm. La parametri Detalii adăugateȘi Detalii detașabile Sunt transmise matrice cu elemente de tip Form Attributes.

Atenţie!

Procesul de modificare a compoziției detaliilor necesită destul de mult resurse. Forma este de fapt recreată. În acest sens, lucrul cu detaliile formularului se efectuează în modul lot.

Să creăm un nou atribut de formular cu numele Cumpărător:


AddedDetails = New Array;
Detalii adăugate. Adăugați (Atribute noi de formular(„Cumpărător”, Descriere tip nou („DirectoryLink. Contrapărți”), „Client”);

// Modificări în compoziția detaliilor
);

Schimbarea elementelor de formular

Pentru a controla compoziția elementelor unui obiect ManagedForm există o colecție Elemente. Colecția are mai multe metode:

    Introduce (< Имя>, < ТипЭлемента>, < Родитель>, < Элемент >)

    Adăuga (< Имя>, < ТипЭлемента>, < Родитель >)

    Cantitate ()

    Găsi (< Имя >)

    Mișcare(< Элемент>, < Родитель>, < МестоРасположения >)

    Șterge (< Элемент >)

Colecția Items este disponibilă atât pe client, cât și pe server. Modificați o colecție (Insert methods () , Add () , Move () și Delete () ) sunt disponibile numai pe server. Puteți căuta și obține numărul de elemente (metodele Find () și Count ()) atât pe client, cât și pe server. Elementele de colectare pot fi:

  • FormGroup;
  • FormTable;
  • FormField;
  • Butonul Formular.

Puteți atribui programatic handler-uri de evenimente elementelor de formular. Metoda este destinată acestor scopuri SetAction(< ИмяСобытия>, < Действие >) .

Să ne uităm la câteva dintre cele mai comune exemple de lucru cu comenzi, detalii și elemente de formular.

Adăugarea unei comenzi și a butonului asociat:

// Creați o comandă
Echipă = Echipe. Adăuga( „Istoria schimbărilor”);
Echipă . Acțiune = „Plug-in_DisplayHistory”; // Formularul trebuie să conțină o procedură cu numele specificat
Echipă . Titlu = „Istoria schimbărilor...”;
// Creați un buton și asociați-l cu o comandă
Element = Articole. Adăuga( „Istoria schimbărilor”, Type("FormButton" ));
Element.CommandName = „Istoria schimbărilor”;

Adăugarea unui atribut și a câmpului de intrare asociat:

// Descrierea detaliilor adăugate
AddedDetails = New Array;
Detalii adăugate. Adăuga(Propoziții de formulare noi („Cumpărător”, Descriere tip nou ( „DirectoryLink. Contrapărți”), „Client” ));
// Modificarea compoziției detaliilor
Modificați detalii (Detalii adăugate);
// Crearea unui câmp de intrare și conectarea cu atribute
Element = Articole. Adaugă(„Cumparator” , Tip(„FormField” ));
Element . Vizualizare = FormFieldView. Câmp de intrare;
Element . PathToData= "Cumparator";

Atribuirea unui handler de evenimente unui element de formular:

ArticolClient. SetAction("Când se schimbă", „Connected_BuyerOnChange”);

&OnClient
Procedură Connected_BuyerOnChange(Element)
// Acțiuni de eveniment
Sfârșitul procedurii

Atenţie!

Proceduri care sunt setate ca handler de evenimente din cod folosind metoda SetAction(), este recomandat să setați prefixul Connectable_.

Atenţie!

Puteți descărca procesarea cu exemple de căutare programatică și modificarea detaliilor, comenzilor și elementelor unui formular gestionat.

În ultima lecție ne-am uitat la asta pentru un client obișnuit (gras). În versiunea platformei 1C 8.2. Folosesc noi forme de ecran 1C 8.2. Ele sunt numite formulare gestionate 1C 8.2.

Formele gestionate 1C 8.2 sunt viitorul 1C. Ele diferă de formele obișnuite 1C 8.2 prin faptul că sunt generate automat de sistem pe baza setărilor speciale (formularele „regulate” sunt pur și simplu desenate de programator după bunul plac).

Diferențele în dezvoltarea formelor gestionate 1C 8.2 față de cele convenționale sunt semnificative. Prin urmare, ne-am adunat astăzi pentru a discuta separat despre crearea și modificarea formularelor gestionate 1C 8.2.

Formulare gestionate 1C 8.2

Dacă ați mai dezvoltat configurații 1C, când deschideți editorul de formulare gestionate 1C 8.2, veți fi imediat nedumerit de faptul că este imposibil să influențați deloc formularul 1C 8.2 cu mouse-ul.

Nu puteți modifica formularul 1C 8.2, nu puteți muta un element, nici măcar nu puteți vizualiza proprietățile câmpului ca înainte - făcând dublu clic pe câmpul din formularul 1C 8.2.

Acum, baza pentru dezvoltarea unui formular 1C 8.2 nu este legarea câmpurilor la coordonatele din formular, ci setărilor speciale. Sistemul generează automat o formă controlată 1C 8.2 pe baza acestor setări.

Setările constau dintr-o listă de elemente de formular 1C 8.2 situate în editorul din colțul din stânga sus. Elementele formularului 1C 8.2 includ:

  • Rechizite
  • Comenzi (un concept nou în 1C 8.2, poate arăta ca butoane sau elemente de meniu)
  • Grupuri (pentru combinarea detaliilor și comenzilor).

În consecință, setările pentru aceste elemente nu se află în proprietățile câmpurilor, ci în proprietățile acestor elemente de setare (meniul clic dreapta, elementul Proprietăți).

Cum funcționează formularele gestionate 1C 8.2

Lucrul cu formularele gestionate 1C 8.2 este diferit pentru utilizator. Au mai multe capacități, dar sunt neobișnuite pentru cei care lucrează cu 1C de mult timp.

În primul rând, aranjarea elementelor obișnuite pe formularul 1C 8.2 este diferită. Bara de comandă este întotdeauna în partea de sus.

Partea stângă a panoului de comandă este personalizabilă. De obicei, conține butoane standard precum Înregistrare și Postare.

Partea dreaptă a panoului de comandă este noul meniu standard al formularului 1C Toate acțiunile. Acest meniu vă permite să gestionați formularul 1C 8.2 după cum doriți, similar cu modul în care în raportul ACS setările vă permit să schimbați în mod semnificativ aspectul raportului.

Elemente de meniu arbitrare 1C Toate acțiunile

În funcție de faptul că acest formular 1C 8.1 aparține unuia sau altuia, meniul este plin cu elemente care vă permit să gestionați acest obiect. De exemplu, dacă acesta este un formular de listă de directoare, atunci vor exista comenzi precum Creare sau Editare.

Element Personalizare listă de meniu 1C Toate acțiunile

Dacă există o listă pe formularul 1C 8.2, atunci meniul are comanda Configurare listă și Afișare listă.
Dacă comanda Listă de ieșire vă este deja familiară - vă permite să salvați orice listă în 1C în Excel / să o imprimați, atunci a doua comandă este nouă.

După cum ați observat deja, nu mai există butoane de selecție în panoul de comandă a listei. În schimb, a apărut un buton Găsiți, a cărui funcționare (precum și poziționarea dezactivată în prezent a cursorului în listă la tastare) are unele reclamații.

Funcționalitatea butonului Găsiți nu este, desigur, comparabilă cu selecțiile, dar acestea nu au dispărut!
Acestea sunt acum localizate în elementul de meniu Personalizare listă. Selectarea se poate face acum prin orice câmp și, pe lângă acesta, puteți face sortarea și formatarea condiționată în același mod ca și în rapoartele ACS.

Element Schimbați forma meniului 1C Toate acțiunile

Elementul de formular Modificare vă permite să modificați în mod similar nu numai lista din formularul 1C 8.2, ci și formularul 1C 8.2 în sine.

Utilizatorul poate activa sau dezactiva independent vizibilitatea câmpurilor de pe formularul 1C 8.2, lățimea și înălțimea, activarea câmpului implicit la deschidere etc.

Folosind formularele gestionate 1C 8.2 și formularele obișnuite 1C

În mod implicit, formularele 1C obișnuite sunt utilizate în configurațiile pentru clientul gros (obișnuit) 1C, iar formularele gestionate sunt utilizate în configurațiile pentru clienții subțiri și web ai 1C. Cu toate acestea, ambele forme 1C pot fi utilizate în orice configurație, inclusiv simultan.

Pentru a face acest lucru, trebuie să introduceți proprietățile de configurare (elementul superior din fereastra de configurare).

În proprietățile de configurare din 1C 8.2, au apărut două noi casete de selectare care vă permit să activați utilizarea non-standard a formularelor 1C.

Crearea formularelor gestionate 8.2

Adăugarea unui nou formular 1C 8.2 se face în același mod ca înainte - folosind butonul Ins de pe tastatură sau butonul Adaugă. Pentru a introduce unul existent, faceți dublu clic pe acesta cu mouse-ul.

În mod implicit, va fi creat formularul (obișnuit sau gestionat) care este instalat în configurație (vezi proprietatea Mod lansare principală în proprietățile de configurare. Dacă ați activat permisiunea de a utiliza ambele tipuri de formulare în configurație - în designerul de formulare , care se va deschide imediat - puteți selecta formularele de tip.

Designerul vă va solicita să selectați tipul de formular - formular element, formular listă. Aici puteți adăuga sau elimina panouri de comandă din formular. Cel mai adesea, aceste setări sunt lăsate ca atare, în mod implicit.

Se deschide un formular, completat implicit - toate detaliile obiectului 1C care există au fost adăugate la acesta. Puteți bifa lista specifică de câmpuri obligatorii din a doua filă a designerului.

Editorul de formulare este format din trei secțiuni.

  • În colțul din stânga sus există o listă de elemente de formular. Este format din câmpuri, comenzi și grupuri care vă permit să combinați elemente. Lista comenzilor poate fi vizualizată separat în fila Interfață de comandă.
  • În colțul din dreapta sus există o listă cu detaliile formularului și detaliile obiectului disponibile (deschideți crucea de lângă atributul Object).
  • Mai jos este o previzualizare a formularului rezultat.

Puteți trage detaliile disponibile spre stânga și va deveni un element de formular (un câmp din formular).

Dacă trebuie să adăugați un buton sau un element de meniu, în partea dreaptă a filei Comenzi, trebuie să creați o comandă nouă. Acesta este un wrapper pentru o funcție din modulul formular. Pe lângă specificarea funcției care va fi apelată, puteți atribui o reprezentare - de exemplu, o imagine, precum și dependența vizibilității de opțiunea funcțională.

Comenzile sunt, de asemenea, trase spre stânga. Dacă părintele este bara de comandă, atunci va fi un buton din bara de comandă - altfel doar un buton.

Nu puteți doar să glisați și să plasați atributele obiectului/formularului în lista de elemente de formular (câmpuri), ci și să le adăugați pur și simplu (butonul Adăugare sau Ins). În special, puteți crea un nou obiect formular – Grup.

Grupul poate fi un panou de comandă (cursorul trebuie să fie pe linia Formular). Apoi trageți comenzi în el și acestea devin butoane.

Grupul poate fi „regulat”. Atunci acesta este un mod de grupare a câmpurilor atât pe verticală, cât și pe orizontală. Numele grupului poate fi eliminat din proprietăți.

Un grup poate fi un panou (pagină). Grupul adăugat de sus este un panou, iar grupurile imbricate de acest tip sunt pagini. Câmpurile sunt deja trase pe pagini.

Elementele de formular care nu sunt necesare sunt eliminate prin ștergerea elementelor de formular din listă.
Poziția câmpului pe formular este determinată de ordinea în lista de elemente (verticală) sau prin utilizarea grupurilor (orizontală). Lățimea și înălțimea sunt stabilite în proprietățile elementului de formular.

Proprietățile elementului de formular au fost extinse semnificativ și conțin multe lucruri utile - atât controlul aspectului (butoane de selectare și ștergere), cât și verificarea valorilor implicite.

Proprietățile formularului în sine, inclusiv dimensiunile sale, sunt stabilite la elementul rădăcină al formularului cu același nume Form.

Managerii de evenimente (răspunsurile la acțiunile utilizatorului) sunt acum împărțiți în două tipuri. Vechi – ca și înainte, ele sunt indicate în proprietățile formularului și câmpurilor (de exemplu, OnChange și OnOpening the form). Cele noi au devenit comenzi și sunt folosite pentru elemente de meniu și butoane.