1s 8.3 deschideți aplicația gestionată formularul de procesare. Procesarea externă este stocată pe disc separat de baza de informații
În acest articol, vom lua în considerare instrucțiunile pas cu pas pentru crearea procesării externe în 1C 8.3 în modul de aplicație gestionată; în consecință, 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 o bibliotecă de subsisteme standard versiunea 2.0 și mai nouă.
Sarcina va fi următoarea: să creați cea mai simplă procesare externă care va efectua o acțiune de grup în directorul „Articol”, și anume, să setați procentul cotei TVA selectat pentru grupul specificat de articole.
Pentru a face acest lucru, vom face imediat setările necesare în program (luăm în considerare configurația 1C 8.3: „Enterprise Accounting 3.0” pe formularele gestionate).
Bifarea acestei casete ne oferă posibilitatea de a folosi procesarea externă.
Crearea unei noi procesări externe în 1C 8.3 folosind un exemplu
Acum să trecem la configurator. În meniul „Fișier”, selectați „Nou...”. Se va deschide o fereastră pentru selectarea tipului de fișier care urmează să fie creat. Selectați „Procesare externă”:
Se va deschide o nouă fereastră de procesare externă. Să-i dăm un nume imediat. Acesta va fi oferit la salvarea procesării pe disc:
Să adăugăm un nou formular de procesare controlată. Indicăm că aceasta este o formă de prelucrare și este cea principală:
Vom avea două detalii pe formular:
- Grup de nomenclatură – link către directorul „Nomenclatură”;
- SelectVATRate – link către transferul ratei TVA.
Creăm detaliile în coloana „Proprietăți” 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.
Ordinea detaliilor poate fi modificată folosind săgețile „Sus” – „Jos”:
Obțineți 267 de lecții video pe 1C gratuit:
Tot ce rămâne este să adăugați butonul „Instalare”. În formularele gestionate, nu puteți să adăugați un buton în 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”. În proprietățile comenzii, creați o acțiune. Selectați handlerul de comandă „Pe client”. O comandă poate fi, de asemenea, adăugată la formular prin simpla glisare a acesteia în secțiunea cu elemente de formular.
În modulul formular va fi creată o procedură cu același nume. În el vom apela procedura pe server:
&OnClient
Procedura Setați rata TVA (comandă)
SetVATRateOnServer();
Sfârșitul procedurii
În procedura de pe server, vom scrie o mică cerere și acțiuni legate de stabilirea cotei de TVA:
&Pe server
Procedura SetVATRateOnServer()
Solicitare = Solicitare nouă;
Cerere.Text =
"ALEGE
| Nomenclatură.Link
|DIN
| Director.Nomenclatura AS Nomenclatura
|UNDE
| Nomenclatură.Link ÎN IERARHIE (&Nomenclatură Grup)
| ȘI NU Nomenclatură.MarkDeletion
| ȘI NU Nomenclatură. Acesta este un Grup”;
Request.SetParameter("Grup de articole", Grup de articole);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();
În timp ce SelectRecordDet.Next() Loop
Atentat, încercare
SprNomObject.Write();
Excepție
Raport ("Eroare la scrierea obiectului """ + SprNomObject + """!
|» + DescriereEroare());
EndTempt;
EndCycle;
Sfârșitul procedurii
Ne întoarcem la fila „Formular”, adăugăm un buton la formular și îl asociam cu comanda:
Ca atare, prelucrarea noastră este gata de utilizare. Pentru a-l apela, în modul „1C Enterprise”, trebuie să mergeți la meniul „Fișier” - „Deschidere” și să selectați fișierul creat.
Cu toate acestea, lucrul în acest mod este convenabil pentru procesarea de depanare, dar nu este în întregime potrivit pentru utilizator. Utilizatorii sunt obișnuiți să aibă totul „la îndemână”, adică în baza de date în sine.
Pentru aceasta este secțiunea „Rapoarte și procesări suplimentare”.
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 funcției „Informații despre procesarea externă”
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ție InformationOnExternalProcessing() 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ă”);
CommandTable = NewValueTable;
TabZnCommands.Columns.Add("Identificator");
TabZnCommands.Columns.Add(„Utilizare”);
TabZnCommands.Columns.Add(„Vizualizare”);
NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "Deschide procesarea";
DataForReg.Insert("Comenzi", TabZnCommands);
Returnează DataForReg;
EndFunction
Pentru a înțelege mai bine ce câmpuri ale structurii de date de înregistrare trebuie utilizate, 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 unei structuri sunt necesare, mai întâi nu o puteți descrie, pur și simplu 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
Pentru a lucra cu procesare externă (și o formă de imprimare externă este, de asemenea, o prelucrare externă), există un obiect Procesare 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 un formular de procesare, fie să obțineți un obiect de procesare pentru a efectua acțiuni suplimentare cu acesta (de exemplu, pentru a apela funcții de export dintr-un modul de obiect).
Deschiderea unui formular de prelucrare extern
Pentru a deschide programatic un formular de procesare externă în 1C, utilizați funcția GetForm() obiect Procesare externă. Funcția are mai mulți parametri. Luați în considerare o simplă deschidere a formei principale de procesare:
Form = ExternalProcess. GetForm(FileAddress) ;
Formă. Deschis();
Pentru a deschide un formular minor de procesare externă, trebuie să specificați numele acestuia.
//Variabila FileAddress conține calea completă către fișierul de procesare externă
Form = ExternalProcess. GetForm(FileAddress, „MinorForm”)
;
Formă. Deschis();
Deschiderea procesării externe ca obiect
Pentru a primi procesarea externă ca obiect, se folosește o funcție Crea() obiect Procesare externă.
//Variabila FileAddress conține calea completă către fișierul de procesare externă
ProcessingObject = Procesare externă. Creați(Adresa fișierului);
În mod implicit, toate procesările sunt deschise î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ă
Procesare externă sau formular de tipărire salvat în baza de informații
În multe configurații, este posibilă salvarea formularelor tipărite externe și a procesării direct în baza de informații. Pentru aceasta este folosită cartea de referință. Procesare externă. Procesarea externă în sine este stocată ca date binare sau în atribute StocareExternalProcessing, sau în secțiunea tabelară Afiliereîn recuzită StocareExternalProcessing.
Pentru a deschide procesarea externă aveți nevoie de:
- Ia-l din depozit.
- Salvați fișierul procesat pe disc.
- Deschideți un formular sau obțineți un obiect de procesare.
- Dacă avem de-a face cu un formular tipărit extern, atunci putem completa detaliile standard Referință la obiectși apelați funcția de export Sigiliu.
//Variabila RefLink conține o legătură către elementul de director ExternalProcessings
DvData = RefLink. Stocare de procesare externă. Obține() ;
FileAddress = GetTemporaryFileName() ;
DvData. Scrie (Adresă fișier) ;
ProcessingObject = Procesare externă. Create(FileAddress, False) ;