1c deschide programatic procesarea externă. Procesarea externă sau formularul de tipărire este salvat în baza de informații

Pentru a lucra cu procesare externă (și extern formă tipărită este și prelucrare externă) există un obiect Prelucrare externă.

Să luăm în considerare două cazuri posibile:

Procesarea externă este stocată pe disc separat de baza de informații

Pentru a deschide programatic procesarea externă în 1C, trebuie să cunoașteți adresa fișierului acestuia. Cunoscând acest lucru, puteți fie să deschideți formularul de procesare, fie să obțineți obiectul de procesare pentru acțiuni ulterioare cu acesta (de exemplu, pentru a apela funcții de export din modulul obiect).

Deschiderea unui formular de prelucrare extern

Pentru a deschide programatic un formular de procesare externă în 1C, utilizați funcția GetForm() obiect Prelucrare externă. Funcția are mai mulți parametri. Luați în considerare o simplă deschidere a formei principale de procesare:


Formă = Procese externe. GetForm(FileAddress) ;
Formă. Deschis() ;

Pentru a deschide un formular extern de procesare non-principal, trebuie să specificați numele acestuia.

//Conține variabila AddressFile calea plină la fișierul de procesare extern
Formă = Procese externe. GetForm(FileAddress, „MinorForm”) ;
Formă. Deschis() ;

Deschiderea procesării externe ca obiect

Pentru a obține procesarea externă ca obiect, se utilizează funcția Crea() obiect Prelucrare externă.

//Variabila FileAddress conține calea completă către fișierul de procesare externă
ProcessingObject= Procesări externe. Creați(Adresa fișierului);

În mod implicit, toate procesările se deschid în modul sigur. Pentru a o dezactiva, utilizați următoarele opțiuni:

//Variabila FileAddress conține calea completă către fișierul de procesare externă

Procesarea externă sau formularul de tipărire este salvat în baza de informații

În multe configurații, este posibilă salvarea directă a formularelor de imprimare externe și a tratamentelor baza de informatii. Pentru aceasta, se folosește un ghid. Prelucrare externă. Procesarea externă în sine este stocată ca date binare sau într-un atribut StocareExternalProcessing, sau în secțiunea tabelară Afiliereîn recuzită StocareExternalProcessing.

Pentru a deschide procesarea externă aveți nevoie de:

  1. Ia-l din depozit.
  2. Salvați fișierul procesat pe disc.
  3. Deschideți un formular sau obțineți un obiect de procesare.
  4. Dacă avem de-a face cu un formular de imprimare extern, atunci puteți completa cerințele standard ReferenceToObjectși apelați funcția de export Sigiliu.

//Variabila ReferenceReference conține o referință la elementul de director ExternalProcessing
dvData = RefReference. StocareExternalProcessing. Obține() ;
FileAddress= GetTemporaryFileName() ;
DvData. Scrie (Adresă fișier) ;
ProcessingObject= Procesări externe. Create(FileAddress, False) ;

Luați în considerare în acest articol instrucțiuni pas cu pas pentru a crea procesări externe în 1C 8.3 în modul de aplicație gestionată, respectiv, vom folosi formulare gestionate. Și cel mai important, vom învăța cum să-l conectăm la mecanismul de „procesare externă” a configurațiilor 1C construite pe biblioteca subsistemelor standard versiunea 2.0 și mai nouă.

Sarcina va fi următoarea: să creeze cea mai simplă prelucrare externă care va efectua o acțiune de grup pe cartea de referință „Nomenclatură”, și anume, să se stabilească procentul selectat din cota TVA pentru grupul de articole specificat.

Pentru a face acest lucru, vom face imediat setările necesare în program (se consideră configurația 1C 8.3: „Enterprise Accounting 3.0” pe formulare gestionate).

Bifarea acestei casete ne oferă posibilitatea de a folosi procesarea externă.

Crearea unei noi procesări externe în 1C 8.3 prin exemplu

Acum să trecem la configurator. Selectați „Nou...” din meniul „Fișier”. Se va deschide o fereastră pentru selectarea tipului de fișier care urmează să fie creat. alege " Prelucrare externă»:

Se va deschide o nouă fereastră de procesare externă. Să-i dăm un nume chiar acum. Acesta va fi oferit la salvarea procesării pe disc:

Să adăugăm un nou formular de procesare gestionată. Indicăm că aceasta este forma de procesare și este cea principală:

Pe formular vom avea două elemente de recuzită:

  • Grupul de nomenclatură - link către cartea de referință „Nomenclatură”;
  • SelectVAT Rate – un link către lista cotei TVA.

Creăm detalii în coloana „Recuzită” din fereastra din dreapta sus. Trageți-le cu mouse-ul în fereastra din stânga sus. Noile detalii ar trebui să apară imediat în formularul de mai jos.

Secvența detaliilor poate fi schimbată cu săgețile „Sus” - „Jos”:

Obțineți 267 de lecții video 1C gratuit:

Rămâne să adăugați butonul „Instalare”. În formularele gestionate, nu puteți adăuga doar un buton la un formular. Chiar dacă îl adăugați la structura elementelor de formular, acesta nu va fi vizibil pe formularul în sine. Butonul trebuie să fie asociat cu comanda pe care o va executa. Accesați fila „Comenzi” și adăugați comanda „Setare cotă TVA”. Creați o acțiune în proprietățile comenzii. Selectați handlerul de comandă „Pe client”. De asemenea, o comandă poate fi adăugată în formular prin simpla glisare și plasare a acesteia în secțiunea cu elemente de formular.

În modulul formular va fi creată o procedură cu același nume. În ea, numim procedura de pe server:

&AtClient

Procedura Setați rata TVA (comandă)

SetVATRateOnServer();

EndProcedure

În procedura de pe server, vom scrie o mică interogare și acțiuni legate de setarea cotei de TVA:

&Pe server

Procedura SetVATRateOnServer()

Solicitare = Solicitare nouă;
Cerere.Text =
"ALEGE
| Nomenclatură.Link
| DE LA
| Director.Nomenclatura AS Nomenclatura
|UNDE
| Nomenclatură.Referință ÎN IERARHIE (&Nomenclatură Grup)
| ȘI NU Nomenclatură.Marcă de ștergere
| Și NU Nomenclatura. Acesta este Grupul”;

Query.SetParameter("Grup de nomenclatură", Grup de nomenclatură);
RequestRes = Request.Execute();
SelectDetRecords = ResRequest.Select();

În timp ce SelectDetRecord.Next() Loop

Atentat, încercare
SprNo.Object.Write();
Excepție
Raport ("Eroare la scrierea obiectului """ + SprNoobObject + """!
|» + DescriereEroare());
Sfârșitul încercării;

EndCycle;

EndProcedure

Ne întoarcem la fila „Formular”, adăugăm un buton în formular și îl asociam cu comanda:

Ca atare, procesarea noastră este gata de utilizare. Pentru a-l apela, în modul „1C Enterprise”, trebuie să accesați meniul „Fișier” - „Deschidere” și să selectați fișierul creat.

Cu toate acestea, lucrul în acest mod este convenabil pentru procesarea de depanare și nu este destul de potrivit pentru utilizator pentru a lucra. Utilizatorii sunt obișnuiți să aibă totul „la îndemână”, adică în baza de date în sine.

Aceasta este secțiunea " Rapoarte suplimentareși prelucrare”.

Dar pentru a adăuga procesarea noastră acolo, trebuie mai întâi să îi dăm o descriere și să spunem programului proprietățile sale.

Descrierea detaliilor procesării externe

Voi da un exemplu de conținut al acestei funcții. Acesta trebuie să fie exportabil și, în consecință, localizat în modulul de procesare:

Funcția DetailOnExternalProcessing() Export

DataForReg = Structură nouă();
DataForReg.Insert(„Nume”, „Setarea cotei TVA”);
DataForReg.Insert(„SafeMode”, True);
DataForReg.Insert(„Versiune”, „ver.: 1.001”);
DataForReg.Insert("Informații", "Prelucrare pentru stabilirea cotei TVA în directorul Nomenclator");
DataForReg.Insert(„Vizualizare”, „Procesare suplimentară”);

TabZnCommands = New TableValues;
TabZnCommands.Columns.Add("Identificator");
TabZnCommands.Columns.Add(„Utilizare”);
TabZnCommands.Columns.Add(„Vizualizare”);

NewLine = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewLine.Usage = "FormOpen";
NewLine.View = „Deschidere procesare”;
DataForReg.Insert("Comenzi", TabZnCommands);

Returnează DataForReg;

EndFunctions

Pentru a înțelege mai bine ce câmpuri ale structurii de date de înregistrare trebuie să utilizați, să ne uităm la detaliile directorului „Rapoarte și procesare suplimentare”:

După cum puteți vedea, totul este destul de simplu. Un singur atribut nu se potrivește: „Opțiune de lansare” - „Utilizare”. Dacă ne uităm la codul unuia dintre modulele comune, vom vedea cum apar o grămadă de aceste câmpuri:

Pentru a determina ce câmpuri ale structurii sunt necesare, mai întâi nu o puteți descrie, doar creați unul gol și apoi utilizați depanatorul. Dacă urmăriți modulele atunci când înregistrați procesarea, devine imediat clar care câmpuri sunt obligatorii și care nu.

Conectarea procesării externe în 1C 8.3



Se încarcă...
Top