Rapoarte suplimentare și procesare 1s 8.3. Adăugarea de procesare externă la baza de date. Plăci de imprimare externe opționale

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

Apare formularul de listă a directorului extern de procesare. În meniul de sus, apăsați 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 ați selectat fișierul dorit, dacă este necesar, specificați un nume de procesare (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 un nou obiect extern din program a fost completat, tot ce rămâne este 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 procesarea 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:

Destul de des, atunci când în timpul unei consultări apare nevoia de a rezolva o problemă complexă, le sugerez clienților mei să o implementeze în programul 1C folosind fie prelucrare externă, sau placă de imprimare externă. Și adesea dau peste faptul că oamenii pur și simplu nu sunt familiarizați cu această posibilitate a programelor pe platforma 1C Enterprise 8. Uneori chiar mă înjură, crezând că dezvoltarea și implementarea unei astfel de procesări ca parte a configurației lor va duce la incapacitatea de a actualiza automat programul. Că va trebui să plătești mulți bani pentru a actualiza programul.

Pentru a clarifica astfel de întrebări, precum și pentru a vorbi despre ce oportunități utile oferă procesarea externă și formularele de imprimare externă, am decis să scriu acest articol. În acest articol nu voi lua în considerare latura tehnică a procesului de creare a procesării. Acest lucru va fi discutat cel mai probabil într-o altă publicație. 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 suplimentare conectabile externe:

  • 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 tipărite?




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 standard, fie că este 1C ZUP sau 1C Enterprise Accounting sau o altă configurație, este nevoie de anumite funcționalități care nu sunt furnizate 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 (schimba, ajusta) date disponibile în baza de date. De exemplu, modificarea anumitor detalii în documente pentru perioada necesară, ceea ce este incomod de făcut manual cu volume 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ă mai fie tipic și nu va fi posibil să-l actualizezi folosind metodele destul de simple despre care am scris. Actualizarea unei configurații non-standard este un proces mai lung și mai serios, așa că, 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 să dezvoltați sau să solicitați 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 a le stoca, se folosesc directoare speciale: elementul din meniul principal „Serviciu” -> „Rapoarte și procesare suplimentare”.

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

Seminar „Lifehacks pentru 1C ZUP 3.1”
Analiza a 15 hack-uri de viață pentru contabilitate în 1C ZUP 3.1:

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

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

Acum să aruncăm o privire individuală la ce capabilități ne vor oferi fiecare dintre cele patru module externe disponibile. Sa incepem cu prelucrarea externă a pieselor tabulare. Mi se pare că aceste procesări ale părților tabelare ale documentelor ilustrează cel mai pe deplin modul în care puteți modifica destul de serios un program fără a recurge la editarea configurației standard, ci să vă descurcați doar cu procesarea externă.

Pentru a fi mai clar, voi da un exemplu concret din practica mea, în care să rezolv problema pe care am folosit-o prelucrarea externă a pieselor tabulare. În configurația „1C Salariul și Managementul Personalului” ediția 2.5 există un document „Plată pentru sărbători și weekenduri”(Despre acest document a fost scris în detaliu). În forma sa standard, 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 erau programate să cadă î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 „Serviciu” -> „Rapoarte și procesări suplimentare” -> „Prelucrare externă suplimentară a părților tabelare”). La crearea unui element din acest director, a fost indicat la ce document se referă procesarea descărcată - „Plată pentru sărbători și weekenduri ale organizației”, precum și care parte tabelară - „Angajați”. În exemplul nostru, documentul are o parte tabelară, dar în alte documente pot exista mai multe dintre ele, așa că este necesar să se indice în mod specific la care dintre ele se referă procesarea.

Ca urmare a adăugării acestei procesări în director „Prelucrare externă suplimentară pentru completarea părților tabelare”în documentul „Plată pentru vacanțe și părți de weekend” în sine, va apărea un buton „Umplere” cu o listă derulantă în care va fi posibilă începerea acestei procesări. În cazul nostru, butonul „Umplerea duminicilor” este disponibil în lista derulantă. Prin apăsarea acestuia se lansează algoritmul conținut în procesare. În acest exemplu, partea tabelară va fi completată cu angajații ale căror zile de lucru au căzut într-o zi liberă. Vă rugăm să rețineți că acest buton nu a existat anterior (captura de ecran de mai sus).

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

Plăci de imprimare externe opționale

Seminar „Lifehacks pentru 1C ZUP 3.1”
Analiza a 15 hack-uri de viață pentru contabilitate în 1C ZUP 3.1:

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

Calculul salariilor î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 cărților de referință au formulare tipărite. Ele sunt, de regulă, situate în colțul din dreapta jos al formei unui element de director sau document. 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 standard „Contract de muncă” este inclus în formularul director „Angajați”.

Puteți adăuga propriile formulare tipărite ale directorului. În acest scop, se creează un formular tipărit extern cu extensia „.epf”. Apoi este creat un element de director pentru acesta „Plăci de imprimare externe suplimentare”(elementul de meniu „Instrumente” -> „Rapoarte și procesare suplimentare”) și un fișier cu extensia „.epf” este adăugat la acest element de director. De asemenea, este necesar să se indice pentru ce document sau carte de referință se adaugă prelucrarea.

Ca urmare, ca parte a formularelor tipărite ale elementelor directorului „Angajați”, va apărea un alt formular - „Contract de Angajare (Alpha LLC)”, care nu exista înainte. Iar aspectul și completarea datelor sunt determinate de programator în fișierul „.epf”.

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

Rapoarte externe suplimentare

În acest caz, vă puteți 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 pe departament). Fișierul este creat în configuratorul 1C în limbajul de programare 1C.

Un raport extern poate fi stocat ca parte a configurației folosind cartea de referință „Rapoarte externe suplimentare” (articolul de meniu „Instrumente” -> „Rapoarte și procesare suplimentare”). Ele nu au legătură cu un anumit document sau carte de referință; aceste informații nu sunt necesare.

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

De asemenea, puteți lansa 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 folderele computerului.

Tratamente externe suplimentare

Tratamente externe au aproximativ aceeași semnificație cu 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 bazei de date. Gama de probleme rezolvate cu ajutorul procesării externe este destul de largă.

De exemplu, procesare pentru încărcarea extraselor de plată. În ciuda prezenței procesării standard în ZUP (citiți despre aceasta), uneori poate să nu fie potrivit pentru o anumită bancă și este dezvoltată o procesare externă care convertește și descarcă informații în formatul necesar.

te aduc eu încă un exemplu un tratament complet simplu, dar destul de popular. Dacă în 1C ZUP nu mențineți documentul „Transfer impozitul pe venitul personal la buget” în cursul anului, atunci la generarea impozitului pe venitul 2 persoane pe an, câmpul „Transferat” pentru fiecare angajat va fi zero, adică de obicei incorectă din punct de vedere faptic. Introducerea documentului „Transferul impozitului pe venitul personal la buget” pentru întregul an poate fi destul de plictisitoare, având în vedere specificul documentului în sine. Dar puteți face procesare externă, 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 utilizați directorul „Prelucrare externă suplimentară”(elementul 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:

Să luăm în considerare crearea unui raport extern în 1C 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 contabil 62 în care va fi afișată în context cifra de afaceri pentru perioada specificată. ContrapartideȘi Contractele contrapartidelor.

1. Creați un raport

Mai întâi de toate, să creăm un fișier de raport extern; pentru a face acest lucru, să trecem la 1s 8 în modul Configurator, să mergem la meniu Fișier -> Nou, sau faceți clic pe pictogramă document nou.

Selectați elementul din listă Raport extern. După crearea raportului extern, dați-i un Nume (de exemplu Cel mai simplu Raport) și salvați-l pe disc. Vom adauga si doua detalii: Începutul perioadeiȘi Sfârșitul perioadei tip Data, 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 1C 8, aveți nevoie de un aspect, acesta este un șablon pentru afișarea datelor în care sunt setați toți parametrii necesari, sunt desenate tabele etc. Să adăugăm un aspect nou; pentru a face acest lucru, selectați elementul din arborele de metadate ale raportului 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 datele contrapartidei intr-un tabel;
  • DateContract de contrapartidă - în această zonă vom afișa datele despre contractul de contraparte într-un tabel;
  • 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). Spre regiune Un capac Să scriem numele raportului: Cifra de afaceri 62 contează, desenați folosind instrumentul Frontiere antetul raportului și, de asemenea, setați parametrii Începutul perioadeiȘi Sfârșitul perioadei. Cu ajutorul parametrilor, puteți afișa datele necesare în raport; ne vom ocupa de acest lucru în următoarea etapă de dezvoltare, și anume la scrierea codului raportului. Pentru a crea un parametru în aspect, selectați celula dorită, scrieți numele parametrului în ea (fără spații), faceți clic dreapta pe el, selectați elementul din meniul care se deschide Proprietăți. În proprietățile celulei din filă Aspect selectați umplutura Parametru.

După aceasta, numele parametrului din celulă va fi cuprins între paranteze unghiulare ("<>„). Drept urmare, zona Un capac ar trebui sa arate asa:

În zonă DataCounterparty 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 ca un rând de masă.

În zonă Acord de contrapartidă de date Să creăm parametri pentru afișarea numelui contractului, precum și pentru venituri și cheltuieli pentru contul 62, folosind instrumentul Borders vom proiecta zona ca un 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 Celulă împărțită), este necesar pentru ca raportul să poată vedea că linia pentru contract este mai jos în ierarhie decât linia pentru contraparte.

În zonă subsol Să creăm parametri pentru totalurile veniturilor și cheltuielilor.

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 butonul Formă raportul nostru va necesita un formular. Pentru a crea un formular, găsiți elementul în arborele de metadate ale raportului extern Formeși apăsați butonul Adăuga. Pe prima pagină a designerului de formulare, nu trebuie să faceți nicio modificare, trebuie doar să faceți clic pe butonul Mai departe.

Pe pagina următoare a designerului, selectați ambele detalii disponibile( Începutul perioadei, Sfârșitul perioadei) pentru plasarea pe formular.

Ca rezultat, vom obține acest formular:

Dar nu suntem mulțumiți de el în această formă; să-i facem câteva modificări:

  • Să tragem butonul Formă din panoul de jos al raportului în sus (acest lucru va fi mai convenabil pentru utilizator);
  • Întindeți forma vertical și orizontal;
  • Să aranjam câmpurile Începutul perioadeiȘi Sfârșitul perioadei orizontal;
  • Să adăugăm un element de control al câmpului de document pentru foaie de calcul în formular (raportul nostru va fi afișat în el), dăm-i un nume TabDoc;
  • Să creăm un buton de selecție a perioadei (atunci când faceți clic, va apărea un dialog cu o alegere convenabilă a perioadei dorite). Nu vom scrie încă codul programului pentru acesta, așa că vom plasa butonul de lângă câmpurile perioadei.

Ca rezultat, formularul nostru va arăta astfel:

4. Programare

După crearea formularului de raport, să începem programarea. Mai întâi, 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 Evenimente, unde folosind butonul cu o pictogramă 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, vom folosi procedura standard Contabilitate 2.0 dintr-un modul comun Lucrul cu dialoguri - HandlerPeriodSettingPress, trebuie să îi transmiteți detaliile raportului ca parametri Începutul perioadeiȘi Sfârșitul perioadei.

Procedură Buton1Apăsați(Element) Lucrul cu Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Sfârșitul procedurii

Acum să trecem la scrierea codului care va genera și afișa raportul nostru. Modulul formular are deja o procedură ButtonGeneratePress, care se va executa la apăsarea butonului Formă, acolo vom scrie codul nostru. Să începem prin a inițializa variabilele necesare. În primul rând, să creăm o variabilă pentru câmpurile documentului din foaia de calculîn care vom scoate date, acest lucru nu este necesar, doar că î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;

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

Layout = GetLayout("Layout");

După ce este primit aspectul, să creăm variabile pentru fiecare dintre zonele sale, folosiți metoda de aspect pentru aceasta GetArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("Header" ); AreaDataAccount = Layout.GetArea( „Datele contractantului”); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Footer" );

Să ștergem câmpul din foaia de calcul. Acest lucru este necesar pentru ca de fiecare dată când este generat un nou 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 antetul. Dacă vă amintiți, am creat doi parametri în această zonă Începutul perioadeiȘi Sfârșitul perioadei, vom trece acolo valorile perioadei de generare a raportului, pentru aceasta vom folosi proprietatea Opțiuni zonele de amenajare.

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

Gata cu acțiunile cu zona Un capac Nu este necesar producătorul, așa că vom afișa câmpul său într-un document de foaie de calcul.

TabDoc.Output(AreaHead);

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

Solicitare = cerere nouă;

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

Request.SetParameter("Account62", Planuri de conturi. Auto-susținând. Găsește după cod("62" ));

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

Request.SetParameter("Începutul perioadei", Începutul perioadei); Request.SetParameter("Sfârșitul perioadei", Sfârșitul perioadei);

Să începem să scriem textul interogării, vom face acest lucru folosind designerul de interogări. În multe tutoriale scriu că trebuie să poți scrie o interogare atât manual, cât și folosind un constructor, dar în practică nu este cazul. În sarcinile cu care se confruntă constant un programator 1C, prioritatea este să scrie cod rapid și eficient, iar atunci când scrieți manual o interogare în baza de date, acest lucru este aproape imposibil de realizat; veți petrece mult timp prețios reproducând corect toate structurile de interogare. și găsirea greșelilor de scriere pe care le-ați făcut când ați scris etc. Prin urmare, nu vă pierdeți timpul încercând să scrieți interogări manual, ci folosiți constructorul de interogări. Vă va economisi timp și vă va permite să scrieți interogări complexe fără prea mult efort. Pentru a începe să scrieți textul solicitării, să scriem în cod:

Solicitare.Text = "" ;

După aceea, plasați cursorul între ghilimele, faceți clic dreapta și selectați 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 Revoluții registrul contabil Autoportant. Să-l găsim în partea stângă a ferestrei de designer

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

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

Rămâne de completat condiția pentru contul contabil. contabilitate. Pentru a face acest lucru, găsiți linia în parametrii tabelului virtual Condiția contului si o sa scriem acolo

Cont ÎN IERARHIE (&Contul62)

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

Nu este nevoie să impunem alte condiții pe masa virtuală, așa că haideți să facem clic pe butonul Bineîn fereastra parametrilor tabelului virtual. Apoi, trebuie să selectăm câmpurile de care avem nevoie din tabel Autoportant.Cifra de afaceri(și anume: Contraparte, Contract de contraparte, Venituri și Cheltuieli). Pentru a vizualiza lista de câmpuri disponibile în tabelul pe care l-am selectat, faceți clic pe simbolul „+” de lângă numele acestuia. După aceea, trageți câmpurile necesare în zona din dreapta a designerului de interogări, care se numește: Câmpuri. Dacă deschidem planul de conturi, vom vedea asta pentru cont 62 analitice pe Pentru contraparte, acesta este Subconto1, și prin Acord de contraparte - Subconto2.

Prin urmare, din câmpurile tabelului virtual selectăm 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 selectat; pentru a face acest lucru, accesați fila Sindicate/Alias-uriși setați numele câmpurilor necesare.

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 afișarea datelor în ierarhie folosind Totaluri. Să mergem la fila din designer Rezultate. Trageți secvențial în câmpurile de grupare ContrapartidăȘ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 apare în codul programului.

Query.Text = „SELECT | Cifra de afaceri auto-suportabilă.Subconto1 AS contraparte, | Auto-susținere Cifra de afaceri.Subconto2 AS Acord de contraparte, | Cifra de afaceri autoportabilă. | Cifra de afaceri autoportabilă.Suma Cifra de afaceriKt AS Cheltuială|DIN | Registrul de contabilitate. Auto-contabil. Cifra de afaceri (&Începutul perioadei, &Sfârșitul perioadei, Cont ÎN IERARHIE (&Contul 62),) AS Auto-contabil Cifra de afaceri|REZULTATE | AMOUNT(Venit), | SUMA(Cheltuieli) |PO | contrapartidă, | Acord de contrapartidă”;

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

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

În acest fel vom primi înregistrări cu totaluri pentru toate contrapărțile.

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

TotalIncoming = 0; TotalConsumption = 0;

Pentru ca datele raportului să fie afișate cu o ierarhie (și rotații de-a lungul „+“), să setăm începutul grupării automate a rândurilor documentului foaie de calcul:

TabDoc.StartAutoGroupingRows();

Toate pregătirile sunt finalizate, acum să începem să accesăm cu crawlere rezultatele interogării. Vom efectua traversarea folosind o buclă Pa

În timp ce Selectați cont. Următorul() Ciclu EndCycle ;

La începutul ciclului, resetați parametrii VenireȘi Consum regiune DataCounterparty. Pentru ce este? Să ne imaginăm o situație în care contrapartea unchiul Vasia, veniturile sunt 10, iar cheltuielile sunt 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 de contraparte unchiul Petya va fi un venit de 5 și o cheltuială de 10.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

După aceea umplem zona DataCounterparty date despre elementele eșantionului

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

După completarea datelor, puteți afișa zona document foaie de calcul, Deoarece folosim gruparea automată a rândurilor, trebuie să indicăm nivelul rândului în grupare (raportul nostru va avea două niveluri, pentru contrapartide primul pentru contracte).

TabDoc.Output(AreaDataAccount,1);

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

SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Vom efectua traversarea folosind o buclă Pa.

While SelectionCounterparty Agreement.Next() Loop EndCycle ;

În ciclul acordurilor de contrapartidă, să resetam parametrii VenireȘi Consum, umpleți zona DataContract din eșantion și afișați-l într-un document foaie de calcul la al doilea nivel de înregistrări.

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

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

TotalReceipt = TotalReceipt + SelectionCounterpartyAgreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense;

Acest lucru încheie producția de date în zonă DataCounterparty, DataAgreementContraparte finalizat, nu mai rămâne decât să finalizați gruparea automată a rândurilor documentului foaie de calcul.

TabDoc.FinishAutoGroupingRows();

Cicluri complete responsabile pentru transmiterea datelor în zonă DataCounterpartyȘi DataAgreementContraparte arata asa:

TabDoc.StartAutoGroupingRows(); While SelectionAccount.Next() Loop AreaDataAccount.Parameters.Receipt = 0 ; AreaDataAccount.Parameters.Expense = 0 ; FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); TabDoc.Output(AreaDataAccount,1); SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups); While SelectionCounterparty Agreement.Next() Loop AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0 ; CompletațiPropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2); TotalReceipt = TotalReceipt + SelectionCounterpartyAgreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense; EndCycle ; EndCycle ; TabDoc.FinishAutoGroupingRows();

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

AreaBasement.Parameters.TotalIncoming = TotalIncoming; AreaBasement.Parameters.TotalConsumption = TotalConsumption; TabDoc.Output(AreaFooter);

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

Urmăriți un videoclip despre crearea unui imprimabil extern pentru o aplicație gestionată:

Pentru a conecta procesarea externă, rapoartele și formularele tipărite pentru platforma 1C:Enterprise 8.2, a fost dezvoltat un nou standard pentru lucrul într-o aplicație gestionată (un standard din subsistemul standard al bibliotecii 8.2). Au apărut „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 prelucrare poate conține o listă de mai multe operații (comenzi), de ex. puteți face o singură prelucrare, 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 necesar) și nu trebuia să închizi, sau să desenezi propriul formular, care avea butoanele necesare pentru a selecta operația necesară)

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

    Puteți seta un program pentru executarea comenzilor serverului (pe server).

    Puteți seta modul la „Sigur” sau „Nesigur”, adică. rulați procesarea ținând cont de drepturile restricționate sau ignorați-le (ca și în cazul drepturilor complete)

    Puteți seta modul de utilizare: Nu utilizați, depanați, utilizați. „Nu utilizați” - nu este în funcțiune, „Depanare” - vizibil numai pentru administratori, „Folosiți în funcționare”.

    Poate fi folosit în formulare obiect și în formulare listă

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

    Puteți configura accesul rapid la anumite comenzi de procesare externă.

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

Deci, ce poate fi conectat la configurațiile standard?

Din punct 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 câteva procesări suplimentare. Este posibil să se personalizeze
  • Raport suplimentar
    • Doar un raport suplimentar
  • Umplerea unui obiect
    • Butoane proprii pentru completarea obiectelor (documente), anterior existau doar butoane pentru completarea părții tabelare.
  • Formular imprimabil
    • Formular imprimabil suplimentar (se adaugă un buton „Formulare imprimabile suplimentare”)
  • Raport
    • Un raport atașat la obiecte (directoare și documente).
  • Crearea obiectelor legate
    • Propria dvs. intrare bazată pe (butonul „Creați obiecte înrudite...” este adăugat la elementul de meniu „Input bazat pe”)

*folosind 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 de interacțiune cu procesarea și raportarea externă și există cerințe generale pentru toate tipurile și există unele 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 plug-in, trebuie să declarați funcția de export InformationOnExternalProcessing() în modulul obiect, care trebuie să completeze o structură care descrie comportamentul. Un exemplu de această funcție:

Funcție InformationOnExternalProcessing() Export
RegistrationData = Structură nouă;
Date de înregistrare.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
//Crearea de obiecte înrudite
RegistrationData.Insert(„Vizualizare”, „Procesare suplimentară”);

Date de înregistrare.Insert("Informații", "Prelucrare efectuată conform noului standard de conectare a prelucrării externe 8.2. Exemplu de procesare ""Hello Word"" ");

///////////// comenzi //////////////////////////
tzCommand = New ValueTable;
tzCommand.Columns.Add("Identificator");
tzCommand.Columns.Add(„Vizualizare”);
tzCommand.Columns.Add("Modificator");
tzCommand.Columns.Add(„Afișează alertă”);
tzCommand.Columns.Add(„Utilizare”);


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

stringCommands.Use = "OpenForm";

CommandString = tzCommand.Add();
stringCommands.Identifier = "2";
stringCommands.View = "comandă""Salut Cuvânt""(CallClientMethod)";
stringCommands.ShowAlert = Adevărat;
stringCommand.Usage = "CallClientMethod";

CommandString = tzCommand.Add();
stringCommands.Identifier = "3";
stringCommands.View = "comandă""Salut Cuvânt""(CallServerMethod)";
stringCommands.ShowAlert = Adevărat;
stringCommand.Use = "CallServerMethod";

RegistrationData.Insert("Comenzi", tzCommands);

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

Returnează datele de înregistrare;

EndFunction

Deci, după cum puteți vedea, funcția umple structura Datelor de înregistrare, care are următoarele elemente (parametri):

    Nume – denumirea scurtă a tratamentului

    Versiune - informații despre versiunea de procesare

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

    Tip – tip de procesare sau raport. Am enumerat valorile posibile la începutul articolului, iar valorile posibile de setat în cod sunt indicate în comentarii

  • Comenzi – un tabel de valori care enumeră comenzile utilizate. Coloane din tabelul de valori:
    • Identificator – orice șir (identificator de comandă)
    • Vizualizare - descrierea comenzii
    • Modificator - șir (utilizat pentru formulare imprimate suplimentare)
    • Afișare notificare – fereastra de notificare va apărea înainte de începerea și după sfârșitul execuției (pentru comenzile client și server fără formular)
    • Utilizare – modul de pornire a procesării:
      • OpenForm – se va deschide formularul de procesare
      • CallClientMethod – apelați metoda de export client a formularului
      • Call ServerMethod – apelați metoda de export din modulul de procesare

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

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

Selectarea și prelucrarea obiectelor. (Universal)

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

Convoluția bazei de informații. (Universal)

Efectuează acumularea de securitate a informațiilor a configurațiilor tipice:

  • UPP 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 schimbate. 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)

Convertește un jurnal de acțiuni ale utilizatorului într-un program într-un limbaj încorporat.

Căutare full-text în date. (Universal)

Indexarea și căutarea datelor.

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

Caută și înlocuiește valorile de referință în obiectele de securitate a informațiilor.

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 înregistrate în acest jurnal.

Consola de joburi. (Universal)

Monitorizează sarcinile de fundal și de rutină. Șterge, creează altele noi.

Conversia procesării externe. (Universal)

Modificarea informațiilor confidențiale. (Universal)

Schimbarea selectivă sau ștergerea securității informațiilor din anumite informații.

Schimbarea detaliilor de grup. (Universal)

Modifică detaliile și părțile tabelare în documente și cărți de referință.

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

Încarcă și încarcă utilizatorii de securitate a informațiilor într-un fișier XML.

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

Încarcă structuri de date în SGBD-uri externe folosind ADO în două moduri:

  • Descărcați toate
  • Încărcați modificări (utilizat pentru a sincroniza modificările din IS-ul de lucru cu IS-ul de primire). 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)

Încarcă și încarcă date în securitatea informațiilor, atât complet, cât și parțial. 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 tabelare.

Funcționează într-un client gros în modul de aplicare normal.

Solicitați consola. (Universal)

Oferă asistență excelentă în raportare și crearea de interogări.