Vom completa partea tabelară

1. Enunțarea problemei

În acest articol ne vom uita la procesul de scriere a celei mai simple procesări externe pentru completarea părții tabelare 1C 8 pentru configurații folosind o aplicație obișnuită. De exemplu, luați următoarea sarcină: „În configurație 1C: Contabilitate 2.0 creați procesare externă pentru completarea secțiunii tabelului Bunuri document, datele de completat sunt preluate din secțiunea tabelară Bunuri document Recepția de bunuri și servicii" Astfel, trebuie să completăm articolele de vânzare în funcție de bunurile primite, această sarcină este destul de comună în practica reală a unui programator 1C.

2. Creați procesare externă

Să mergem la 1C 8în mod Configurator. Folosind meniul Fișier -> Nou sau pictograme Document nou hai să creăm unul nou prelucrare externă.

În câmp Nume vom indica: „Cea mai simplă umplere a părții tabelare” și vom salva procesarea externă hard disk folosind meniul Fișier -> Salvare sau pictogramă Salva sau scurtătură de la tastatură Ctrl+S.

Selectarea ramurii Detaliiîn arborele de procesare a metadatelor și făcând clic pe butonul Adăuga(buton cu un plus verde) creați un nou atribut extern de procesare - DocumentReceipts, alegeți un tip pentru acesta DocumentLink Primirea Bunurilor și Serviciilor, avem nevoie de acest atribut pentru a selecta un document Recepția de bunuri și servicii, pe baza căreia se va completa implementarea.

Pentru a selecta un document de chitanță, vom avea nevoie de un formular separat. Selectarea ramurii Formeși folosind același buton - Adăuga Să creăm un formular extern de procesare. Se va deschide fereastra de proiectare de formulare; Următorul.

Pe a doua pagină a designerului trebuie să selectăm recuzita DocumentReceipts(astfel încât să apară pe formularul creat) și apăsați butonul Gata.

După aceasta, se va deschide formularul creat, trebuie ca utilizatorul să selecteze documentul de chitanță pe acesta și să îl închidă. Deci când apăsați butonul Executa Formularul ar trebui să se închidă. Pentru a implementa acest lucru, selectați butonul Executa, faceți clic dreapta pe el și selectați Proprietăți. În proprietățile butonului, în linie Acţiune alege o acțiune - Aproape. Aceasta completează munca cu formularul, să-l închidem.

3. Programare

Să începem programarea procesării de completare a părții tabelare. Să mergem la Modul obiect procesare externă (pe panoul de procesare de jos există un buton Acțiuni -> Deschide modul obiect).

În ea trebuie să creăm o procedură de export Inițializați.

Procedură Inițializați Export EndProcedure

Rețineți că procedură Inițializați, precum și toți parametrii săi, sunt obligatorii pentru prelucrarea externă a completării părții tabelare, dacă nu îl creați sau nu specificați toți parametrii, procesarea dvs. pur și simplu nu va funcționa.

Acum să începem să scriem codul programului. În primul rând, să creăm o variabilă pentru partea tabelară a documentului Vânzări de bunuri și servicii pe care le vom completa.

TabularPart = Obiect[TabularPartName];

La executarea unei proceduri într-un parametru Obiect va conține obiectul document pe care îl completăm și parametrul TabularPartName o linie cu numele părții tabelare pe care o completăm. Astfel, această linie de cod primește ca partea tabelară a documentului să fie completată după numele său.

Avem nevoie de utilizator să selecteze un document Recepția de bunuri și servicii, deci să scriem codul pentru deschiderea formularului de selecție a documentului. Mai întâi, să introducem acest formular într-o variabilă folosind metoda de procesare externă GetForm(<Форма>, <Владелец>, <КлючУникальности>) . Trebuie doar să completăm primul parametru al acestei metode, trecând acolo un șir cu numele formularului nostru.

ReceiptSelectionForm = GetForm(„Formular”);

Acum să deschidem formularul rezultat folosind o deschidere modală (în timp ce formularul este deschis, toate celelalte ferestre 1C sunt indisponibile), deoarece cu această metodă de deschidere, codul nostru ulterioară în procedură Inițializați nu va fi executat până când utilizatorul închide formularul.

ReceiptSelectionForm.OpenModal();

După ce utilizatorul închide formularul, trebuie să verificăm dacă detaliile sunt completate DocumentReceipts(în cazul în care documentul de primire nu a fost selectat). Dacă după verificare DocumentReceipts este gol, atunci procesarea ulterioară nu are sens și ar trebui întreruptă.

Dacă NU este completat cu valoare (ReceiptDocument), atunci Raport (); întoarcere; EndIf ;

Pentru a verifica dacă detaliile sunt complete, funcția context global este folosită aici ValoareComplet(<Значение>) , verifică dacă valoarea transmisă în parametru diferă de valoarea implicită de același tip. Procedură Raport afișează textul specificat în fereastra de mesaj 1C 8. Cuvânt cheie Reveniîntrerupe executarea procedurii.

Să începem să scriem o interogare care va selecta date din secțiunea tabelară Bunuri document Recepția de bunuri și servicii. Să creăm o nouă solicitare:

Solicitare = Solicitare nouă;

Request.SetParameter( „DocumentReceipts”,Document de primire);

Să scriem textul solicitării și să o facem folosind Constructor de solicitări. Nu este recomandat să scrieți manual textul solicitării, este ineficient și durează mult. Mai întâi, să scriem linia:

Solicitare.Text = "" ;

Plasați cursorul între ghilimele și apăsați butonul din dreapta mouse-ul și selectați Constructor de interogări.... După aceasta, vi se va solicita să creați o nouă cerere, faceți clic pe butonul „OK”. Se va deschide fereastra de proiectare, în partea stângă sunt toate tabelele de baze de date disponibile, avem nevoie de un document Primirea Bunurilor și Serviciilor. Să-l găsim și să-l extindem folosind simbolul „+”, selectați partea tabelară Bunuriși trageți-l în a doua parte a ecranului de designer, care se numește Mesele(De asemenea, puteți muta tabelul dorit folosind butonul „>”).

Acum să extindem tabelul pe care l-am selectat cu „+”( Primirea BunurilorServiciiMarfa) și trageți câmpurile necesare pentru completarea noastră tabelară în a treia parte a ecranului de proiectare, care se numește - Câmpuri. Nu vom selecta toate câmpurile disponibile, ne vom limita la următorul set: Nomenclatură, Cantitate, Preț, Sumă, Rată TVA, Sumă TVA.

Deoarece avem nevoie de datele unui singur document de chitanță (pe care l-am selectat înainte de a începe completarea), atunci în fila „Condiții” vom impune o condiție link-ului document folosind parametrul pe care l-am transmis.

Crearea textului de solicitare în designer este acum finalizată, faceți clic pe butonul „OK”. Drept urmare, am primit următorul text de solicitare:

Query.Text = "SELECTARE |DIN |UNDE ;

Interogarea creată trebuie doar executată și încărcată într-o variabilă:

Rezultat = Request.Run().Upload();

În variabilă Rezultat este stocat un tabel de valori cu rânduri ale părții tabelare Bunuri documentul pe care l-am ales Recepția de bunuri și servicii. Acum puteți începe să completați partea tabelară Bunuri implementarea noastră. Dar înainte de a completa datele, ar trebui să le ștergeți, în cazul în care există deja câteva rânduri acolo.

TablePart.Clear();

Folosind o buclă Pentru toată lumea Să trecem prin tabelul de valori cu rezultatele interogării.

Pentru fiecare element de rezultat din ciclul de rezultate EndCycle ;

În acest ciclu vom crea și completa rândurile părții tabelare a documentului Vânzări de bunuri și servicii. Crea linie nouă putem folosi o variabilă TabularPart, prin care puteți efectua orice acțiuni cu acesta.

NewRowTC = TabularPart.Add();

Să completăm linia creată în tabel. părți ale datelor din șirul rezultat al interogării utilizând procedura Contextul globalFillPropertyValues(<Приемник>, <Источник>) .

FillPropertyValues(NewRowTC, ResultElement);

Dar datele pe care le-am completat nu sunt suficiente pentru ca documentul să fie procesat, trebuie să completăm mai multe conturi contabile de articole. Pentru a face acest lucru, vom folosi exportul

procedură CompletațiAccountingInLineTabParts din modulul obiect document Vânzări de bunuri și servicii. Să-l numim folosind parametrul Obiect(trebuie remarcat

pe care nu putem decât să-l sunăm export proceduri din modulul obiect document).

Object.FillAccountingInLineTabPart(NewRowTCH, TabularPartName, True);

Aceasta completează programarea completării părții tabulare pentru 1C 8 finalizat. Procesarea poate fi folosită. Textul integral al procedurii Inițializați, arata cam asa:

Procedură Inițializați (Obiect, TablePartName = Nedefinit, ObjectTableField = Nedefinit) Export TabularPart = Obiect[TabularPartName]; ReceiptSelectionForm = GetForm(„Formular”); ReceiptSelectionForm.OpenModal(); „DocumentReceipts” Dacă NU este completat cu valoare (Document de primire), atunci Raportați ( „Documentul de chitanță nu este selectat” ); întoarcere; EndIf ; Solicitare = Solicitare nouă; Request.SetParameter( ,Document de primire); Query.Text = „SELECT | Nomenclatura de primire a bunurilor și serviciilor.| Cantitatea de bunuri și servicii. | Primirea Bunurilor și Serviciilor Bunuri.| Suma de primire a bunurilor și serviciilor.

| Primirea Bunurilor și Serviciilor Bunuri.

| Pretul Bunurilor si Serviciilor

|DIN 1C 8| Document. Recepția Bunurilor și Serviciilor |UNDE| Primirea de BunuriServicesProducts.Link = &DocumentReceipts" ;

Rezultat = Request.Run().Upload(); |UNDE TablePart.Clear();

Pentru fiecare element rezultat din ciclul rezultat NewRowTC = TabularPart.Add(); FillPropertyValues(NewRowTC, ResultElement);. Această procedură rulează atunci când butonul este apăsat Executa. Să numim o procedură din ea Inițializați, care se află în modulul de procesare, vom trece obiectul document la parametri Vânzări de bunuri și servicii(pe care îl vom obține de la recuzită |UNDE) și o linie cu numele părții tabelare de completat (în cazul nostru Bunuri).

Procedură ButtonExecuteApăsați(Buton) Initialize(Ref.Object.GetObject(), „Produse”); EndProcedure

Acum trebuie să faceți din formularul creat principalul formular de procesare. Pentru a face acest lucru, selectați-l în câmpul „Formular de procesare”.

Acum puteți seta un punct de întrerupere la locul dorit în procedură Inițializați sau proceduri FillPropertyValues(NewRowTC, ResultElement); depanați formularele și rulați procesarea completării părții tabelare în modul de depanare 1C: Întreprinderi.

5. Conectați-vă la un document

După ce procesarea de umplere a fost scrisă și depanată, ar trebui să o conectați la documentul din care va fi executată. Pentru a face acest lucru, să mergem la 1C 8în mod Întreprindere, să mergem la meniu Service -> Rapoarte și procesări suplimentare -> Prelucrare externă suplimentară a părților tabelare si adauga element nou carte de referință. Folosind butonul Înlocuiți fișierul de procesare extern Să adăugăm fișierul pentru procesarea umplerii părții tabelare pe care am creat-o.

Să completăm accesoriul de procesare folosind butonul Selecţie selectați un document Vânzări de bunuri și servicii

Și indicăm că umplutura este destinată părții tabulare Bunuri.

Apăsați butonul Bineși asta este tot, procesarea umplerii va fi disponibilă în meniu Completați parte tabulară Bunuri document Vânzări de bunuri și servicii. Puteți descărca procesarea utilizată pentru acest exemplu de la .

Părți tabulare există pentru multe obiecte din 1C:

  • Directoare
  • Documente
  • Rapoarte și procesare
  • Planuri de conturi
  • Planuri de tip caracteristic
  • Planuri de tip calcul
  • Procese și sarcini de afaceri

Părțile tabelare vă permit să stocați o cantitate nelimitată de informații structurate aparținând unui singur obiect.

Să ne uităm la câteva tehnici de lucru cu părți tabulare.

Cum să ocoliți partea tabulară

Pentru a parcurge partea tabelului puteți folosi o buclă Pentru toată lumea

Pentru fiecare rând din partea tabelară a ciclului

Raport (String. Atribute TabularPart) ;

EndCycle ;

La fiecare iterație în variabilă Linia Se transmite următorul rând al secțiunii tabelare. Valorile detaliilor rândului pot fi obținute prin expresie Line.AttributeName.

Cum să obțineți și să ocoliți rândurile selectate ale părții tabelare

Pentru a afișa informații din partea tabelară a unui obiect, utilizați un element de formular Câmp tabel. Pentru a activa posibilitatea de a selecta mai multe rânduri într-un câmp de tabel, trebuie să setați valoarea Multiplu la proprietatea lui Modul de selecție.

Pentru a obține o listă cu liniile selectate, utilizați următorul cod:

O buclă este folosită pentru a itera prin liniile selectate. Pentru toată lumea:

SelectedRows = FormElements. TableFieldName. SelectedRows;

Pentru fiecare rând din bucla rândurilor selectate

//conținutul buclei

EndCycle ;

Cum să selectați în mod programatic rândurile unei părți tabulare (câmpul tabelului) și să le deselectați

Pentru a deselecta în mod programatic rândurile unui câmp de tabel:

Elemente de formă. TableFieldName. SelectedRows. Clear() ;

Pentru a selecta în mod programatic toate rândurile unui câmp de tabel:

Pentru fiecare CurrentRow From TabularPart Loop
Elemente de formă. TableFieldName. SelectedLines. Adăugați(Rând curent);
EndCycle ;

Cum să ștergeți partea de masă

TabularPart. Clear() ;

Cum să obțineți rândul curent al unei secțiuni de tabel

Linia curentă este perioada în care are utilizatorul în acest moment cursorul este localizat. Pentru a-l obține, trebuie să accesați elementul de control din formularul care este asociat cu partea tabelară.

Pentru formele obișnuite, codul va arăta astfel:

Elemente de formă. TableFieldName. CurrentData;

Pentru formularele gestionate:

Elemente. TableFieldName. CurrentData;

Cum să adăugați un rând nou la o secțiune de tabel

Adăugarea unei noi linii la sfârșitul secțiunii tabelului:

NewRow = TablePart. Adaugă() ;

Adăugarea unei linii noi oriunde în secțiunea tabelului (liniile ulterioare vor fi deplasate):

NewRow = TablePart. Inserare(Index)
//Index - numărul liniei adăugate. Numerotarea liniilor începe de la zero.

NewRow. Props1 = „Valoare” ;

Cum să completați în mod programatic detaliile unui rând de tabel

Dacă trebuie să completați în mod programatic detaliile unui rând de secțiune de tabel care este adăugat de utilizator, trebuie să utilizați handlerul de evenimente secțiunea de tabel Când începeți editarea.

Procedura creată de handler are trei parametri:

  • Element- contine un element de control TabularField.
  • NewString- boolean. Conține valoare Adevărat, dacă este adăugat un nou rând de tabel și Minciună, dacă utilizatorul a început să editeze o linie deja existentă.
  • Copie- boolean. Conține valoare Adevărat, dacă utilizatorul copiază linia și Minciunăîn alte cazuri.

Să ne uităm la un exemplu. Să presupunem că trebuie să completăm detaliile secțiunii tabelare ContCont, în cazul în care se adaugă o nouă linie. Când editați o linie existentă, nu este necesar să schimbați contul de contabilitate.

Procedura TabularPartAtStartEditing(Element, NewRow, Copy)

//Dacă utilizatorul editează o linie existentă, atunci nu facem nimic
Dacă NU NewRow, atunci
Reveni;
EndIf ;

//Dacă linia este nouă, setați contul de contabilitate
TechString = Articol. CurrentData; //Obțineți rândul curent al părții tabelare
TechString. Contabilitate = Planuri de conturi. Autoportant. RequiredAccount;
EndProcedure

În acest articol ne vom uita la procesul de scriere a celei mai simple procesări externe pentru completarea părții tabelare 1C 8 pentru configurații folosind o aplicație obișnuită. De exemplu, luați următoarea sarcină: „În configurație 1C: Contabilitate 2.0 creați procesare externă pentru completarea secțiunii tabelului Bunuri document Vânzări de bunuri și servicii, datele de completat sunt preluate din secțiunea tabelară Bunuri document Recepția de bunuri și servicii" Astfel, trebuie să completăm articolele de vânzare în funcție de bunurile primite, această sarcină este destul de comună în practica reală a unui programator 1C.

2. Creați procesare externă

Să mergem la 1C 8în mod Configurator. Folosind meniul Fișier -> Nou sau pictograme Document nou hai să creăm unul nou prelucrare externă.

În câmp Nume indicați: „Cea mai simplă umplere a părții tabelare” și salvați procesarea externă pe hard disk folosind meniul Fișier -> Salvare sau pictogramă Salva sau scurtătură de la tastatură Ctrl+S.

Selectarea ramurii Detaliiîn arborele de procesare a metadatelor și făcând clic pe butonul Adăuga(buton cu un plus verde) creați un nou atribut extern de procesare - DocumentReceipts, alegeți un tip pentru acesta DocumentLink Primirea Bunurilor și Serviciilor, avem nevoie de acest atribut pentru a selecta un document Recepția de bunuri și servicii, pe baza căreia se va completa implementarea.

Pentru a selecta un document de chitanță, vom avea nevoie de un formular separat. Selectarea ramurii Formeși folosind același buton - Adăuga Să creăm un formular extern de procesare. Se va deschide fereastra de proiectare de formulare; Următorul.

Pe a doua pagină a designerului trebuie să selectăm recuzita DocumentReceipts(astfel încât să apară pe formularul creat) și apăsați butonul Gata.

După aceasta, se va deschide formularul creat, trebuie ca utilizatorul să selecteze documentul de chitanță pe acesta și să îl închidă. Deci când apăsați butonul Executa Formularul ar trebui să se închidă. Pentru a implementa acest lucru, selectați butonul Executa, faceți clic dreapta pe el și selectați Proprietăți. În proprietățile butonului, în linie Acţiune alege o acțiune - Aproape. Aceasta completează munca cu formularul, să-l închidem.

3. Programare

Să începem programarea procesării de completare a părții tabelare. Să mergem la Modul obiect procesare externă (pe panoul de procesare de jos există un buton Acțiuni -> Deschide modul obiect).

În ea trebuie să creăm o procedură de export Inițializați.

Procedură Inițializați Export EndProcedure

Rețineți că procedură Inițializați, precum și toți parametrii săi, sunt obligatorii pentru prelucrarea externă a completării părții tabelare, dacă nu îl creați sau nu specificați toți parametrii, procesarea dvs. pur și simplu nu va funcționa.

Acum să începem să scriem codul programului. În primul rând, să creăm o variabilă pentru partea tabelară a documentului Vânzări de bunuri și servicii pe care le vom completa.

TabularPart = Obiect[TabularPartName];

La executarea unei proceduri într-un parametru Obiect va conține obiectul document pe care îl completăm și parametrul TabularPartName o linie cu numele părții tabelare pe care o completăm. Astfel, această linie de cod primește ca partea tabelară a documentului să fie completată după numele său.

Avem nevoie de utilizator să selecteze un document Recepția de bunuri și servicii, deci să scriem codul pentru deschiderea formularului de selecție a documentului. Mai întâi, să introducem acest formular într-o variabilă folosind metoda de procesare externă GetForm(<Форма>, <Владелец>, <КлючУникальности>) . Trebuie doar să completăm primul parametru al acestei metode, trecând acolo un șir cu numele formularului nostru.

ReceiptSelectionForm = GetForm(„Formular”);

Acum să deschidem formularul rezultat folosind o deschidere modală (în timp ce formularul este deschis, toate celelalte ferestre 1C sunt indisponibile), deoarece cu această metodă de deschidere, codul nostru ulterioară în procedură Inițializați nu va fi executat până când utilizatorul închide formularul.

ReceiptSelectionForm.OpenModal();

După ce utilizatorul închide formularul, trebuie să verificăm dacă detaliile sunt completate DocumentReceipts(în cazul în care documentul de primire nu a fost selectat). Dacă după verificare DocumentReceipts este gol, atunci procesarea ulterioară nu are sens și ar trebui întreruptă.

Dacă NU este completat cu valoare (ReceiptDocument), atunci Raport (); întoarcere; EndIf ;

Pentru a verifica dacă detaliile sunt complete, funcția context global este folosită aici ValoareComplet(<Значение>) , verifică dacă valoarea transmisă în parametru diferă de valoarea implicită de același tip. Procedură Raport afișează textul specificat în fereastra de mesaje 1C 8 Reveniîntrerupe executarea procedurii.

Să începem să scriem o interogare care va selecta date din secțiunea tabelară Bunuri document Recepția de bunuri și servicii. Să creăm o nouă solicitare:

Solicitare = Solicitare nouă;

Request.SetParameter( „DocumentReceipts”,Document de primire);

Să scriem textul solicitării și să o facem folosind Constructor de solicitări. Nu este recomandat să scrieți manual textul solicitării, este ineficient și durează mult. Mai întâi, să scriem linia:

Solicitare.Text = "" ;

Plasați cursorul între ghilimele, apăsați butonul dreapta al mouse-ului și selectați elementul Constructor de interogări.... După aceasta, vi se va solicita să creați o nouă cerere, faceți clic pe butonul „OK”. Se va deschide fereastra de proiectare, în partea stângă sunt toate tabelele de baze de date disponibile, avem nevoie de un document Primirea Bunurilor și Serviciilor. Să-l găsim și să-l extindem folosind simbolul „+”, selectați partea tabelară Bunuriși trageți-l în a doua parte a ecranului de designer, care se numește Mesele(De asemenea, puteți muta tabelul dorit folosind butonul „>”).

Acum să extindem tabelul pe care l-am selectat cu „+”( Primirea BunurilorServiciiMarfa) și trageți câmpurile necesare pentru completarea noastră tabelară în a treia parte a ecranului de proiectare, care se numește - Câmpuri. Nu vom selecta toate câmpurile disponibile, ne vom limita la următorul set: Nomenclatură, Cantitate, Preț, Sumă, Rată TVA, Sumă TVA.

Deoarece avem nevoie de datele unui singur document de chitanță (pe care l-am selectat înainte de a începe completarea), atunci în fila „Condiții” vom impune o condiție link-ului document folosind parametrul pe care l-am transmis.

Crearea textului de solicitare în designer este acum finalizată, faceți clic pe butonul „OK”. Drept urmare, am primit următorul text de solicitare:

Query.Text = "SELECTARE |DIN |UNDE ;

Interogarea creată trebuie doar executată și încărcată într-o variabilă:

Rezultat = Request.Run().Upload();

În variabilă Rezultat este stocat un tabel de valori cu rânduri ale părții tabelare Bunuri documentul pe care l-am ales Recepția de bunuri și servicii. Acum puteți începe să completați partea tabelară Bunuri implementarea noastră. Dar înainte de a completa datele, ar trebui să le ștergeți, în cazul în care există deja câteva rânduri acolo.

TablePart.Clear();

Folosind o buclă Pentru toată lumea Să trecem prin tabelul de valori cu rezultatele interogării.

Pentru fiecare element de rezultat din ciclul de rezultate EndCycle ;

În acest ciclu vom crea și completa rândurile părții tabelare a documentului Vânzări de bunuri și servicii. Putem crea un rând nou folosind o variabilă TabularPart, prin care puteți efectua orice acțiuni cu acesta.

NewRowTC = TabularPart.Add();

Să completăm linia creată în tabel. părți ale datelor din șirul rezultat al interogării utilizând procedura Contextul global - FillPropertyValues(<Приемник>, <Источник>) .

FillPropertyValues(NewRowTC, ResultElement);

Dar datele pe care le-am completat nu sunt suficiente pentru ca documentul să fie procesat, trebuie să completăm mai multe conturi contabile de articole. Pentru a face acest lucru, vom folosi exportul

procedură CompletațiAccountingInLineTabParts din modulul obiect document Vânzări de bunuri și servicii. Să-l numim folosind parametrul Obiect(trebuie remarcat

pe care nu putem decât să-l sunăm export proceduri din modulul obiect document).

Object.FillAccountingInLineTabPart(NewRowTCH, TabularPartName, True);

Aceasta completează programarea completării părții tabulare pentru 1C 8 finalizat. Procesarea poate fi folosită. Textul integral al procedurii Inițializați, arata cam asa:

Procedură Inițializați (Obiect, TablePartName = Nedefinit, ObjectTableField = Nedefinit) Export TabularPart = Obiect[TabularPartName]; ReceiptSelectionForm = GetForm(„Formular”); ReceiptSelectionForm.OpenModal(); „DocumentReceipts” Dacă NU este completat cu valoare (Document de primire), atunci Raportați ( „Documentul de chitanță nu este selectat” ); întoarcere; EndIf ; Solicitare = Solicitare nouă; Request.SetParameter( ,Document de primire); Query.Text = „SELECT | Nomenclatura de primire a bunurilor și serviciilor.| Cantitatea de bunuri și servicii. | Primirea Bunurilor și Serviciilor Bunuri.| Suma de primire a bunurilor și serviciilor.

| Primirea Bunurilor și Serviciilor Bunuri.

| Pretul Bunurilor si Serviciilor

|DIN 1C 8| Document. Recepția Bunurilor și Serviciilor |UNDE tip ;

Rezultat = Request.Run().Upload(); |UNDE TablePart.Clear();

Pentru fiecare element rezultat din ciclul rezultat NewRowTC = TabularPart.Add(); FillPropertyValues(NewRowTC, ResultElement);. Această procedură rulează atunci când butonul este apăsat Executa. Să numim o procedură din ea Inițializați, care se află în modulul de procesare, vom trece obiectul document la parametri Vânzări de bunuri și servicii(pe care îl vom obține de la recuzită |UNDE) și o linie cu numele părții tabelare de completat (în cazul nostru Bunuri).

Procedură ButtonExecuteApăsați(Buton) Initialize(Ref.Object.GetObject(), „Produse”); EndProcedure

Acum trebuie să faceți din formularul creat principalul formular de procesare. Pentru a face acest lucru, selectați-l în câmpul „Formular de procesare”.

Acum puteți seta un punct de întrerupere la locul dorit în procedură Inițializați sau proceduri FillPropertyValues(NewRowTC, ResultElement); depanați formularele și rulați procesarea completării părții tabelare în modul de depanare 1C: Întreprinderi.

5. Conectați-vă la un document

După ce procesarea de umplere a fost scrisă și depanată, ar trebui să o conectați la documentul din care va fi executată. Pentru a face acest lucru, să mergem la 1C 8în mod Întreprindere, să mergem la meniu Service -> Rapoarte și procesări suplimentare -> Prelucrare externă suplimentară a părților tabelareși adăugați un nou element de director. Folosind butonul Înlocuiți fișierul de procesare extern Să adăugăm fișierul pentru procesarea umplerii părții tabelare pe care am creat-o.

Să completăm accesoriul de procesare folosind butonul Selecţie selectați un document Vânzări de bunuri și servicii

Și indicăm că umplutura este destinată părții tabulare Bunuri.

Apăsați butonul Bineși asta este tot, procesarea umplerii va fi disponibilă în meniu Completați parte tabulară Bunuri document Vânzări de bunuri și servicii. Puteți descărca procesarea utilizată pentru acest exemplu în partea de jos a articolului.