Come configurare smartphone e PC. Portale informativo
  • casa
  • Windows 8
  • Creazione di un report esterno in 1s 8.3. Aggiunta di un report esterno al database

Creazione di un report esterno in 1s 8.3. Aggiunta di un report esterno al database

Con la presente, io (di seguito denominata "Persona") acconsento all'IP Zabolotnov Aleksey Vladimirovich TIN212702621854, OGRNIP 313213018300022 (di seguito denominata Società) per il trattamento dei miei dati personali specificati al momento della presentazione di una domanda sul sito Web della Società (https: //sito web) per l'elaborazione del mio ordine, la richiesta o qualsiasi altro modo per contattare la Società (di seguito denominata Ordine) e la comunicazione con me nell'ambito dell'elaborazione del mio Ordine, nonché per altri scopi correlati nell'ambito di l'attuale legislazione della Federazione Russa e le capacità tecniche della Società.

Il trattamento dei dati personali di una Persona può essere effettuato con l'ausilio di strumenti di automazione e/o senza l'utilizzo di strumenti di automazione in conformità con la normativa vigente della Federazione Russa e le disposizioni della Società. Tale consenso dell'Interessato al trattamento dei propri dati personali specificati al momento dell'inoltro di un Ordine sul sito web della Società, inviati (compilati) tramite questo sito web, è valido dal momento dell'inoltro dell'Ordine sul sito web della Società fino al suo ritiro. Il consenso al trattamento dei dati personali specificati al momento dell'effettuazione di un Ordine sul sito web della Società, inviati (compilati) tramite questo sito web, può essere revocato dall'Interessato all'atto della presentazione di richiesta scritta (recensione) alla Società. Il trattamento dei dati personali della Persona cessa entro 2 mesi dal momento in cui la Società riceve una richiesta scritta (revisione) della Persona e/o se viene raggiunta la finalità del trattamento, e viene distrutta entro il termine e alle condizioni stabilito dalla legge, salvo diversa disposizione. I dati personali anonimi di una Persona possono essere utilizzati dalla Società per fini statistici (e altri scopi di ricerca) dopo aver ricevuto una richiesta (revoca) di consenso, nonché dopo aver raggiunto gli scopi per i quali tale consenso è stato ottenuto.

Questo sito consente a IP Zabolotnov Alexey Vladimirovich di ricevere informazioni contenenti dati personali della Persona, ovvero cognome, nome, patronimico, numero di telefono di contatto, indirizzo e-mail, nonché altri dati personali che possono essere utilizzati per identificare la Persona ("I tuoi dati personali"), nel caso in cui l'Interessato li fornisca volontariamente alla società.

La Persona presta il consenso all'IP Zabolotnov Aleksey Vladimirovich (TIN TIN212702621854, OGRNIP 313213018300022) al trattamento dei propri dati personali, ovvero: cognome, nome, patronimico, numero di telefono di contatto, indirizzo email, nonché tutti i dati personali necessari per comunicare con la Persona ed eseguire il contratto per la fornitura di servizi informatici.

Al fine di adempiere agli obblighi previsti dal contratto, la Persona concede a IP Zabolotnov Alexey Vladimirovich (TIN TIN212702621854, OGRNIP 313213018300022) il diritto di compiere qualsiasi azione (operazioni) con i propri dati personali senza limitazioni: raccolta, registrazione, contabilità, sistematizzazione, conservazione, chiarimento (aggiornamento, modifica), estrazione, accumulazione, spersonalizzazione, blocco, cancellazione, distruzione; utilizzo a fini statistici, a fini di analisi, al fine di informare la Persona (con invio tramite SMS o e-mail) sui prodotti e servizi della Società, nonché per compiere ogni altra azione soggetta alla normativa applicabile .

politica sulla riservatezza

Qualsiasi altra informazione trasmessa dalla Persona in relazione alla visita del sito ("Altre informazioni" che non sono dati personali della Persona e non possono essere utilizzate per identificare la Persona) può essere inclusa nei database di proprietà dell'IP Zabolotnov Alexey Vladimirovich (TIN TIN212702621854 , OGRNIP 313213018300022) o suoi rappresentanti. IP Zabolotnov Aleksey Vladimirovich detiene tutti i diritti su questi database e le informazioni in essi memorizzate. Altre informazioni che raccogliamo possono includere il tuo indirizzo IP e altre informazioni raccolte tramite i cookie (vedi sotto).

Questo sito può utilizzare una tecnologia nota come cookie. Un cookie è un messaggio che un server web invia al computer di una Persona quando la Persona visita un sito web. Quando visiti di nuovo, il nostro sito verificherà se il computer della Persona ha uno dei nostri cookie. I nostri cookie aumentano la funzionalità del sito e ci aiutano ad analizzare come il sito viene utilizzato in modo più accurato.

Questo sito utilizza indirizzi IP (Internet Protocol). Un indirizzo IP è un numero assegnato a un computer da un provider di servizi Internet per accedere a Internet. In genere, l'indirizzo IP cambia ogni volta che si accede a Internet (questo è un indirizzo "dinamico"). Tuttavia, se viene utilizzata una connessione ad alta velocità, a seconda delle circostanze, è possibile che l'indirizzo IP o anche il cookie che utilizziamo contenga informazioni di identificazione personale. Questo perché, con alcuni tipi di connessione ad alta velocità, il tuo indirizzo IP non cambia ("statico") e può essere associato al computer della Persona. Utilizziamo l'indirizzo IP della Persona per comunicare informazioni generali sull'utilizzo del sito, nonché per migliorarlo.

Questo sito Web utilizza la tecnologia per determinare la posizione di una Persona.

L'interessato è obbligato ad abbandonare questo sito se non desidera che i dati di cui sopra (cookie, indirizzo IP e dati di localizzazione) siano trattati.

Questo sito non è destinato a persone di età inferiore ai 18 anni. Non raccogliamo dati personali da soggetti che, a nostra conoscenza, hanno meno di 18 anni. Questo sito in cui vengono raccolte le informazioni utilizza la crittografia SSL (Secure Sockets Layer) standard del settore. Tuttavia, per utilizzare questa opzione, il browser deve supportare la chiusura crittografica (da Internet Explorer 3.0 in poi). IP Zabolotnov Aleksey Vladimirovich si riserva il diritto di fornire informazioni agli organi statali su richieste appropriate o nei casi previsti dalla legge.

Per rimuovere le informazioni su una Persona dai nostri elenchi di contatti, contattare il seguente indirizzo: IP Zabolotnov Alexey Vladimirovich, tel.: +7 8352 441133. Oppure tramite e-mail: [email protetta] sito web

Un individuo può continuare a ricevere materiali mentre i nostri elenchi vengono aggiornati. La Privacy Policy del Sito potrebbe essere aggiornata di volta in volta. Dopo l'aggiornamento, queste regole saranno disponibili su questa pagina.

Nel nostro esempio, il report mostra l'output di prodotti e servizi per reparti, gruppi di articoli e suddiviso per mesi.

Ecco la pagina principale del report:

Questa pagina viene richiamata dal configuratore nel menu File - Nuovo - Report esterno.

Innanzitutto, aggiungiamo un set di dati (Dataset1). Nella finestra "Richiesta", puoi digitarlo tu stesso, crearlo utilizzando il Generatore di richieste o caricarlo da un file. Il modo più conveniente è utilizzare il costruttore di query. Leggi come funziona il costruttore.

Tutto ciò che è necessario viene compilato automaticamente, ma alcune cose devono essere ottimizzate.

Ad esempio, per le intestazioni di colonna (la casella di controllo "Quantità" nella figura sopra consente di digitare qualsiasi testo di intestazione per questo campo), è possibile impostare il formato di output dei dati (vedere Formato nella riga Quantità). Il formato è modificabile per qualsiasi tipo di dato: stringhe, date, numeri.

Nella scheda Risorse, seleziona le risorse stesse e configura l'output dei risultati per esse:

La scheda Parametri contiene tutto ciò che modifica il contenuto del report (ad esempio, il periodo per il quale verranno selezionati i dati). Viene compilato automaticamente in base ai parametri della richiesta (vedi prima pagina). Con i segni di spunta è possibile regolare la visibilità, la disponibilità di questi parametri, impostare il valore iniziale, ecc.:

Ricevi gratuitamente 267 videolezioni 1C:

E infine, Impostazioni. Qui viene disegnato l'aspetto del rapporto: colonne, righe, posizione l'una rispetto all'altra, raggruppamenti, ecc. Il pulsante "Apri designer impostazioni" ti aiuterà a disporre le righe e le colonne nell'ordine desiderato. Il pulsante "Impostazioni elemento personalizzato" ti consentirà di visualizzare i parametri nell'intestazione del rapporto:

Prestare attenzione alla colonna Periodo.Parti di Date.Nome del mese. Come visualizzare il nome del mese nell'intestazione della colonna? È qui che viene fuori.

A proposito, è questa impostazione che ti consente di visualizzare i dati per più periodi contemporaneamente nelle colonne adiacenti del rapporto:

Un'altra scheda importante è Campi selezionati. Se è vuoto, il report non verrà generato. Di solito viene compilato automaticamente facendo clic sul pulsante "Apri designer impostazioni":

In realtà, questo è tutto ciò di cui hai bisogno dal minimo richiesto. Di conseguenza, avremo un rapporto del seguente modulo:

Lavorare con i prodotti software forniti da 1C comporta non solo l'inserimento e la sistematizzazione delle informazioni primarie (compilazione di elenchi e invio tempestivo di documenti), ma anche la formazione di vari moduli stampati basati su questi dati. A tal fine è stato creato un oggetto speciale: i report. I rapporti in 1C aiutano ad analizzare la situazione attuale dell'azienda nel contesto di vari indicatori e offrono l'opportunità di prendere decisioni di gestione competenti sulla base di queste informazioni.

Rapporti ed elaborazione

In generale, non ci sono differenze significative tra questi due tipi di oggetti:

  • Possono contenere layout di moduli stampati;
  • Potrebbero avere procedure nei loro moduli per modificare le informazioni;
  • Possono essere interni e integrati;
  • I report esterni e l'elaborazione esterna nelle configurazioni tipiche sono archiviati nella stessa directory.

È possibile separare condizionalmente il rapporto e l'elaborazione secondo il principio di utilizzo. Il layout è necessario per visualizzare le informazioni in una forma intuitiva, l'elaborazione viene creata per apportare modifiche al database. Inoltre, nelle tabelle di output, è possibile specificare lo schema di layout principale, che servirà a formare l'aspetto dei documenti restituiti, nonché le impostazioni per la memorizzazione dei parametri.

Gli oggetti fisicamente considerati nell'articolo differiscono dalle elaborazioni esterne per l'estensione del file:

  1. Elaborazione esterna - epf;
  2. Relazione esterna - erf.

Report esterni e incorporati

Se osservi attentamente l'albero di qualsiasi configurazione in 1C, noterai che c'è anche un ramo di report (Fig. 1)

Non ci sono praticamente differenze tra gestori esterni e interni. Inoltre, qualsiasi file ert può essere incorporato nella configurazione e viceversa, il meccanismo integrato può essere caricato su una risorsa esterna. Ad esempio, se vogliamo apportare modifiche al gestore standard "Analisi dei contributi ai fondi", dobbiamo richiamare il menu contestuale dell'oggetto corrispondente e selezionare il sottomenu "Salva come esterno..." (Fig. 2)

Riso. 2

L'azione inversa è denominata sottomenu "Sostituisci con esterno", ma per questo la configurazione deve essere aperta per la modifica.

L'unica differenza tra l'oggetto integrato è che è possibile accedervi dal codice di programma dei moduli; per un report esterno, questo è abbastanza difficile da fare se non è incluso nella directory corrispondente.

Crea un rapporto esterno

Puoi creare un report esterno solo in modalità Configuratore, per questo avrai sicuramente bisogno della conoscenza del linguaggio di programmazione integrato e, molto probabilmente, della capacità di lavorare con il linguaggio e il costruttore di query.

In linea di principio, il programmatore ha due opzioni per la compilazione dei dati recuperati dalle tabelle del database:

  1. Utilizzare il meccanismo del sistema di composizione dei dati (SKD);
  2. Compila a livello di codice un foglio di lavoro utilizzando un layout pre-preparato.

Nel secondo caso, lo sviluppatore dovrà pensare in modo indipendente attraverso l'interfaccia, le selezioni, i raggruppamenti e altre cose che possono essere create nell'ACS mentre l'utente lavora.

Ma, indipendentemente dal meccanismo scelto, devi partire dal menu "File", il sottomenu "Nuovo". Il menu per la selezione dell'oggetto creato si apre davanti allo sviluppatore (Fig. 3).

Riso. 3

Riso. 4

Qui vediamo:

  • Un nome che riassume lo scopo dell'oggetto nel modo più accurato possibile;
  • Sinonimo e commento - inteso per una descrizione completa;
  • Schema layout principale: qui puoi impostare il layout che verrà utilizzato per stampare il rapporto;
  • Il pulsante “Apri schema…” apre il costruttore del risultato dell'elaborazione;
  • Finestra per la descrizione di moduli, dettagli e layout.

Cliccando sul pulsante "Azioni" è possibile aprire il modulo dell'oggetto che si sta creando.

diagramma di layout

L'utilizzo di ACS per creare un report semplifica notevolmente il lavoro dello sviluppatore:

  1. Non c'è bisogno di pensare e creare la forma dell'oggetto;
  2. Selezioni, raggruppamenti, colonne del modulo visualizzato possono essere modificati dinamicamente nella modalità utente;
  3. È possibile creare e memorizzare diverse opzioni per la formazione del tavolo finale.

Ecco perché lo schema di layout dei dati sta diventando sempre più popolare nelle soluzioni moderne. Se si preme il pulsante corrispondente, il costruttore ACS si apre prima dello sviluppatore. (Fig. 5)

Riso.
5

Lo schema è archiviato nei layout degli oggetti.

Oltre ai report interni e integrati, esiste un'altra possibilità per archiviare e accedere a questi oggetti: la directory "Elaborazione aggiuntiva".

Registrazione di oggetti esterni nel database

Per i moduli gestiti, su cui si basano i moderni prodotti software 1C, la forma di registrazione dell'elaborazione esterna nel database è cambiata in modo significativo.

Se prima (sui moduli ordinari) bastava creare un nuovo elemento nel corrispettivo libro di riferimento, specificare la tipologia del gestore memorizzato e determinare il percorso del file del formato ert, allora sui moduli gestiti la registrazione avviene dal modulo dell'oggetto oggetto di registrazione.

A tale scopo, nel modulo handler deve essere definita la funzione di esportazione ExternalProcessingDetails. (Fig. 6)

Riso. 6

La Figura 6 mostra un insieme approssimativo di comandi che consentiranno di registrare un file nella directory.

Oltre alla funzione con le informazioni, ecco: un'altra procedura (AddCommand) e una funzione (GetCommandTable). Il loro contenuto è mostrato in Fig. 7

Riso. 7

Gli oggetti dell'applicazione progettati per ottenere tutti i tipi di tabelle pivot, per organizzare i dati in una forma conveniente per l'analisi e la visualizzazione in configurazioni 1C sono generalmente chiamati report. Come aggiungere un rapporto in 1C, varie opzioni per l'aggiunta, cercheremo di coprire queste e alcune altre domande in questo articolo.

Rapporti ed elaborazione: differenze

Allo stesso tempo, si distinguono da altri oggetti simili - lavorazioni:

  1. Possibilità di utilizzare ACS (sistema di collegamento dati);
  2. Con l'aiuto dell'elaborazione, è possibile inserire informazioni, il report viene utilizzato per visualizzare e organizzare i dati;
  3. La differenza sta nel formato del file: l'estensione epf indica che abbiamo a che fare con l'elaborazione, erf è tipico per i report esterni.

Dal punto di vista del programmatore, l'uso di questi oggetti è molto conveniente, perché non richiede modifiche ai metadati di configurazione e, quindi, non è necessario espellere gli utenti dal database per aggiornarlo.

Modi per aggiungere un report al database

Con l'aiuto di una guida speciale

Nella maggior parte delle configurazioni fornite da 1C, è presente una directory "Elaborazione esterna" che consente di salvare l'elaborazione nel database senza apportare modifiche ai metadati. Ci sono due modi per accedere a questa guida:

  1. Per le interfacce Completa e Amministrativa, andando su: Operazioni->Riferimenti->Elaborazione esterna;
  2. Tutti gli altri tramite: Servizio->Report ed elaborazione aggiuntivi.
  3. Successivamente, è necessario selezionare il tipo di modulo che si desidera ricevere.

Quindi, come aggiungere un layout alla directory tramite il modulo, la cui vista è mostrata in Fig. 1

Fig.1 Modulo di denuncia o registrazione in elaborazione

Prima di tutto, è necessario trovare un nome originale per l'elemento della directory, che rifletta al massimo l'essenza della tabella generata. Il secondo passaggio consiste nel selezionare il tipo di modulo aggiunto. Potrebbe essere:

  1. Un stampabile richiamato dal pulsante Stampa o da un altro pulsante in quegli oggetti che sono specificati nella parte tabellare "Accessorio modulo stampa";
  2. Compilazione delle parti tabulari, per le parti tabulari di documenti e directory presentati nella parte tabulare “Accessibilità del trattamento per la compilazione delle parti tabulari”;
  3. Trattamento;
  4. Rapporto.

Riso. 2 Campo di selezione del tipo di rapporto

Nella fase finale, è necessario selezionare un file contenente il codice elaborato tra quelli salvati su disco.

Fig.3 Una scritta che indica la necessità di selezionare un file di report

Quando scrivi un elemento, lo memorizzi nel database. Durante il ripristino e la migrazione del database, verranno migrati anche gli elementi salvati in questo modo.

Aggiunta alla configurazione

I passaggi seguenti richiedono l'accesso esclusivo al database.

Entrati nel configuratore e aperta la configurazione, si può iniziare ad aggiungere la lavorazione.

Se la configurazione è chiusa per la modifica, è necessario andare alla voce di menu Configurazione->Supporto->Supporto configurazione. Si aprirà una finestra, come in Fig.4

Riso. 4 Supporta la finestra di modifica

  1. Premi il pulsante "Abilita la possibilità di cambiare";
  2. Rispondi positivamente alla domanda.

Pertanto, sarai in grado di aggiungere i tuoi elementi ai metadati del database.

A questo punto, cliccando con il tasto destro del mouse sulla riga “Report” dell'albero di configurazione, è possibile aggiungere alla configurazione un compositore di dati esterno Fig.5.

Riso. 5 Sottomenu per aggiungere un report alla configurazione

Funzionalità di immissione dell'elaborazione su moduli gestiti

Un'interfaccia basata su moduli gestiti impone le proprie restrizioni alla visualizzazione di gestori aggiuntivi aggiunti alla base.

Prima di aggiungere un report a un modulo gestito in 1C, è necessario assicurarsi che sia stato creato utilizzando ACS, altrimenti il ​​modulo non verrà visualizzato correttamente.

Dopo aver aperto il programma in modalità Amministrazione, è necessario trovare nel Pannello di Navigazione la voce "Stampa moduli, report ed elaborazioni".

Riso. 6 Barra di navigazione 1C 8.3

Selezionando la casella "Report ed elaborazioni aggiuntive" nella finestra che si apre, potrai aggiungere al database i tuoi sviluppi per il modulo gestito.

Nel modulo, fai clic sul pulsante "Crea". Dopo aver ignorato la finestra di avviso, puoi procedere alla selezione di un file.

Molto spesso nelle ultime versioni del programma, il componente aggiuntivo si arresta in modo anomalo con un errore che indica che: "Metodo oggetto non trovato". Il fatto è che dopo aver creato un handler utilizzando il sistema di composizione dei dati, è necessario registrare la funzione ExternalProcessing Details() con il marchio Export nel suo modulo, questa funzione deve restituire i parametri di registrazione:

  1. L'oggetto a cui sarà connesso il gestore;
  2. Il nome con cui verrà registrato nel database;
  3. Nome della squadra.

Successivamente, puoi iniziare a posizionare il rapporto nell'interfaccia. Per fare ciò, fare clic sul comando "Posiziona".

Riso. 7 Sistemazione

In questo caso, l'attività dell'elemento viene regolata selezionando il valore appropriato nel campo "Pubblicazione".

Aggiunta senza posizionamento

Riscrivere l'elemento della directory ogni volta che vengono apportate modifiche al codice, in particolare la registrazione di questo gestore nella configurazione, è piuttosto un lavoro ingrato. Puoi farne a meno. E' sufficiente aprire semplicemente il file contenente l'elaborazione tramite il menu File->Apri File. Gli oggetti aperti più di recente vengono memorizzati come un elenco nella parte inferiore del sottomenu File.

Rapporti regolamentati

Oltre ai file e ai gestori esterni previsti dalla configurazione, esiste un altro tipo di report in 1C - regolamentato. Questi sono i layout dei dati, il cui lavoro è regolato dal fisco.

Per la natura del lavoro, questi moduli sono più simili a un documento. Il periodo di validità di tali gestori raramente supera un quarto; 1C ne rilascia regolarmente gli aggiornamenti.

Puoi aprirli dal menu Rapporti->Rapporti regolamentati. Dopo aver selezionato un'opzione di rapporto, il programma la riempirà con i dati del database. Se non ci sono abbastanza dati, il programma proporrà di aggiungere manualmente i dati mancanti.

I moduli compilati in modo incompleto vengono salvati con possibilità di compilazione. Un documento completamente compilato e verificato può essere stampato su carta o presentato elettronicamente all'ufficio delle imposte.

Prendi in considerazione la creazione di un report esterno in 1s 8 senza utilizzare un sistema di composizione dei dati. Per creare un report esterno utilizzeremo la configurazione Contabilità 2.0, i dati iniziali: “Scrivi un report su 62 conti contabili in cui verrà visualizzato il fatturato per il periodo specificato nel Controparti e Contratti di controparti.

1. Crea un rapporto

Prima di tutto, creeremo un file di rapporto esterno, per questo andremo a 1s 8 nella modalità Configuratore, vai al menu File -> Nuovo oppure clicca sull'icona nuovo documento.

Seleziona un elemento dall'elenco Rapporto esterno. Dopo aver creato un report esterno, assegnagli un Nome (ad esempio Rapporto più semplice) e salvarlo su disco. Aggiungeremo anche due puntelli: Inizio periodo e FinePeriodo genere data di, avremo bisogno di loro per limitare l'intervallo di tempo per il campionamento dei dati durante la generazione di un rapporto.

2. Creare un layout di report esterno

Per generare un report in 1s 8, è necessario un layout, questo è un modello per l'output dei dati in cui sono impostati tutti i parametri necessari, vengono disegnate le tabelle, ecc. Aggiungiamo un nuovo layout, per questo, nell'albero dei metadati del report, seleziona l'elemento Layout e premere il pulsante Aggiungere, durante la creazione, selezionare il tipo per il layout foglio di calcolo.

Il nostro layout avrà 4 aree:

  • Header - in quest'area visualizzeremo il nome del report, il periodo per il quale è stato generato e l'intestazione della tabella;
  • Dati controparte - in quest'area visualizzeremo i dati sulla controparte nella tabella;
  • Dati dell'accordo di controparte - in quest'area verranno visualizzati i dati sull'accordo di controparte nella tabella;
  • Piè di pagina - in quest'area visualizzeremo i valori totali per l'intero report per i campi Entrate e Spese.

Iniziamo a creare aree di layout. Per creare un'area nel layout, selezionare il numero di righe desiderato e fare clic Menu Tabella -> Nomi -> Assegna nome(O CTRL+MAIUSC+N). Alla zona Cappello scrivi il nome del rapporto: Fatturato 62 conti, disegnare con lo strumento frontiere intestazione del report, nonché impostare i parametri Inizio periodo e FinePeriodo. Con l'aiuto dei parametri, è possibile visualizzare i dati necessari nel report, di cui ci occuperemo nella fase successiva di sviluppo, ovvero quando si scrive il codice del programma del report. Per creare un parametro nel layout, seleziona la cella desiderata, scrivi in ​​essa il nome del parametro (senza spazi), fai clic destro su di esso, seleziona la voce nel menu che si apre Proprietà. Nelle proprietà della cella nella scheda Disposizione seleziona riempimento Parametro.

Successivamente, nella cella, il nome del parametro sarà racchiuso tra parentesi angolari ("<>“). Di conseguenza, la zona Cappello dovrebbe assomigliare a questo:

Nella regione di Data Contractor creeremo parametri per visualizzare il nome della controparte, nonché per entrate e spese per il conto 62, utilizzando lo strumento frontiere Progettiamo l'area sotto forma di una riga di tabella.

Nella regione di DataAgreementContractor creeremo parametri per visualizzare il nome del contratto, nonché per entrate e spese per il conto 62, utilizzando lo strumento Borders, disegneremo l'area sotto forma di una riga di tabella. Facciamo un piccolo rientro prima del parametro Accordo di controparte(questo può essere fatto dividendo e unendo le celle. Fare clic con il tasto destro sulla cella -> Unisci o Rompi la cella), è necessario per mostrare nella segnalazione che la riga del contratto è inferiore nella gerarchia rispetto alla riga della controparte.

Nella regione di Seminterrato Creiamo parametri per i totali di incassi e spese.

Di conseguenza, dovremmo ottenere un layout come questo:

3. Creare un modulo di rapporto

Per visualizzare i dati, impostare il periodo di formazione ei pulsanti Modulo il nostro rapporto avrà bisogno di un modulo. Per creare un modulo, trova l'elemento nell'albero dei metadati del report esterno Le forme e premere il pulsante Aggiungere. Nella prima pagina del generatore di moduli, non è necessario apportare modifiche, basta fare clic sul pulsante Ulteriore.

Nella pagina successiva del costruttore, seleziona entrambi gli oggetti di scena disponibili( Inizio periodo, FinePeriodo) per l'inserimento nel modulo.

Di conseguenza, otteniamo questo modulo:

Ma in questa forma non ci si addice, apporteremo alcune modifiche:

  • Pulsante di trascinamento Modulo dal pannello inferiore del report a quello superiore (questo sarà più conveniente per l'utente);
  • Allunga la forma verticalmente e orizzontalmente;
  • Disporre i campi Inizio periodo e FinePeriodo orizzontalmente;
  • Aggiungi un controllo Campo documento foglio di calcolo al modulo (il nostro rapporto verrà visualizzato in esso), assegnagli un nome TabDoc;
  • Creiamo un pulsante di selezione del periodo (quando viene premuto, verrà visualizzata una finestra di dialogo con una comoda selezione del periodo desiderato). Non scriveremo ancora il codice del programma, quindi posizioneremo semplicemente il pulsante accanto ai campi del periodo.

Di conseguenza, il nostro modulo sarà simile a questo:

4. Programmazione

Dopo aver creato il form di report, iniziamo a programmare. Per cominciare, creiamo una procedura per visualizzare una finestra di dialogo di selezione del periodo (abbiamo già creato un pulsante per questo nella fase precedente). Fare clic con il pulsante destro del mouse e selezionare la voce di menu Proprietà, nelle proprietà del pulsante vai alla scheda Sviluppi, dove utilizzando il pulsante con l'icona della lente di ingrandimento creeremo una procedura Pulsante1Premere nel modulo modulo.

Puoi passare dal modulo al suo modulo utilizzando le schede nella parte inferiore del modulo

Per chiamare il modulo di selezione del periodo, utilizziamo la procedura standard Contabilità 2.0 dal modulo generale Lavorare con le finestre di dialogo - HandlerPeriodSettingPressing, è necessario passargli i dettagli del report come parametri Inizio periodo e FinePeriodo.

Procedura Pulsante1Premere(elemento) Lavorare con Dialogs.HandlerSettingPeriodPress(StartPeriod, EndPeriod); EndProcedura

Passiamo ora alla scrittura del codice che genererà e visualizzerà il nostro report. C'è già una procedura nel modulo modulo PulsanteFormPremendo che verrà eseguito quando si fa clic sul pulsante Modulo, quindi scriveremo il nostro codice lì. Iniziamo inizializzando le variabili necessarie. Per prima cosa, creiamo una variabile per campi del foglio di calcolo a cui forniremo i dati, questo non è necessario, solo la registrazione delle chiamate diventerà più breve, il che significa che il codice del programma sarà più comprensibile per la lettura.

TabDoc = FormElements.TabDoc;

Ottieni il layout del report esterno utilizzando la funzione Ottieni Layout(<ИмяМакета>) , passeremo il nome del layout al parametro e, se tale layout esiste, la funzione lo troverà.

Layout = GetLayout("Layout");

Dopo aver ricevuto il layout, creeremo variabili per ciascuna delle sue aree, utilizzeremo il metodo di layout per questo GetRegion(<ИмяОбласти>) .

AreaHat = Layout.GetArea("Cappello"); AreaDataAccount = Layout.GetArea( "Contraente dati"); AreaDataAgreement = Layout.GetArea("DataAgreement"); AreaFooter = Layout.GetArea("Seminterrato");

Cancella il campo del foglio di calcolo. Ciò è necessario affinché ad ogni nuova generazione di report i vecchi dati vengano eliminati.

TabDoc.Cancella();

Ora che l'inizializzazione delle variabili è completata, passiamo al riempimento e alla visualizzazione delle aree di layout una per una. Cominciamo con il cappello. Se ricordi, abbiamo creato due parametri in quest'area Inizio periodo e FinePeriodo, passeremo lì i valori del periodo di generazione del rapporto, per questo utilizzeremo la proprietà Parametri area di layout.

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

Niente più azioni nell'ambito Cappello il produttore non è necessario, quindi visualizzeremo il suo campo in un foglio di calcolo.

TabDoc.Output (intestazione regione);

Quindi, scriviamo una query nel database, con l'aiuto del quale prenderemo il fatturato sul conto 62 dal registro contabile autoportante. Definiamo una variabile in cui si troverà la nostra richiesta.

Richiesta = nuova Richiesta;

Prima di iniziare a scrivere il testo della richiesta, gli passeremo i parametri necessari. Dal momento che stiamo scrivendo una richiesta di fattura 62 contabilità, quindi prima di tutto creeremo un parametro per esso

Query.SetParameter("Account62" ,Grafici dei conti.Auto-supporto.FindByCode("62" ));

È inoltre necessario far passare alla richiesta il periodo di generazione del report. Non dimenticare che abbiamo dettagli di report speciali per il periodo di generazione e li passiamo come parametri.

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

Iniziamo a scrivere il testo della query, lo faremo utilizzando il generatore di query. Molti tutorial dicono che devi essere in grado di scrivere una query sia manualmente che usando il costruttore, ma in pratica non è così. Nelle attività che sono costantemente affrontate da un programmatore 1C, la priorità è la scrittura di codice rapida e di alta qualità e, quando si compila manualmente una query sul database, questo è quasi impossibile da ottenere, trascorrerai molto tempo prezioso per eseguire correttamente riprodurre tutte le costruzioni di query, trovare errori di battitura che hai fatto durante la scrittura, ecc. Quindi non perdere tempo a provare a scrivere query manualmente, ma usa il costruttore di query. Ti farà risparmiare tempo e ti consentirà di scrivere query complesse senza troppi sforzi. Per iniziare a scrivere il testo della richiesta, scriviamo nel codice:

Testo.Richiesta = "" ;

Dopodiché, posiziona il cursore tra le virgolette, premi il tasto destro del mouse e seleziona l'elemento Costruttore richiesta. Si aprirà la finestra di progettazione query.

Ora dobbiamo selezionare la tabella del database 1C 8 di cui abbiamo bisogno. Abbiamo bisogno di una tabella virtuale Fatturati registro contabile autoportante. Trovalo sul lato sinistro della finestra del designer

Spostiamola nell'area tavoli e inseriamo i parametri. Per tutte le tabelle virtuali della query è presente uno speciale set di parametri che consente di selezionare i dati necessari dalla tabella principale (nel nostro caso, la tabella principale Registro contabile autoportante). Apriamo la finestra dei parametri della tabella virtuale.

Compiliamo i parametri, il periodo che abbiamo passato alla richiesta. Per poter utilizzare un parametro nel testo della richiesta, è necessario scrivere un simbolo prima del suo nome e commerciale(&)

Resta da compilare la condizione sull'account. contabilità. Per fare ciò, trova la riga nei parametri della tabella virtuale CondizioneAccount e scrivi lì

Punteggio IN GERARCHIA (&Punteggio62)

Puoi anche utilizzare il generatore di condizioni facendo clic sul pulsante con tre punti.

Non è necessario imporre più condizioni al tavolo virtuale, quindi premi il pulsante ok nella finestra delle opzioni della tabella virtuale. Successivamente, dobbiamo selezionare i campi di cui abbiamo bisogno dalla tabella Autoportante Fatturato(vale a dire: Controparte, Accordo di Controparte, Entrate e Spese). Per vedere l'elenco dei campi disponibili nella tabella che abbiamo selezionato, premi il simbolo “+” accanto al suo nome. Successivamente, trascina i campi richiesti nell'area più a destra del generatore di query, che si chiama: Campi. Se apriamo il piano dei conti, lo vedremo per il conto 62 analisi di Per la controparte: questo è Subconto1, e da Contratto appaltatore — Subconto2.

Pertanto, dai campi della tabella virtuale, selezionare Sottoconto1 e Sottoconto2. Poiché abbiamo bisogno di entrate e spese per importo, selezioniamo anche i campi ImportoFatturatoDt e Importo FatturatoKt

Compiliamo gli alias dei campi che abbiamo scelto, per questo andremo alla scheda Unioni/alias e impostare i nomi dei campi desiderati.

Poiché nel nostro report i dati verranno visualizzati gerarchicamente (la controparte è al primo livello e tutti i suoi contratti sono al secondo), imposteremo l'output dei dati nella gerarchia utilizzando i Risultati. Andiamo alla scheda nel costruttore Risultati. Trascina e rilascia in sequenza i campi di raggruppamento controparte e Accordo di controparte, e in finale In arrivo e Consumo.

Questo completa il lavoro nel costruttore di query, fare clic sul pulsante ok e vediamo che il testo della nostra richiesta è apparso nel codice del programma.

Query.Text = "SELEZIONA | Fatturati autosufficienti Subconto1 AS Controparte, | Fatturati autoportanti Subconto2 AS Contratto di appaltatore, | AutoportanteFatturatoImportoFatturatoDt AS Incoming, | Autoportante Fatturato.ImportoFatturatoKt AS Spesa| DA | RegisterAccounting.Self-supporting.Turnovers(&Inizio del periodo, &Fine del periodo, Conto NELLA GERARCHIA (&Account62),) AS Self-supportingFatturato| RISULTATI | SOMMA(Reddito), | SOMMA(Spese) | ATTIVA | controparte, | Accordo di controparte";

Dopo aver finito di scrivere la richiesta, inizieremo a compilare le aree Data Contractor, DataAgreementContractor e Seminterrato. Riempiremo tutte queste aree con i dati ricevuti durante l'esecuzione della richiesta. Poiché la nostra query contiene raggruppamenti ( controparte e Accordo di controparte) seleziona i dati da esso come segue:

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

Pertanto, riceveremo registrazioni con i totali per tutte le controparti.

Prima di bypassare i dati di esempio utilizzando un ciclo, inizializziamo le variabili destinate al calcolo dei totali per il report:

Reddito totale = 0; Spesa totale = 0;

Affinché i dati del report vengano visualizzati con una gerarchia (e si diffondono per "+"), impostare l'inizio del raggruppamento automatico delle righe del documento del foglio di calcolo:

TabDoc.StartAutogroupRows();

Tutti i preparativi sono terminati, ora iniziamo a bypassare i risultati della query. Il bypass verrà effettuato utilizzando il loop Ciao

Mentre SelectionContractor.Next() Ciclo EndCycle ;

All'inizio del ciclo, resettare i parametri In arrivo e Consumo le zone Data Contractor. Cosa serve? Immagina una situazione in cui la controparte zio Vasja, reddito 10 e onere 5, e per la controparte successiva zio Petia non ci sono entrate o spese, in questo caso, se non resettiamo i parametri In arrivo e Consumo, quindi nella riga per controparte zio Petia ci sarà un reddito di 5 e una spesa di 10.

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

Successivamente, riempi l'area Data Contractor dati dell'articolo campione

CompilarePropertyValues(AreaDataAccount.Parameters, SelectionAccount);

Dopo aver compilato i dati, è possibile visualizzare l'area in foglio di calcolo, Poiché utilizziamo il raggruppamento automatico delle linee, dobbiamo specificare il livello della linea nel raggruppamento (nel nostro report ci saranno due livelli, per le controparti il ​​primo per i contratti il ​​secondo).

TabDoc.Output(AreaDataAccount,1);

Ora per questa controparte faremo una selezione in base ai suoi contratti.

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

Il bypass verrà effettuato utilizzando il loop Ciao.

Mentre SelectionAgreementContractor.Next() Cycle EndCycle ;

Nel ciclo per i contratti delle controparti azzereremo i parametri In arrivo e Consumo, riempi l'area DataContratto dalla selezione e visualizzarlo in un foglio di calcolo al secondo livello di record.

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

Anche in questo ciclo, aggiungeremo i valori correnti alle variabili per il calcolo dei valori totali per entrate e uscite.

TotalIncome = TotalIncome + SelectionAgreementContractor.Income; Spesa totale = Spesa totale + Accordo dell'appaltatore di selezione.Spese;

Questo conclude l'output dei dati nell'area Data Contractor, DataAgreementContractor completato, resta da completare il raggruppamento automatico delle righe del documento del foglio di calcolo.

TabDoc.EndAutoGroupRows();

Cicli completamente responsabili dell'output dei dati nell'area Data Contractor e DataAgreementContractor Assomiglia a questo:

TabDoc.StartAutogroupRows(); Mentre SelectionContractor.Next() Loop AreaDataContractor.Parameters.Incoming = 0 ; AreaDataAccount.Parameters.Expense = 0 ; CompilarePropertyValues(AreaDataAccount.Parameters, SelectionAccount); TabDoc.Output(AreaDataAccount,1); SelectAgentContract = SelectContractor.Select(BypassingQueryResult.By Raggruppamenti); Mentre SelectionAgreementContractor.Next() Loop AreaDataAgreement.Parameters.Incoming = 0 ; AreaDataAgreement.Parameters.Expense = 0 ; CompilarePropertyValues(AreaDataContract.Parameters, SelectionContractorContract); TabDoc.Output(AreaDataAgreement,2); TotalIncome = TotalIncome + SelectionAgreementContractor.Income; Spesa totale = Spesa totale + Accordo dell'appaltatore di selezione.Spese; ciclo finale; ciclo finale; TabDoc.EndAutoGroupRows();

Resta da visualizzare i dati totali nell'area Seminterrato e visualizzare l'area stessa foglio di calcolo.

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

Questo completa il processo di scrittura di un rapporto esterno per 1C 8 senza utilizzare ACS. Ora può essere generato in modalità 1C:Enterprise 8 e aggiunto alla directory Elaborazione esternaÈ possibile scaricare il file del rapporto discusso nell'articolo da .

Guarda il video sulla creazione di un stampabile esterno per un'app gestita:

Articoli correlati in alto