1c rapoarte și procesare. Adăugarea de procesare externă la baza de date

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

Apare formularul pentru lista directorului extern de procesare. Faceți clic pe butonul din meniul de sus Adăuga.

Va apărea formularul pentru adăugarea unui nou obiect. Apăsăm butonul de deschidere și selectăm fișierul cu procesarea dorită. După ce ai ales fișierul dorit, dacă este necesar, specificați numele procesării (câmpul Nume). După aceea, trebuie să faceți clic pe OK pentru a salva modificările.

După aceea, fereastra de creare a elementului de director se închide și revii la formularul de listă, în care noua procesare este deja prezentă.

Asta e tot! Procesul de adăugare a procesării la configurație este acum finalizat. Pentru a deschide ulterior această procesare, mergeți la vechea cale: Serviciu->Rapoarte și procesări suplimentare->Prelucrare externă suplimentară.

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

Există mai multe tipuri de procesare externă pentru 1C: Enterprise 8. În acest tutorial, vă voi arăta cum să atașați modificarea în bloc și să completați procesarea obiectelor specifice.

Pentru primul caz, să adăugăm procesarea pentru completarea referinței listei de stoc din Excel.

Accesați secțiunea corespunzătoare a programului:


Este necesar ca semnul utilizării rapoartelor și procesării suplimentare să fie setat, urmați hyperlinkul către lista de obiecte externe:

Faceți clic pe listă Crea:


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


Cardul unui nou obiect extern din program a fost completat, rămâne doar configurat cazare(secțiuni ale programului din care va fi disponibilă prelucrarea):


Ca locație, selectați o secțiune arbitrară (sau mai multe):


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


Acum să deschidem procesarea din interfață:


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


Noi ne alegem prelucrarea:


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


Acum să vedem cum se adaugă procesarea pentru a umple (modifica) obiecte specifice. De exemplu, să luăm prelucrare externă, care atașează scanări elementelor selectate ale directoarelor sau documentelor de sistem. Începutul adăugării unei astfel de procesări nu diferă de versiunea 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ă):


Dacă se dorește, lista de plasări poate fi ajustată ( nu adăugați plasare suplimentară, ci eliminați excesul):


Pentru a accepta modificarea, trebuie înregistrată și cardul de obiect extern.

Pentru a utiliza procesarea, trebuie să mergeți la un anumit obiect al bazei (din lista de plasare), faceți clic pe Completatiîn bara de comenzi și selectați comanda:

Atenţie!
Toată prelucrarea de pe discurile ITS este destinată în scop informațional și exclusiv pentru utilizatorii înregistrați ai ITS.

Selectarea și prelucrarea obiectelor. (Universal)

Caută obiecte în documente și directoare care îndeplinesc anumite condiții. Prelucrează rezultatele căutării.

Lista de bază de informații. (Universal)

Efectuează acumularea IB a configurațiilor tipice:

  • SCP 3.1.
  • BP 1.6.
  • UT 10.3.

Înregistrarea modificărilor pentru schimb. (Universal)

Editează, în modul aplicație gestionată, înregistrarea modificărilor la obiectele de schimb. Vă permite să modificați înregistrarea curentă pe diferite noduri. Modifică numărul de mesaje primite și trimise.

Conversia jurnalului de activitate al utilizatorului. (Universal)

Transformă într-un program, în limbajul încorporat, un jurnal de acțiuni ale utilizatorului.

Căutare text integral în date. (Universal)

Indexarea și căutarea în date.

Găsirea și înlocuirea valorilor. (Universal)

Caută și înlocuiește valorile de referință în obiectele IS.

Crearea unui jurnal tehnologic. (Universal)

Creează sau editează un fișier jurnal de proces. Are capacitatea de a configura crearea unui crash dump, de a configura condiții și evenimente, la apariția cărora informațiile vor fi scrise în acest jurnal.

Consola de joburi. (Universal)

Monitorizează lucrările de fundal și programate. Șterge, creează altele noi.

Conversia procesării externe. (Universal)

Modificarea informațiilor confidențiale. (Universal)

Schimbarea selectivă sau curățarea securității informațiilor din anumite informații.

Schimbarea detaliilor de grup. (Universal)

Modifică detaliile și părțile tabelare din documente și directoare.

Descărcarea și încărcarea utilizatorilor. (Universal)

Descarcă și încarcă utilizatorii IB într-un fișier XML.

Încărcarea datelor în baze de date externe. (Universal)

Descarcă structurile de date în DBMS extern folosind ADO în două moduri:

  • Descarca toate
  • Încărcați modificări (utilizat pentru a sincroniza modificările din IB-ul de lucru, cu IB-ul receptor). Acest mod folosește mecanisme de plan de schimb.

Suportă următorul DBMS:

  • Microsoft SQL
  • IBM DB2
  • Oracol
  • PostgreSQL
  • MySQL

Încărcarea și încărcarea datelor XML. (Universal)

Descarcă și încarcă date în IB, atât complet, cât și parțial. Este folosit pentru a transfera date între configurații care sunt similare în compoziția obiectului.

Încărcarea datelor dintr-un document de foaie de calcul. (Universal)

Încarcă date în directoare și părți tabulare din documente de foi de calcul.

Funcționează într-un client gros într-un mod de aplicație normal.

Consola de interogări. (Universal)

Este de mare ajutor în compilarea rapoartelor și crearea de interogări.

Destul de des, atunci când în timpul unei consultări devine necesar să se rezolve o problemă complexă, le sugerez clienților mei să o implementeze în programul 1C folosind fie prelucrare externă, sau placă de imprimare externă. Și nu de puține ori dau peste faptul că o persoană pur și simplu nu este familiarizată cu o astfel de posibilitate a programelor pe platforma 1C Enterprise 8. Uneori chiar mă înjură, crezând că dezvoltarea și implementarea unei astfel de procesări în configurația lor o va face. imposibil de actualizat automat programul. Că trebuie să plătești bani mari pentru actualizarea programului.

Pentru a clarifica astfel de probleme, precum și pentru a spune despre ce caracteristici utile da tratamente externe si externe tipărire a formularelor Am decis să scriu acest articol. În articol, nu voi lua în considerare latura tehnică a procesului de creare a procesării. Acest lucru va fi cel mai probabil tratat într-o altă postare. Aici voi încerca să explic însăși esența mecanismului și să dau exemple specifice de cazuri în care prelucrarea externă și formularele de tipărire pot beneficia utilizatorul.

Articolul va discuta următoarele opțiuni pentru obiecte externe conectabile suplimentare:

  • Prelucrare externă suplimentară a pieselor tabulare;
  • Forme suplimentare de imprimare externă;
  • Rapoarte externe suplimentare;
  • Prelucrare externă suplimentară.

Ce sunt procesările externe suplimentare, rapoartele și formularele de tipărire




Pentru început, aș dori să vorbesc în general despre care sunt aceste procesări externe, rapoarte și formulare tipărite. Destul de des, atunci când lucrați cu o configurație tipică, fie că este 1C ZUP sau 1C Enterprise Accounting sau o altă configurație, este nevoie de un fel de funcționalitate care nu este furnizată de dezvoltatorii 1C. De exemplu, este posibil să aveți nevoie formă tipărită, care nu este reglementat, dar este folosit pentru nevoile interne ale organizației. Sau cerut într-un anumit fel proces (schimbare, corectare) datele disponibile în baza de date. De exemplu, modificarea anumitor detalii în documente pentru perioada necesară, ceea ce este incomod de făcut manual cu cantități mari de informații.

În acest caz, există două opțiuni. Primul, putem modifica configurația în sine, programul în sine. După aceea, va înceta să fie tipic și îl va actualiza cu acelea destul de moduri simple despre care am scris nu va funcționa. Actualizarea unei configurații non-standard este un proces mai lung și mai serios, prin urmare, cu această abordare, cel mai probabil va trebui să plătiți lunar un specialist 1C pentru a actualiza programul. Al doilea o opțiune este de a dezvolta sau de a solicita dezvoltarea unei procesări externe sau a unui formular tipărit (raport). Acesta este în esență un modul extern, care este dezvoltat și în limbajul de programare 1C în Configurator, dar nu aduce modificări configurației standard. Există independent de configurația în sine. Pentru stocarea lor se folosesc directoare speciale: elementul din meniul principal „Serviciu” -> „Rapoarte și procesări suplimentare”.

Prelucrare externă suplimentară pentru completarea părților tabulare

Seminar „Hack-uri de viață pentru 1C ZUP 3.1”
Analiza a 15 hack-uri de viață contabilă în 1s zup 3.1:

LISTA DE VERIFICARE pentru verificarea salariilor în 1C ZUP 3.1
VIDEO - lunar Verificare personală contabilitate:

Salarizare în 1C ZUP 3.1
Instrucțiuni pas cu pas pentru incepatori:

Acum să aruncăm o privire la ce oportunități fiecare dintre cele patru disponibile module externe. Sa incepem cu prelucrarea externă a pieselor tabulare. Mi se pare că aceste procesări ale părților tabulare ale documentelor ilustrează cel mai pe deplin modul în care puteți modifica serios programul fără a recurge la editarea configurației tipice, ci folosind doar procesare externă.

Pentru a fi mai clar, voi da un exemplu concret din practica mea, în care, pentru a rezolva problema, am folosit prelucrarea externă a pieselor tabulare. În configurația „1C Salari și Management HR” ediția 2.5 există un document „Plată pentru sărbători și weekenduri”(acest document este scris în detaliu). ÎN tip formular acest document oferă posibilitatea de a completa automat partea tabelară de către angajați „Lucrând în vacanță”.

Contabilul a solicitat implementarea posibilității de completare a acestui document de către angajații ale căror zile lucrătoare, conform programului, se încadrează în weekend, i.e. „Se lucrează în weekend”.

Acest fișier a fost încărcat în director „Prelucrarea externă a pieselor tabulare”(articolul de meniu „Instrumente” -> „Rapoarte și procesare suplimentare” -> „Prelucrare externă suplimentară a părților tabelare”). La crearea unui element din acest director, a fost indicat cărui document aparține procesarea descărcată - „Plată pentru sărbători și weekenduri ale organizației”, precum și cărei secțiuni tabelare - „Angajați”. În exemplul nostru, documentul are o parte tabelară, dar în alte documente pot exista mai multe și, prin urmare, este necesar să se indice în mod specific căruia dintre ele aparține procesarea.

Ca urmare a adăugării acestei procesări în director „Prelucrare externă suplimentară pentru umplerea pieselor tabulare”în documentul „Plată pentru sărbători și weekenduri” propriu-zis, va apărea butonul „Umplere” cu o listă derulantă în care va fi posibilă începerea acestei procesări. În cazul nostru, butonul „Umpleți duminicile” este disponibil în lista derulantă. Prin apăsarea acestuia pornește algoritmul conținut în procesare. În acest exemplu, secțiunea tabelară va fi completată cu angajați ale căror zile lucrătoare au căzut într-o zi liberă. Vă rugăm să rețineți că acest buton nu a existat înainte (captura de ecran de mai sus).

Acest mecanism vă permite să rezolvați o gamă foarte largă de probleme fără a rafina configurația în sine. Prin urmare, folosesc destul de des această oportunitate pentru a implementa sarcinile clientului.

Plăci de imprimare externe suplimentare

Seminar „Hack-uri de viață pentru 1C ZUP 3.1”
Analiza a 15 hack-uri de viață contabilă în 1s zup 3.1:

LISTA DE VERIFICARE pentru verificarea salariilor în 1C ZUP 3.1
VIDEO - autoverificare lunară a contabilității:

Salarizare în 1C ZUP 3.1
Instrucțiuni pas cu pas pentru începători:

Această opțiune este foarte asemănătoare cu cea anterioară. Cel mai probabil ați văzut și știți că aproape fiecare document și chiar unele elemente ale directoarelor au formulare tipărite. Ele, ca reguli, sunt situate în colțul din dreapta jos al elementului de formular al directorului sau al documentului. Uneori, formularele tipărite standard nu sunt suficiente. De exemplu, o organizație poate avea propria formă de contract de muncă. Permiteți-mi să vă reamintesc că formularul tipărit tip „Contract de muncă” face parte din formularul cărții de referință „Angajați”.

Puteți adăuga propriile formulare tipărite ale directorului. Pentru a face acest lucru, este creat un formular de imprimare extern cu extensia „.epf”. Apoi este creat un element de director pentru acesta „Plăci de imprimare externe suplimentare”(elementul de meniu „Serviciu” -> „Rapoarte și procesări suplimentare”) și la acest element al directorului se adaugă un fișier cu extensia „.epf”. De asemenea, este necesar să se precizeze pentru ce document sau director se adaugă procesarea.

Ca urmare, în alcătuirea formularelor tipărite va apărea încă o formă a elementelor directorului „Angajați” - „Contract de muncă (LLC Alfa)”, care nu exista înainte. Si ea aspect iar completarea datelor este definită de programator în fișierul „.epf”.

Această capacitate de a adăuga formularele de imprimare necesare pentru documente și directoare este, de asemenea, foarte des solicitată și, în opinia mea, este o funcționalitate destul de convenabilă a programelor de pe platforma 1C Enterprise.

Rapoarte externe suplimentare

În acest caz, se poate dezvolta raport extern. Acesta este un fișier în format „.erf”. Acesta este fișierul care va determina aspectul raportului, ce date de configurare va folosi și pe care le va solicita utilizatorului (de exemplu, perioadă, selecție pe angajat sau divizie). Fișierul este creat în configuratorul 1C în limbajul de programare 1C.

Un raport extern poate fi stocat ca parte a configurației utilizând directorul „Rapoarte externe suplimentare” (articolul de meniu „Instrumente” -> „Rapoarte și procesare suplimentare”). Nu sunt legate de un anumit document sau director, aceste informații nu sunt necesare.

Cu această opțiune de stocare, raportul este lansat din același director (dublu clic).

De asemenea, puteți rula un raport extern utilizând elementul de meniu „Fișier” -> „Deschidere”. Această opțiune poate fi utilizată dacă vă este mai convenabil să stocați rapoarte externe nu ca parte a programului, ci pur și simplu în foldere de pe computer.

Prelucrare externă suplimentară

Prelucrare externă au aproximativ același sens ca rapoartele externe. Dar, spre deosebire de rapoarte, care sunt folosite pentru a vizualiza datele bazei de informații într-un format ușor de utilizat, procesarea este concepută pentru a schimba, edita sau transforma datele. baza de informatii. Gama de sarcini rezolvate cu ajutorul prelucrărilor externe este destul de largă.

De exemplu, procesare pentru descărcare extrase de plată salariile. În ciuda prezenței procesării standard în ZUP (citiți despre aceasta), uneori poate să nu fie potrivit pentru o anumită bancă și se dezvoltă o procesare externă care convertește și încarcă informații în formatul dorit.

voi aduce încă un exemplu procesare destul de nepretențioasă, dar destul de populară. Dacă în 1C ZUP documentul „Transferul impozitului pe venitul personal la buget” nu este menținut în timpul anului, atunci când se formează impozitul pe venitul 2 persoane pentru anul, câmpul „Listat” pentru fiecare angajat va fi zero, ceea ce de obicei nu este Adevărat. Introducerea documentului „Transferul impozitului pe venitul personal la buget” pentru întregul an poate fi destul de obositoare, având în vedere particularitățile documentului în sine. Dar puteți face procesări externe, care în 2-NDFL generat va completa pur și simplu câmpul „Listat” pentru fiecare angajat, pe baza valorilor din câmpul „Calculat”. De obicei, contabililor le place foarte mult această opțiune.

Procesarea externă are exact aceleași două opțiuni de stocare și lansare: fie folosiți referința „Prelucrare externă suplimentară”(articolul de meniu „Instrumente” -> „Rapoarte și procesare suplimentare”) sau elementul de meniu principal „Fișier” -> „Deschidere”.

Asta e tot pentru azi!

Pentru a fi primul care află despre noile publicații, abonați-vă la actualizările blogului meu:

Luați în considerare crearea unui raport extern în 1s 8 fără a utiliza un sistem de compunere a datelor. Pentru a crea un raport extern, vom folosi configurația Contabilitate 2.0, datele inițiale: „Scrieți un raport pe contul 62 contabilitateîn care se vor afișa în context cifrele de afaceri pentru perioada specificată ContrapartideȘi Contractele contrapartidelor.

1. Creați un raport

În primul rând, vom crea un fișier de raport extern, pentru aceasta vom merge la 1s 8 în modul Configurator, mergi la meniu Fișier -> Nou sau faceți clic pe pictogramă document nou.

Selectați un articol din listă Raport extern. După crearea unui raport extern, dați-i un Nume (de exemplu Cel mai simplu Raport) și salvați-l pe disc. Vom adăuga, de asemenea, două elemente de recuzită: Începutul perioadeiȘi EndPeriod tip data de, vom avea nevoie de ele pentru a limita intervalul de timp pentru eșantionarea datelor atunci când generăm un raport.

2. Creați un aspect de raport extern

Pentru a genera un raport în 1s 8, aveți nevoie de un aspect, acesta este un șablon pentru ieșirea datelor în care toate parametrii doriti, se desenează tabele etc. Să adăugăm un nou aspect, pentru aceasta, în arborele de metadate ale raportului, selectați elementul Aspecteși apăsați butonul Adăuga, la creare, selectați tipul pentru aspect document foaie de calcul.

Aspectul nostru va avea 4 zone:

  • Antet - în această zonă vom afișa numele raportului, perioada pentru care a fost generat și antetul tabelului;
  • Date contrapartidei - in aceasta zona vom afisa in tabel datele contrapartidei;
  • Date despre acordul contrapartidei - in aceasta zona vom afisa in tabel datele privind contractul contrapartida;
  • Subsol - în această zonă vom afișa valorile totale pentru întregul raport pentru câmpurile Venituri și Cheltuieli.

Să începem să creăm zone de aspect. Pentru a crea o zonă în aspect, selectați numărul necesar de linii și faceți clic Tabel de meniu -> Nume -> Atribuire nume(Sau Ctrl+Shift+N). În zonă Pălărie scrieți numele raportului: Cifra de afaceri 62 de conturi, desenați cu instrumentul Frontiere antetul raportului, precum și setați parametrii Începutul perioadeiȘi EndPeriod. Cu ajutorul parametrilor, puteți afișa datele necesare în raport, de asta ne vom ocupa în următoarea etapă de dezvoltare și anume la scrierea codului de program al raportului. Pentru a crea un parametru într-un aspect, selectați celula dorită, scrieți numele parametrului în el (fără spații), faceți clic dreapta pe el, în meniul care se deschide, selectați Proprietăți. În proprietățile celulei din filă Aspect selectați umplutura Parametru.

După aceea, în celulă, numele parametrului va fi cuprins între paranteze unghiulare (”<>„). Drept urmare, zona Pălărie ar trebui sa arate asa:

In regiunea de DataContractor vom crea parametri pentru afișarea numelui contrapărții, precum și pentru venituri și cheltuieli pentru contul 62, folosind instrumentul Frontiere Să proiectăm zona sub forma unui rând de tabel.

In regiunea de DataAgreementContractor vom crea parametri pentru afișarea numelui contractului, precum și pentru venituri și cheltuieli pentru contul 62, folosind instrumentul Borders, vom aranja zona sub forma unui rând de tabel. Să facem o mică liniuță înaintea parametrului Acord de contrapartidă(acest lucru se poate face prin divizarea și îmbinarea celulelor. Faceți clic dreapta pe celulă -> Combina sau Rupe celula), este necesar pentru a se arăta în raport că linia de contract este mai jos în ierarhie decât linia de contrapartidă.

In regiunea de subsol Să creăm parametri pentru totalurile pentru încasări și cheltuieli.

Ca rezultat, ar trebui să obținem un aspect ca acesta:

3. Creați un formular de raport

Pentru a afișa datele, setați perioada de formare și butoanele Formă raportul nostru va avea nevoie de un formular. Pentru a crea un formular, găsiți elementul în arborele de metadate al raportului extern Formeși apăsați butonul Adăuga. Pe prima pagină a generatorului de formulare, nu trebuie să faceți nicio modificare, doar faceți clic pe butonul Mai departe.

Pe pagina următoare constructor, selectați ambele elemente de recuzită disponibile( Începutul perioadei, EndPeriod) pentru plasarea pe formular.

Ca rezultat, obținem această formă:

Dar în această formă nu ni se potrivește, îi vom face câteva modificări:

  • Trageți butonul Formă din panoul de jos al raportului până în cel de sus (acest lucru va fi mai convenabil pentru utilizator);
  • Întindeți forma vertical și orizontal;
  • Aranjați câmpurile Începutul perioadeiȘi EndPeriod orizontal;
  • Adăugați un control Câmp document foaie de calcul în formular (raportul nostru va fi afișat în el), dați-i un nume TabDoc;
  • Să creăm un buton de selecție a perioadei (când este apăsat, va fi afișat un dialog cu o selecție convenabilă a perioadei dorite). Nu vom scrie încă codul programului pentru acesta, așa că pur și simplu vom plasa butonul lângă câmpurile perioadei.

Ca rezultat, formularul nostru va arăta astfel:

4. Programare

După crearea formularului de raport, să începem programarea. Pentru început, să creăm o procedură pentru afișarea unui dialog de selecție a perioadei (am creat deja un buton pentru aceasta în etapa anterioară). Faceți clic dreapta pe buton și selectați elementul de meniu Proprietăți, în proprietățile butonului accesați fila Evoluții, unde folosind butonul cu pictograma lupă vom crea o procedură Buton1 Apăsațiîn modulul formular.

Puteți comuta între formular și modulul său folosind filele din partea de jos a formularului

Pentru a apela formularul de selecție a perioadei, folosim procedura standard Contabilitate 2.0 din modulul general Lucrul cu dialoguri - HandlerPeriodSettingPressing, trebuie să îi transmiteți detaliile raportului ca parametri Începutul perioadeiȘi EndPeriod.

Procedură Buton1Apăsați(Articol) Lucrul cu Dialogs.HandlerSettingPeriodPress(StartPeriod,EndPeriod); EndProcedure

Acum să trecem la scrierea codului care va genera și afișa raportul nostru. Există deja o procedură în modulul formular ButtonFormPressing care se va executa la apasarea butonului Formă, apoi ne vom scrie codul acolo. Să începem prin a inițializa variabilele necesare. Mai întâi, să creăm o variabilă pentru câmpurile foilor de calcul la care vom scoate date, acest lucru nu este necesar, doar înregistrarea apelurilor către acesta va deveni mai scurtă, ceea ce înseamnă că codul programului va fi mai ușor de înțeles pentru citire.

TabDoc = FormElements.TabDoc;

Obțineți aspectul raportului extern folosind funcția GetLayout(<ИмяМакета>) , vom trece numele layout-ului parametrului, iar dacă un astfel de layout există, atunci funcția îl va găsi.

Layout = GetLayout("Layout");

După primirea aspectului, vom crea variabile pentru fiecare dintre zonele sale, vom folosi metoda de layout pentru aceasta GetRegion(<ИмяОбласти>) .

AreaHat = Layout.GetArea(„Pălărie”); AreaDataAccount = Layout.GetArea( „DataContractor”); AreaDataAgreement = Layout.GetArea("DataAgreement" ); AreaFooter = Layout.GetArea("Susol" );

Ștergeți câmpul foii de calcul. Acest lucru este necesar pentru ca, cu fiecare nouă generare de raport, datele vechi să fie șterse.

TabDoc.Clear();

Acum că inițializarea variabilelor este completă, să trecem la completarea și afișarea zonelor de aspect una câte una. Să începem cu pălăria. Dacă vă amintiți, am creat doi parametri în acest domeniu Începutul perioadeiȘi EndPeriod, vom trece acolo valorile perioadei de generare a raportului, pentru aceasta vom folosi proprietatea Parametrii zona de amenajare.

Header.Parameters.PeriodStart = PeriodStart; AreaHeader.Parameters.EndPeriod = EndPeriod;

Fără acțiune în domeniul de aplicare Pălărie producătorul nu este necesar, așa că vom afișa câmpul său într-un document de foaie de calcul.

TabDoc.Output(RegionHeader);

În continuare, să scriem o interogare în baza de date, cu ajutorul căreia vom prelua cifra de afaceri pe cont 62 din registrul contabil autoportante. Să definim o variabilă în care va fi localizată cererea noastră.

Solicitare = cerere nouă;

Înainte de a începe să scriem textul de solicitare, îi vom transmite parametrii necesari. Deoarece scriem o cerere de factură 62 contabilitate, apoi în primul rând vom crea un parametru pentru acesta

Query.SetParameter("Account62" ,Planuri de conturi.Self-supporting.FindByCode("62" ));

De asemenea, este necesară trecerea perioadei de generare a raportului la cerere. Nu uitați că avem detalii speciale de raport pentru perioada de generare și le transmitem ca parametri.

Query.SetParameter("StartPeriod",StartPeriod); Query.SetParameter("EndPeriod",EndPeriod);

Să începem să scriem textul interogării, vom face acest lucru folosind generatorul de interogări. In multe mijloace didactice ei scriu că trebuie să poți scrie o interogare atât manual, cât și folosind constructorul, dar în practică nu este cazul. În sarcinile cu care se confruntă în mod constant un programator 1C, prioritatea este scrierea rapidă și de înaltă calitate a codului, iar atunci când compilați manual o interogare în baza de date, acest lucru este aproape imposibil de realizat, veți petrece mult timp prețios pentru a corecta reproduce toate construcțiile de interogări, găsește greșelile de scriere pe care le-ai făcut când ai scris etc. Așa că nu-ți pierde timpul încercând să scrii interogări manual, ci folosește constructorul de interogări. Vă va economisi timp și vă va permite eforturi deosebite scrie interogări complexe. Pentru a începe să scrieți textul cererii, să scriem în codul:

Solicitare.Text = "" ;

După aceea, puneți cursorul între ghilimele, apăsați butonul dreapta al mouse-ului și selectați elementul Constructor cerere. Se va deschide fereastra de proiectare de interogări.

Acum trebuie să selectăm tabelul de bază de date 1C 8 de care avem nevoie. Avem nevoie de un tabel virtual Cifra de afaceri registrul contabil autoportante. Găsiți-l în partea stângă a ferestrei designerului

Să-l mutăm în zonă Meseși să completăm parametrii. Pentru toate tabelele virtuale ale interogării, există un set special de parametri care vă permit să selectați datele necesare din tabelul principal (în cazul nostru, tabelul principal Registrul contabil autoportante). Să deschidem fereastra parametrilor tabelului virtual.

Să completăm parametrii, perioada pe care am trecut-o la cerere. Pentru a utiliza un parametru în textul cererii, trebuie să scrieți un simbol înaintea numelui acestuia ampersand(&)

Rămâne de completat condiția de pe cont. contabilitate. Pentru a face acest lucru, găsiți linia în parametrii tabelului virtual CondițieConturi si scrie acolo

Scor ÎN IERARHIE (&Score62)

De asemenea, puteți utiliza generatorul de condiții făcând clic pe butonul cu trei puncte.

Nu mai trebuie impuse condiții pentru masa virtuală, așa că apăsați butonul Bineîn fereastra de opțiuni pentru tabelul virtual. Apoi, trebuie să selectăm câmpurile de care avem nevoie din tabel Autoportante.Roturi de afaceri(și anume: Contraparte, Contract de contraparte, Venituri și Cheltuieli). Pentru a vedea lista de câmpuri disponibile în tabelul pe care l-am selectat, apăsați pe simbolul „+” de lângă numele acestuia. După aceea, trageți câmpurile necesare în zona din dreapta a generatorului de interogări, care se numește: Câmpuri. Dacă deschidem planul de conturi de contabilitate, vom vedea asta pentru cont 62 analitice de către Către contraparte - acesta este Subconto1, și prin Contract de antreprenor — Subconto2.

Prin urmare, din câmpurile tabelului virtual, selectați Subconto1Și Subconto2. Deoarece avem nevoie de venituri și cheltuieli după sumă, selectăm și câmpurile SumaTurnoverDtȘi SumăCurnoverKt

Să completăm aliasurile câmpurilor pe care le-am ales, pentru aceasta vom merge la fila Sindicate/Alias-uriși setați numele câmpurilor dorite.

Deoarece în raportul nostru datele vor fi afișate ierarhic (Contrapartea este la primul nivel, iar toate contractele sale sunt la al doilea), vom configura datele de ieșire în ierarhie folosind Rezultatele. Să mergem la fila din constructor Rezultate. Trageți și plasați secvențial în câmpurile de grupare contraparteȘi Acord de contrapartidă, iar în finală VenireȘi Consum.

Acest lucru finalizează munca în constructorul de interogări, faceți clic pe butonul Bineși vedem că textul solicitării noastre a apărut în codul programului.

Query.Text = „SELECT | Cifra de afaceri autonomă. Subconto1 AS Contraparte, | Cifra de afaceri autonomă Subconto2 AS Acordul contractantului, | Cifra de afaceri auto-suportată. | Autoportant Cifra de afaceri.Suma Cifra de afaceriKt AS Cheltuieli| DE LA | Înregistrare Contabilitate.Auto-susținere.Citre de afaceri(&Începutul perioadei, &Sfârșitul perioadei, Cont ÎN IERARHIE (&Contul62),) AS Auto-susținere Cifra de afaceri| REZULTATE | SUMA(Venit), | SUM(Cheltuieli) | ON | contraparte, | Acord de contrapartidă”;

După ce am terminat de scris cererea, vom începe să completăm zonele DataContractor, DataAgreementContractorȘi subsol. Vom completa toate aceste zone cu datele primite la executarea cererii. Deoarece interogarea noastră conține grupări( contraparteȘi Acord de contrapartidă) selectați datele din acesta după cum urmează:

SelectionContractor = Query.Execute().Select(BypassingQueryResult.By Groupings);

Astfel, vom primi înregistrări cu totaluri pentru toate contrapărțile.

Înainte de a ocoli datele eșantionului folosind o buclă, inițializam variabilele destinate calculării totalurilor pentru raport:

TotalIncome = 0; Cheltuieli totale = 0;

Pentru ca datele raportului să fie afișate într-o ierarhie (și împrăștiate prin „+”), setați începutul grupării automate a rândurilor documentelor din foaia de calcul:

TabDoc.StartAutogroupRows();

Toate pregătirile s-au terminat, acum să începem să ocolim rezultatele interogării. Bypass-ul va fi efectuat folosind bucla Pa

În timp ce SelectionContractor.Next() Cycle EndCycle ;

La începutul buclei, resetați parametrii VenireȘi Consum zone DataContractor. Pentru ce este? Imaginați-vă o situație în care contrapartea unchiul Vasia, venitul 10 și cheltuiala 5, iar pentru următoarea contraparte unchiul Petya nu există venituri sau cheltuieli, în acest caz, dacă nu resetăm parametrii VenireȘi Consum, apoi în linie după contraparte unchiul Petya va fi un venit de 5 și o cheltuială de 10.

AreaDataAccount.Parameters.Incoming = 0; AreaDataAccount.Parameters.Expense = 0;

După aceea, completați zona DataContractor eșantion de date despre articol

CompletațiPropertyValues(AreaDataAccount.Parameters, SelectionAccount);

După completarea cu date, puteți afișa zona în document foaie de calcul, Deoarece folosim gruparea automată a liniilor, trebuie să specificăm nivelul liniei în grupare (în raportul nostru vor fi două niveluri, pentru contrapartide primul pentru contracte, al doilea).

TabDoc.Output(AreaDataAccount,1);

Acum pentru această contraparte vom face o selecție conform contractelor sale.

SelectAgentContract = SelectContractor.Select(BypassingQueryResult.By Groupings);

Bypass-ul va fi efectuat folosind bucla Pa.

While SelectionAgreementContractor.Next() Cycle EndCycle ;

În ciclul pentru contractele contrapărților, vom reseta parametrii VenireȘi Consum, umpleți zona DataContract din selecție și afișați-l într-un document foaie de calcul la al doilea nivel de înregistrări.

AreaDataAgreement.Parameters.Income = 0; AreaDataAgreement.Parameters.Expense = 0; CompletațiPropertyValues(AreaDataContract.Parameters, SelectionContractorContract); TabDoc.Output(AreaDataContract,2);

Tot în acest ciclu, vom adăuga valorile curente la variabilele pentru calcularea valorilor totale pentru venituri și cheltuieli.

TotalIncome = TotalIncome + SelectionAgreementContractor.Income; TotalExpense = TotalExpense + SelectionContractor's Agreement.Cheltuieli;

Aceasta încheie datele de ieșire în zonă DataContractor, DataAgreementContractor finalizat, rămâne să finalizați gruparea automată a rândurilor documentelor din foaia de calcul.

TabDoc.EndAutoGroupRows();

Cicluri complete responsabile pentru transmiterea datelor în zonă DataContractorȘi DataAgreementContractor arata asa:

TabDoc.StartAutogroupRows(); While SelectionContractor.Next() Loop AreaDataContractor.Parameters.Incoming = 0 ; AreaDataAccount.Parameters.Expense = 0 ; CompletațiPropertyValues(AreaDataAccount.Parameters, SelectionAccount); TabDoc.Output(AreaDataAccount,1); SelectAgentContract = SelectContractor.Select(BypassingQueryResult.By Groupings); While SelectionAgreementContractor.Next() Loop AreaDataAgreement.Parameters.Incoming = 0 ; AreaDataAgreement.Parameters.Expense = 0 ; CompletațiPropertyValues(AreaDataContract.Parameters, SelectionContractorContract); TabDoc.Output(AreaDataAgreement,2); TotalIncome = TotalIncome + SelectionAgreementContractor.Income; TotalExpense = TotalExpense + SelectionContractor's Agreement.Cheltuieli; EndCycle ; EndCycle ; TabDoc.EndAutoGroupRows();

Rămâne de afișat datele totale din zonă subsolși afișați zona în sine document foaie de calcul.

AreaBasement.Parameters.TotalIncome = TotalIncome; AreaBasement.Parameters.TotalExpense = TotalExpense; TabDoc.Output(RegionFooter);

Acest lucru completează procesul de scriere a unui raport extern pentru 1C 8 fără a utiliza ACS. Acum poate fi generat în modul 1C:Enterprise 8 și adăugat în director Procesare externă Puteți descărca fișierul raport discutat în articol de către .

Urmărește videoclipul despre crearea unui imprimabil extern pentru o aplicație gestionată:

Pentru a conecta procesări externe, rapoarte, formulare de tipărire pentru platforma 1C: Enterprise 8.2, a fost dezvoltat nou standard să lucreze într-o aplicație gestionată (standard din subsistem biblioteci standard 8.2). Au fost „cipuri” care nu existau înainte, și anume:

    Tipul de prelucrare a fost extins: umplerea unui obiect, crearea obiectelor aferente. Acum în documente puteți adăuga propriile butoane pentru completarea întregului document, precum și propriile butoane pentru introducerea pe bază.

    O procesare poate conține o listă de mai multe operațiuni (comenzi) simultan, de ex. puteți face o singură procesare, unde vor exista mai multe elemente de meniu simultan: tipărirea și bonul de livrare, tipărirea unei chitanțe de vânzare, tipărirea unui card de garanție. (Nota autorului: mai devreme în vechiul standard, pentru a face astfel de lucruri, trebuia să faci totul deodată (chiar dacă nu era nevoie) și nu era nevoie să-l închizi, sau să-ți desenezi propriul formular, care avea butoanele necesare pentru a selecta operația necesară)

    Puteți introduce obiecte pe bază și umple simultan pe baza mai multor obiecte, și nu doar pe unul

    Puteți programa execuția comenzilor serverului (pe server).

    Puteți seta modul la „Securizat” sau „Nesigur”, adică. începeți procesarea ținând cont de restricția drepturilor sau ignorați-le (ca în cazul drepturilor depline)

    Puteți seta modul de utilizare: Nu utilizați, depanați, utilizați. „Nu utilizați” - nu la serviciu, „Depanare” - vizibil numai pentru administratori, „Folosiți la serviciu”.

    Poate include utilizarea în forme de obiect și în formă de listă

    Puteți lega o procesare sau un raport la toate obiectele simultan.

    poate fi personalizat acces rapid la anumite comenzi externe de procesare.

    Este posibil să specificați în ce secțiuni ale interfeței ar trebui să apară procesări și rapoarte suplimentare.

Deci, ce se poate conecta la configurațiile standard?

Din punctul de vedere al platformei, vă puteți conecta:

  • prelucrare externă (fișiere cu extensia „epf”);
  • rapoarte externe (fișiere cu extensia „erf”).

Din punct de vedere al zonei de aplicație (configurare), puteți conecta procesări externe și rapoarte cu formularul *:

  • Prelucrare suplimentară
    • Doar procesare suplimentară. Este posibil să se personalizeze
  • Raport suplimentar
    • Doar un raport suplimentar
  • Umplerea unui obiect
    • Butoane proprii pentru completarea obiectelor (document), anterior existau doar butoane pentru completarea părții tabelare.
  • Imprimare formular
    • Imprimabile suplimentare (se adaugă butonul „Imprimabile suplimentare”)
  • Raport
    • Un raport atașat la obiecte (la directoare și documente).
  • Crearea obiectelor legate
    • Intrare proprie bazată pe (butonul „Creați obiecte înrudite...” este adăugat la elementul de meniu „Introducere pe baza”)

*pe exemplul redacției „Managementul unei firme mici ed. 1,2"

Să aruncăm o privire la cum funcționează totul. Pentru a conecta procesarea și raportarea externă, există un standard care descrie interfața pentru interacțiunea cu procesarea și raportarea externă și există cerințe generale pentru toate tipurile și există cerințe specifice pentru fiecare tip de procesare sau raport.

Să începem cu cerințele generale pentru toate tipurile de procesare și raportare. Pentru a crea o prelucrare sau un raport extern conectabil, trebuie să declarați funcția de export InformationOnExternalProcessing() în modulul obiect, care trebuie să completeze structura care descrie comportamentul. Un exemplu de această funcție:

Funcția DetailOnExternalProcessing() Export
RegistrationData = Structură nouă;
RegistrationData.Insert(„Nume”, „Exemplu de utilizare a prelucrării externe 8.2.”);
RegistrationData.Insert(„SafeMode”, True);
RegistrationData.Insert(„Versiune”, „1.0”);

//Procesare suplimentară
//Raport suplimentar
//Umplerea obiectului
//Raport
//PrintForm
//Creează obiecte asociate
RegistrationData.Insert(„Vizualizare”, „Procesare suplimentară”);

RegistrationData.Insert("Informații", "Procesarea se face conform noului standard pentru conectarea prelucrării externe 8.2. Un exemplu de procesare ""Hello Word"" ");

///////////// comenzi ///////////////////////////
tsCommand = New ValueTable;
tzCommand.Columns.Add("Identificator");
tzCommand.Columns.Add(„Vizualizare”);
tzCommand.Columns.Add(„Modificator”);
tzCommand.Columns.Add(„Afișează Notificarea”);
tzCommands.Columns.Add(„Utilizați”);


stringCommand.Identifier = "1";
stringCommands.View = "comanda ""Salut Cuvânt"" (OpenForm)";

commandstring.Usage = "OpeningForm";

CommandString = tzCommand.Add();
stringCommand.Identifier = "2";
stringCommand.View = "comanda ""Salut Cuvânt"" (ClientMethodCall)";
stringCommand.ShowAlert = adevărat;
CommandString.Usage = "CallClientMethod";

CommandString = tzCommand.Add();
stringCommand.Identifier = "3";
stringCommand.View = "comanda ""Hello Word"" (Apel ServerMethod)";
stringCommand.ShowAlert = adevărat;
Commandstring.Usage = "CallServerMethod";

RegistrationData.Insert("Comenzi", tzCommands);

////////////// scop (în ce obiecte este folosit) //////////////////////////
//pentru tipărirea formularelor, completarea, introducerea obiectelor aferente
//AssignmentArray = Matrice nouă;
//ArrayAssignments.Add("Document.*"); // toate documentele sunt atribuite
//ArrayAssignment.Add("Document.Raport avans");
//Assignment array.Add("Document.Comanda Cumpărătorului");
//RegistrationData.Insert("Destinație", Matrice de sarcini);

Returnează datele de înregistrare;

EndFunctions

Deci, după cum puteți vedea, funcția completează structura RegistrationData, care are următoarele elemente (parametri):

    Nume - denumirea scurtă a procesării

    Versiune - informații despre versiunea de procesare

    Modul sigur– este responsabil pentru ca prelucrarea să fie efectuată ținând cont de drepturile utilizatorului. Dacă este setată la „False”, atunci procesarea sau raportarea va fi efectuată fără a lua în considerare restricțiile de drepturi (ca în cazul drepturilor depline). Această caracteristică a apărut în 8.2, unde la crearea procesării externe și a rapoartelor, modul este specificat ca al doilea parametru.

    Vizualizare – tip de procesare sau raport. Am enumerat valorile posibile la începutul articolului, iar valorile posibile pentru setarea în cod sunt indicate în comentariu.

  • Comenzi - un tabel de valori care enumeră comenzile utilizate. Coloanele tabelului de valori:
    • Identificator - orice șir (identificator de comandă)
    • Vizualizare - descrierea comenzii
    • Modificator - șir (utilizat pentru formulare suplimentare de printare)
    • ShowNotification – fereastra de notificare va apărea înainte de începerea și după încheierea execuției (pentru comenzile client și server fără formular)
    • Utilizare - modul de pornire a procesării:
      • Deschiderea formularului - se va deschide formularul de procesare
      • CallClientMethod - apelați formularul metodei de export client
      • Apelarea ServerMethod - apelarea unei metode de export dintr-un modul de procesare

În funcție de tipul de procesare sau raport, precum și de modul de lansare al comenzii „Utilizați”, sunt apelate metodele definite în modulul formular, modulul obiect. Lista parametrilor trecuți este, de asemenea, diferită. Sunt atașate exemple de apeluri și de utilizare a tuturor tipurilor de procesare.