1. Afirmația problemei
În acest articol, vom examina procesul de scriere a celei mai simple procesări externe a umplerii unei părți de masă în 1C 8 pentru configurații care utilizează o aplicație obișnuită. De exemplu, să luăm următoarea sarcină: "În configurația 1C: Contabilitate 2.0, creați o procesare externă de umplere a părții de masă. Mărfurile documentului Realizare bunuri și servicii. completați datele din partea tabelară a documentului de primire a bunurilor și a serviciilor. " Astfel, trebuie să umplem bunurile de vânzare pe baza bunurilor de primire, această sarcină este adesea întâlnită în practica reală a programatorului 1C.
2. Crearea unei procesări externe
Să mergem la 1C 8 în modul Configurator. Folosind meniul File -> New sau pictograma New document, vom crea o nouă prelucrare externă.
În câmpul Nume, să spunem: "Cea mai simplă umplere a părții de masă" și salvați procesarea externă pe hard disk utilizând meniul File -> Save sau pictograma Save sau comanda rapidă Ctrl + S.
Pentru a selecta documentul de primire, avem nevoie de un formular separat. Selectați sucursala Form și utilizați același buton - Adăugați creați formularul extern de procesare. Se deschide fereastra de designer de formular. pe prima pagină a constructorului, nu este nevoie să faceți modificări, așa că faceți doar clic pe butonul Următor.
Pe pagina a doua a designerului, trebuie să selectăm documentul necesar (astfel încât acesta să apară pe formularul creat) și să faceți clic pe butonul Terminare.
Apoi, formularul creat se va deschide, trebuie să îl selectăm pe utilizator și să îl închidă. Prin urmare, când faceți clic pe butonul Executare, formularul trebuie doar să se închidă. Pentru a implementa acest lucru, selectați butonul Execute. faceți clic pe acesta cu butonul drept al mouse-ului și selectați Proprietăți. În proprietățile butonului, în linia de acțiune, selectați acțiunea - Închidere. La această lucrare cu formularul este finalizată, o vom închide.
Să începem programarea procesării umplerii părții de masă. Să mergem la modulul obiectului de procesare extern (în panoul de jos al butonului de procesare Acțiuni -> Deschideți modulul obiectului).
În aceasta, trebuie să creați o procedură de export Initialize.
Rețineți că procedura Initialize. precum și toți parametrii săi, sunt obligatorii pentru prelucrarea externă a umplerii părții de masă. dacă nu o creați sau nu specificați toți parametrii, procesarea dvs. pur și simplu nu va funcționa.
Acum să începem să scriem cod. În primul rând, vom crea o variabilă pentru partea de masă a documentului Realizare bunuri și servicii. pe care o vom umple.
La executarea procedurii, parametrul Object va conține obiectul document pe care îl umplem, iar în Numele Table Table, șirul cu numele părții de tabel pe care o completăm. Astfel, această linie de cod primește partea tabelară a documentului care urmează să fie completat de numele său.
Avem nevoie ca utilizatorul să selecteze primirea de bunuri și servicii. așa că să scriem codul de deschidere al formularului de selecție a documentelor. Mai întâi, obținem această formă într-o variabilă, folosind metoda de procesare externă.<Форма>, <Владелец>, <КлючУникальности>). Este suficient să umplem doar primul parametru al acestei metode, trecând acolo o linie cu numele formularului nostru.
Acum deschide formularul primit, folosind deschiderea modal (până când formularul este deschis toate celelalte ferestre 1C disponibile), deoarece cu această metodă deschiderea în continuare a codului nostru în procedura inițializează nu va fi executat până când utilizatorul se închide formularul.
După ce utilizatorul închide formularul, trebuie să verificăm dacă documentul Inbox este plin (în cazul în care documentul de primire nu a fost selectat). Dacă, după verificarea documentului de livrare, este gol, atunci prelucrarea ulterioară nu are sens și ar trebui întreruptă.
Pentru a verifica caracterul complet al elementelor de recuzită, se utilizează aici funcția context globală. ValueFilled (<Значение>). verifică dacă valoarea trecută în parametru diferă de valoarea implicită a aceluiași tip. Procedura de Raportare afișează textul specificat în fereastra de mesaj 1C 8. Cuvântul de retur întrerupe procedura.
Să începem să scriem o interogare care va selecta datele din secțiunea tabelă a documentului Bunuri din primirea bunurilor și serviciilor. Creați o interogare nouă:
În parametrul de cerere vom transmite linkul la documentul de primire selectat, acest parametru va fi necesar pentru a impune o condiție pe document în cerere.
Vom scrie textul solicitării, vom face acest lucru folosind Designerul de interogări. Nu este recomandat să scrieți textul cererii manual, nu este eficient și durează mult. Mai întâi, scrieți o linie:
Puneți cursorul între caracterele ghilimelelor, faceți clic pe butonul din dreapta al mouse-ului și selectați elementul Generator de interogări .... După aceasta, vi se va solicita să creați o nouă interogare, apăsați butonul "OK". Fereastra proiectantului se deschide, în partea stângă a acestuia sunt localizate toate tabelele de baze de date disponibile, avem nevoie de Documentul de primire a elementelor de service. Găsiți-l și dezvăluie cu simbolul „+“ Selectați tabelul Bunurilor și trageți-l în a doua parte a constructorului ecranului, care se numește tabelele (muta, de asemenea, tabelul dorit se poate folosi butonul „>“).
Deschideți acum tabelul "+" pe care l-am selectat (primirea articolelor de servicii) și trageți câmpurile necesare pentru a umple câmpul în cea de-a treia parte a ecranului proiectantului, numit - câmpuri. Toate câmpurile disponibile nu vor fi selectate, ne limităm la un astfel de set: Nomenclatură, Cantitate, Preț, Sumă, BET, Suma TVA.
Deoarece avem nevoie doar de datele unui document de chitanță (pe care l-am ales înainte de începerea umplerii), atunci în fila "Condiții" vom impune o condiție privind referința documentului prin intermediul parametrului pe care l-am trecut.
Creați textul de interogare în constructor pe acest buton finalizat, faceți clic pe butonul "OK". Ca rezultat, avem următorul text al interogării:
Cererea creată a fost lăsată să se execute și să se descarce în variabila:
Variabila Rezultat stochează un tabel de valori cu rândurile din secțiunea de tabel din secțiunea Bunuri din documentul selectat Primirea bunurilor și serviciilor. Acum puteți începe să completați secțiunea de masă a Bunurilor pentru implementarea noastră. Dar, înainte de a completa datele, trebuie să le curățați, în cazul în care există deja câteva linii.
Folosind o buclă Pentru fiecare, să trecem printr-o tabelă de valori cu rezultatele interogării.
În acest ciclu, vom crea și completați liniile din secțiunea tabelă a documentului Realizare bunuri și servicii. Putem crea un nou rând folosind variabila TabularChange. prin care puteți face cu ea orice acțiune.
Completați fila linia creată. părți ale datelor din șirul de rezultate ale interogării utilizând procedura contextului global - Completați valoarea de proprietăți (<Приемник>, <Источник>).
Dar datele pe care le-am completat nu sunt suficiente, pentru ca documentul să fie efectuat, este necesar să se completeze contul nomenclatorului. Pentru aceasta folosim exportul
procedură Completați facturile în contul părții componentei din modulul obiectului de document Realizarea bunurilor și serviciilor. Apelați-l utilizând parametrul Obiect (notați,
că putem apela doar proceduri de export din modulul obiectului documentului).
Aceasta completează programarea umplerii părții de masă pentru 1C 8. Procesarea poate fi utilizată. Textul integral al procedurii Initialize. arată astfel:
Următoarea parte a articolului vă va spune cum să depanați procesarea umplerii părții de masă și modul de conectare a acesteia la document.
Acum, trebuie să transformați forma creată în forma de bază de procesare. Pentru a face acest lucru, selectați-l în câmpul "Formular de procesare".
Acum puteți pune un breakpoint în locul dorit în procedura sau procedurile Initialize. Faceți clic pe butonul Run pentru a rula formularul de depanare și începeți procesarea umplerii părții de masă în modul 1C: Enterprise debug.
5. Conectarea la document
După ce procesarea umplerii este scrisă și depanată, trebuie să o conectați la documentul din care va fi executat. Pentru aceasta, mergeți la 1C 8 în modul Enterprise. accesați meniul Instrumente -> Rapoarte și procesări suplimentare -> Procesare externă suplimentară a pieselor de masă și adăugați un element nou al directorului. Utilizați butonul Înlocuiți fișierul de procesare externă pentru a adăuga fișierul procesării create pentru a completa secțiunea de tabel.
Completați dreptul de proprietate asupra prelucrării, pentru aceasta, utilizând butonul Selectare, selectăm documentul Vânzări de bunuri și servicii
Și vom indica faptul că umplutura este destinată secțiunii de masă a Bunurilor.
Apăsăm butonul OK și pe toate acestea, procesarea umplerii va fi disponibilă în secțiunea Completați în tabelul din meniul Produse Document Vânzări de bunuri și servicii. Descărcați procesarea utilizată pentru acest exemplu, puteți face clic pe link.