Parametrii prelucrării externe 1s 8.3. Adăugarea de procesare externă la baza de date. Descrierea funcției „Informații despre procesarea externă”

25.10.2019 Sfat

Blogul companiei 1C GOODWILL

Să luăm în considerare în acest articol instrucțiuni pas cu pas pentru a crea procesare externă în 1C 8.3 în modul de aplicație gestionată, vom folosi în consecință 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ă creeze cel mai simplu prelucrare externă, care va efectua o acțiune de grup în directorul „Articol”, și anume, setează procentul cotei de TVA selectat pentru grupul de articole specificat.

Activarea mecanismului de procesare externă în program

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 forme controlate).

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:

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”:

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 adăugată la formular, pur și simplu trăgând-o î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 =

| Director.Nomenclatura AS Nomenclatura

| Ș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

SprNomObject.VATRate = SelectVATRate;

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, procesarea 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

Să trecem acum la modul „1C Enterprise” și să adăugăm procesare externă:

După înregistrarea procesării în director, făcând clic pe butonul „Run” se deschide pentru execuție. Aici puteți specifica în ce secțiuni (subsisteme) programului această prelucrareși pentru care utilizatori.

Postarea Cum se creează procesare externă în 1C 8.3 (formulare gestionate) a apărut pentru prima dată pe blogul companiei 1C GOODWILL.

Secțiunea de configurare: Obiecte de aplicație

Permiteți-mi să fac o rezervare imediat: acest material este mai potrivit pentru configurații dezvoltate folosind forme controlate. cu toate acestea principii generale sunt aceleași pentru toate formele.

Pentru a crea o prelucrare sau un raport extern, trebuie doar să selectați meniul Fișier/Nou și să selectați tipul de procesare sau raport. După crearea procesării, în principiu o puteți utiliza deja. Dar pentru a-l conecta la o configurație standard ca prelucrare suplimentară sau raportul nu este suficient.

Pentru a face acest lucru, trebuie să înregistrați mai multe proceduri în modulul de procesare. Semnificația lor generală se rezumă la faptul că anunțați configurația despre ce fel de procesare este (procesare, raport, formular tipărit, completarea unei secțiuni tabelare etc.) și indicați și în ce subsistem ar trebui să fie localizată.

Acest cod este dat mai jos. Pentru procesarea dvs. trebuie să modificați mai mulți parametri.

Ei bine, în primul rând, aceasta este versiunea și numele procesării, precum și numele comenzii. După cum am scris deja, trebuie să specificați subsistemul în care va fi localizat sau un anumit obiect (director, document).
De asemenea, tipul de prelucrare și modul de utilizare. Modul sigur nu permite efectuarea de modificări în baza de date.

Funcție InformationOnExternalProcessing() Export
// Să declarăm o variabilă în care vom salva și returnăm datele necesare „în afara”
Parametri de înregistrare = Structură nouă;

// Să declarăm o altă variabilă de care vom avea nevoie mai jos
ArrayDestinations = Matrice nouă;

// Primul parametru pe care trebuie să-l specificăm este ce tip de procesare ar trebui să înregistreze sistemul.
// Tipuri valide: AdditionalProcessing, AdditionalReport, FillingObject, Report, PrintForm, CreatingLinkedObjects
Parametri de înregistrare.Insert("Vizualizare", "Procesare suplimentară");

// Acum trebuie să transmitem sub forma unei matrice de nume la ce va fi conectat VPF-ul nostru
// Rețineți că puteți seta numele în următoarea formă: Document.* - în acest caz, procesarea va fi conectată la toate documentele din sistem,
// care suportă mecanismul VPF
Array of Assignments.Add("Subsystems.RegulatedAccounting");
Parametri de înregistrare.Insert("Destinație", Matrice de destinație);

// Acum să setăm numele sub care VPF-ul va fi înregistrat în directorul extern de procesare
Parametri de înregistrare.Insert("Nume", "Analiza soldurilor negative după registru");

// Setați dreptul de procesare pentru utilizare modul sigur. Mai multe detalii pot fi găsite în ajutorul platformei (metoda SetSafeMode)
Parametri de înregistrare.Insert("SafeMode", True);

// Următorii doi parametri joacă mai mult un rol informațional, adică aceasta este ceea ce utilizatorul va vedea în informațiile pentru prelucrare
Parametri de înregistrare.Insert("Versiune", "1.0");
Parametri de înregistrare.Insert("Informații", "Analiza soldurilor negative pe registre");

// Creați un tabel de comenzi (vezi detaliile de mai jos)
CommandTable = GetCommandTable();

// Adăugați o comandă la tabel
Adăugați comanda (Tabelul comenzilor, „Analiza soldurilor negative pe registre”, „Analiza soldurilor negative pe registre”, „Formular de deschidere”);

// Salvați tabelul de comenzi în parametrii de înregistrare de procesare
Parametri de înregistrare.Insert("Comenzi", CommandTable);

// Acum să returnăm parametrii noștri în sistem
ReturnRegistrationParameters;
EndFunction

Funcția GetTableCommand()

// Creați un tabel de comenzi gol și coloane în el
Comenzi = New ValueTable;

// Cum va arăta descrierea formularului tipărit pentru utilizator
Commands.Columns.Add(„Vizualizare”, NewTypeDescription(„Rând”);

// Numele aspectului nostru, astfel încât să putem distinge comanda apelată în procesarea tipăririi
Commands.Columns.Add(„Identifier”, New TypeDescription(„String”));

// Aceasta setează modul în care ar trebui să fie apelată comanda de procesare
// Opțiuni posibile:
// - OpeningForm - în acest caz, coloana de identificare ar trebui să indice numele formularului pe care sistemul îl va deschide
// - CallClientMethod - apelează procedura de export client din modulul formular de procesare
// - Apel ServerMethod - apelează o procedură de export de server din modulul obiect de procesare
Commands.Columns.Add(„Utilizare”, New TypeDescription(„Rând”);

// Următorul parametru specifică dacă o notificare trebuie afișată atunci când începe și se termină un job de procesare. Nu are sens la deschiderea formularului
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));

// Pentru un formular tipărit, acesta trebuie să conțină șirul PrintMXL
Commands.Columns.Add(„Modificator”, New TypeDescription(„Rând”);
Echipa de întoarcere;
EndFunction

Procedură AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
// Adăugați o comandă la tabelul de comenzi conform descrierii transmise.
// Parametrii și valorile acestora pot fi vizualizate în funcția GetCommandTable
NewCommand = CommandTable.Add();
NewCommand.View = Vizualizare;
NewCommand.Identifier = Identificator;
NewCommand.Use = Utilizare;
NewCommand.ShowAlert = ShowAlert;
NewCommand.Modifier = Modificator;

Accesați meniul de sus Serviciu->->.

Apare formularul de listă a directorului extern de procesare. ÎN meniul de sus apasa butonul Adăuga.

Va apărea formularul Adăugare obiect nou. Faceți clic pe butonul de deschidere și selectați fișierul cu procesarea dorită. După ce ai ales fișierul necesar, dacă este necesar, specificați numele procesării (câmpul Nume). După aceasta, trebuie să faceți clic pe OK pentru a salva modificările făcute.

După aceasta, fereastra pentru crearea unui element de director se închide și sunteți dus înapoi la formularul de listă, care conține deja noua procesare.

Asta e tot! Procesul de adăugare a procesării la configurație este complet. Pentru a deschide această procesare mai târziu, mergeți pe calea veche: Serviciu->Rapoarte și procesări suplimentare->Tratamente externe suplimentare.

Pentru BP 3.0, ZUP 3.0, UT 11, ERP 2.0.

Procesarea externă pentru 1C:Enterprise 8 vine în mai multe tipuri. În această instrucțiune, vă voi arăta cum să atașați procesarea pentru modificarea grupului și procesarea pentru umplerea unor obiecte specifice.

Pentru primul caz, vom adăuga procesare pentru completarea directorului de nomenclatură din Excel.

Să mergem la secțiunea corespunzătoare a programului:


Este necesar ca indicatorul pentru utilizarea rapoartelor și procesării suplimentare să fie setat; urmați hyperlinkul către lista de obiecte externe:

În listă faceți clic Crea:


În caseta de dialog care se deschide, selectați fișierul dorit pentru procesare:


Cardul pentru noul obiect extern din program a fost completat, nu mai rămâne decât să îl configurați cazare(secțiuni ale programului din care va fi disponibilă prelucrarea):


Selectați o secțiune arbitrară (sau mai multe) pentru plasare:


Scrieți și închideți cardul de obiect extern:


Acum să deschidem procesarea din interfață:


Lista este goală, faceți clic Personalizați lista:


Alegeți prelucrarea noastră:


Acum este disponibil pentru selecție. Pentru a deschide procesarea, trebuie să faceți clic A executa:


Acum să vedem cum se adaugă procesarea pentru umplerea (modificarea) obiectelor specifice. De exemplu, să luăm procesarea externă, care atașează scanări elementelor selectate ale directoarelor sau documentelor de sistem. Începutul adăugării unei astfel de procesări nu este diferit de opțiunea anterioară. Diferența este că, în acest caz, locația este completată automat (și nu de secțiunea de program, ci de tipurile de obiecte de bază de date):


Dacă se dorește, lista de plasări poate fi ajustată ( nu adăugați locații suplimentare, ci eliminați cele inutile):


Pentru a accepta modificarea, trebuie notat și cardul de obiect extern.

Pentru a utiliza procesarea, trebuie să mergeți la un anumit obiect al bazei de date (din lista de plasări), să faceți clic Completatiîn panoul de comandă și selectați comanda:

În acest articol, vom scrie o procesare pentru completarea secțiunii tabelare în 1C 8.3 pentru o configurație tipică 1C:ERP 2.1. Să presupunem că scopul sarcinii este de a stabili o reducere manuală de 5% pentru toată lumea articole de nomenclatură a acestui document. Un exemplu din articol poate fi descărcat de la sau o altă prelucrare similară de la.

Această instrucțiune concepute pentru formulare gestionate (8.2 și 8.3). Pentru formele obișnuite (8.1, 8.2) puteți folosi .

Creați și salvați o nouă procesare pe computer. Mai întâi trebuie să faceți câțiva pași de înregistrare.

Deschideți modulul obiect și scrieți codul de mai jos (pot fi preluat și din procesarea dată mai sus). În general, structura nu se va schimba în funcție de situație. Sunt editați doar unii parametri de setări, precum și, dacă este necesar, numele variabilelor.

În cadrul acestui articol, nu ne vom opri în detaliu asupra înregistrării prelucrărilor externe și formulare tipăriteîn 1C. Toate aceste informații sunt în celelalte articole ale noastre.

Completarea părții tabelare a documentului

Să creăm uniforma noua prelucrare.

Acum trebuie să adăugăm o nouă comandă la formularul creat. Se presupune că va schimba automat datele din partea tabulară atât a unuia, cât și a mai multor documente (formele lor de listă) simultan, înregistrându-le ulterior.

În exemplul nostru, partea tabelară deja existentă „Produse” va fi procesată. Pentru fiecare linie va fi stabilită o reducere manuală de 5%. De asemenea, vom calcula în sine suma acestei reduceri, egală cu cantitatea de bunuri din linie înmulțită cu 0,05.

&Pe Procedura Server Execut Command(Command, Assignment Objects) Pentru fiecare Comandă Client din Assignment Objects Cycle Customer OrderObject = Comanda Clientului. GetObject() ; Pentru fiecare linie TK din obiectul comandă client. Produse Cycle LineTZ. ManualDiscountPercent = 5 ; LineTZ. Sumă manualDiscount = linie TK. Suma * 0 . 05; EndCycle ; CustomerOrderObject. Scrie() ; EndCycle ; Sfârșitul procedurii

Înregistrarea prelucrărilor externe

Porniți 1C în modul „Enterprise” și deschideți directorul „Rapoarte și procesare suplimentare”. Să-l găsim prin meniul „Toate funcțiile”.

Crea element nouîn directorul care se deschide și faceți clic pe butonul cu același nume, încărcați procesarea din fișier. Să-l plasăm simultan atât pe formularul de listă, cât și pe forma propriului card de document.

Acum, în formularul de listă de documente „Comanda clientului”, va apărea butonul „Completarea...”, care vă va permite să schimbați reducerile manuale la produse pentru mai multe documente simultan.

Acest buton va fi disponibil și în cardul documentului în sine.

Î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 adăugată la formular, pur și simplu trăgând-o î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