Creazione di un modulo stampato 1s 8.3 zero. Aggiunta di un modulo di stampa esterno al database. Scrivere una richiesta di handicap stampata

Consideriamo la scrittura del modulo stampato più semplice 1s 8.1 - 8.2 utilizzando l'esempio di configurazione Contabilità aziendale 2.0. Diciamo che devi scrivere un modulo stampato esterno per un documento: visualizzare i dati di base del documento, oltre che dalla parte tabellare Merce: nomenclatura, prezzo, quantità e importo.

È possibile scaricare l'esempio risultante da .

Nel configuratore Imprese 1C 8 creare elaborazioni esterne ( File->Nuovo->Elaborazione esterna), impostare il nome, creare i dettagli richiesti per il modulo stampato esterno Riferimento all'oggetto con tipo DocumentLink.Vendita di beni e servizi.

Creazione di un layout di modulo stampato

Aggiungine uno nuovo disposizione, lascia il tipo di layout documento di foglio di calcolo. Creiamo tre aree sul layout: Intestazione, dati E Seminterrato. Questo può essere fatto selezionando il numero richiesto di righe e facendo clic sul menu Tabella->Nomi->Assegna nome (Ctrl+Shift+N).

Successivamente, iniziamo a posizionare testo e parametri nelle aree. Lo inseriremo nell'intestazione nome del modulo stampato, numero del documento E organizzazione, e disegna anche i bordi dell'intestazione della tabella e scrivi i nomi delle colonne. Quando si crea un parametro nelle proprietà della cella, nella scheda Layout è necessario impostare la proprietà Riempimento nel significato Parametro.

In zona Dati creiamo i parametri per visualizzare le righe nella sezione tabella( Nomenclatura, prezzo ecc.) e nel territorio Seminterrato per totali per quantità e importo.

Programmazione

Andiamo al modulo oggetto modulo di stampa Azioni->Apri modulo oggetto.

Creiamo lì una funzione di esportazione obbligatoria per i moduli stampati. Foca().

Funzione Stampa () Esportare EndFunction

Nella funzione creeremo una variabile per documento di foglio di calcolo, in cui verrà stampato il modulo stampato, otteniamo disposizione E aree di disposizione.

TabDoc = nuovo TabularDocument; Disposizione = GetLayout("Layout" ); HeaderArea = Layout.GetArea("Intestazione" ); AreaData = Layout.GetArea("Dati" ); AreaFooter = Layout.GetArea("Piè di pagina");

Compiliamo i parametri cappelli e portalo a documento di foglio di calcolo .

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

Per ottenere le righe della tabella Merce usiamo la richiesta.

Richiesta = nuova Richiesta; Request.SetParameter("Link", ObjectLink); Query.Text = "SELEZIONA | Vendita di beni e servizi Beni: nomenclatura, | Vendite di beni e servizi Beni Importo, | Vendita di beni e servizi Beni Prezzo, | Vendite di beni e servizi Beni.Quantità|DA | Documento Vendita di beni e servizi Beni COME Vendita di beni e servizi Beni|DOVE | Vendita di beni e servizi Beni. Link = &Link";

Passiamo i dettagli al parametro di richiesta Riferimento all'oggetto, da indicare nella condizione DOVE, che abbiamo bisogno dei dati solo dal documento da cui ricaviamo il modulo stampato. Per ottenere una query di esempio, prima la eseguiamo e poi selezioniamo le righe.

Seleziona = Query.Esegui().Select();

Successivamente nel ciclo inseriamo i parametri dell'area Dati per ogni riga del documento di esempio e visualizzarli documento di foglio di calcolo. Calcoliamo anche i valori totali nel ciclo le quantità E importi. Non compileremo ciascun parametro separatamente, ma utilizzeremo la procedura CompilaPropertyValues((<Приемник>, <Источник>) da contesto globale, copia i valori delle proprietà <Источника> alle proprietà <Приемника> . La corrispondenza viene effettuata in base ai nomi delle proprietà. Puoi leggere di più a riguardo in assistente sintattico 1C Enterprise 8.

Somma totale = 0; Quantità totale = 0; While Selection.Next() Ciclo FillPropertyValues(AreaData.Parameters,Selection); Somma totale = Somma totale + Somma campione; Quantità totale = Quantità totale + Quantità campione; TabDoc.Output(AreaData); FineCiclo;

Riempi e visualizza l'area Seminterrato.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = Somma totale; TabDoc.Output(AreaFooter);

Restituzione del documento del foglio di calcolo completato dalla funzione Foca().

restituire TabDoc;

Se stai utilizzando una delle configurazioni standard, dopo aver restituito il documento del foglio di calcolo 1C visualizzerà il modulo stampato sullo schermo. È inoltre possibile utilizzare il metodo del documento del foglio di calcolo per l'output. Spettacolo().

5. Collegamento di un modulo stampato a un documento

IN configurazioni standard 1C 8È disponibile una directory per la registrazione di moduli stampati esterni Elaborazione esterna. Per connetterti, vai al menu in modalità aziendale Servizi->Report ed elaborazioni aggiuntive->Moduli stampati esterni aggiuntivi.

Aggiungere nuovo elemento directory, caricare il modulo stampato dal disco e selezionare il tipo di documento.

Ora nel documento Vendite di beni e servizi Apparirà un nuovo stampabile.

Autoregistrazione del modulo stampato

Per garantire che quando si collega un modulo di stampa non sia necessario selezionare manualmente il tipo di documento, è possibile configurare registrazione automatica. Per fare ciò, aggiungi un nuovo layout e chiamalo Impostazioni_Registrazione automatica(questo è l'unico modo) e nella sua prima cella scriviamo Documentazione.<Наименование документа> (O Directory.<Наименование справочника> ).

Ora, quando colleghiamo un modulo di stampa, ci verrà chiesto di utilizzare parametri di registrazione automatica.

COSÌ! Esiste una configurazione (ad esempio "Gestione commerciale", edizione 10.3) e per essa è necessario sviluppare un modulo stampato esterno. Ad esempio, prendiamo il documento standard "Fattura per pagamento all'acquirente" (sebbene sia possibile creare moduli stampati esterni non solo per i documenti, ma anche per le directory).

Esempio per 1C 8.3 (Moduli gestiti)

È possibile visualizzare un esempio di sviluppo di un modulo stampato esterno per un'applicazione gestita.

Compito

Sviluppare un modulo stampato esterno che sarà disponibile dal documento "Fattura per il pagamento all'acquirente" e che conterrà il nome dell'organizzazione, la controparte e un elenco di merci con prezzo, importo e quantità.

Andare!

La prima cosa che devi fare è creare un file di elaborazione esterno. L’elaborazione dovrebbe contenere tre punti principali:
  1. Attributo "Link oggetto" con tipo "DocumentLink.Invoice for Payment to Buyer"
  2. Il layout che verrà stampato
  3. Funzione di esportazione "Print()" che restituisce un documento di foglio di calcolo
Queste azioni sono visibili nella Figura 1

"Disegnare un layout"

Il nostro layout conterrà due aree:
  1. Il titolo (intestazione) del documento (in quest'area verranno inseriti i nomi dell'ente e della controparte) e l'intestazione della tabella (con i nomi delle colonne)
  2. Tabella con le merci (colonne con nome, quantità e importo)
La Figura n.2 mostra il layout del modulo di stampa esterno. Tieni presente che la tabella e le celle di intestazione contengono parametri, non solo testo.

Funzione "Stampa()"

Il modulo è quasi pronto. Non resta che scrivere un riempimento programmatico dei campi del documento foglio di calcolo. Queste azioni vengono eseguite nel modulo oggetto di elaborazione, in una funzione chiamata “Stampa”, che DEVE essere esportabile.
Fase n. 1. Ricezione dei dati per l'intestazione, compilazione dei parametri dell'intestazione e output in un documento di foglio di calcolo TabularDocument = Nuovo TabularDocument; Layout = GetLayout("Il nostro layout"); Richiesta dati = Nuova richiesta("SELECT | REPRESENTATION(Fattura per pagamento all'acquirente. Controparte) AS Controparte, | REPRESENTATION(Fattura per pagamento all'acquirente. Organizzazione) AS Organizzazione | FROM | Documento. Fattura per pagamento all'acquirente AS Fattura per il pagamento all'Acquirente | DOVE | Fattura per il pagamento all'Acquirente. Link = &Link"); Richiesta dati.SetParameter("Link", ObjectLink); Intestazione = DataRequest.Execute().Select(); Cap.Avanti(); Area = Layout.GetArea("Intestazione"); Area.Options.Fill(Intestazione); TabularDocument.Output(Area); Fase n. 2. Ricezione di dati tabellari e output riga per riga dei prodotti
Richiesta dati.Testo = "SELECT | _Prodotti.Numero riga, | REPRESENTATION(_Prodotti.Nomenclatura) Nomenclatura AS, | _Prodotti.Quantità, | _Prodotti.Prezzo, | _Prodotti.Importo |FROM | Documento.Fattura per il pagamento all'acquirente.Prodotti AS _Prodotti |DOVE | _Prodotti. Link = &Link"; Fetch = DataRequest.Execute().Select(); Area = Layout.GetArea("Dati"); While Selection.Next() Loop Area.Parameters.Fill(Selection); TabularDocument.Output(Area); FineCiclo; Fase n. 3. Restituisci il documento del foglio di calcolo e la funzione di stampa restituire TabularDocument;

Aggiunta del nostro modulo di stampa esterno a 1C

Vai al menu "Servizi - Stampa modulistica esterna e lavorazioni - Stampa modulistica esterna"

Nella finestra di creazione dell'elemento che si apre, esegui le seguenti azioni:

  1. Caricamento del file di elaborazione esterno
  2. Indichiamo a quale documento di configurazione (o directory) è destinato il modulo stampato
  3. Modifiche alla registrazione

Stampiamo!

Apri un qualsiasi documento “Fattura di pagamento all'acquirente” (con la parte tabellare “Prodotti” compilata, perché è lì che riceviamo i dati da compilare), clicca sul pulsante “Stampa”, nella finestra che si apre seleziona la NOSTRA stampata modulo e fare clic su "Stampa"


ATTENZIONE! Questo algoritmo di sviluppo è adatto SOLO per una “Applicazione regolare”. Gli stampabili per le configurazioni gestite dall'applicazione sono diversi!

Il file del modulo stampato mostrato nell'esempio può essere

Andiamo a Servizio->Rapporti ed elaborazioni aggiuntive->Lastre di stampa esterne opzionali.

Si apre il modulo dell'elenco delle directory con moduli stampati esterni. Nel menu in alto dell'elenco, fare clic su Aggiungere. Viene visualizzato il modulo per la creazione di un elemento della directory.

Fare clic sul pulsante Apri e selezionare il file con il modulo di stampa desiderato. Successivamente, se necessario, impostare il nome desiderato (campo Nome).

Se il modulo stampato contiene parametri di registrazione automatica, verrà visualizzato un messaggio a riguardo. Clic Se ciò non accade è necessario indicare a quale documento sarà collegato questo modulo, per fare ciò è necessario aggiungere una riga nella parte tabellare “Affiliazione del modulo stampato”, dove nella sezione “Rappresentazione dell'oggetto” campo selezionare il tipo di documento a cui colleghiamo il modulo. Poiché nel nostro esempio si tratta di un atto di cancellazione dei materiali, selezioniamo il documento Richiesta-fattura.

Successivamente, vai su qualsiasi documento Richiesta-fattura, fai clic su Stampa e seleziona il modulo appena aggiunto.

Per BP 3.0, ZUP 3.0, UT 11, KA 2.0, ERP 2.0.

Per dimostrare l'aggiunta di un modulo stampato in un'interfaccia gestita, mostrerò l'aggiunta di un modulo esterno di una fattura per il pagamento a un documento con lo stesso nome in Contabilità 3.0.

Andiamo alla sezione corrispondente del programma:


È necessario che il flag per l'utilizzo di report ed elaborazioni esterne sia attivato; seguire il collegamento ipertestuale all'elenco degli oggetti esterni:

Nell'elenco che si apre, fare clic su Creare:


Nella finestra di dialogo, selezionare il file desiderato:


La scheda dell'oggetto esterno è compilata: nel layout vediamo la tipologia di oggetto base a cui verrà allegato il modulo e subito sotto il suo nome:


Scriviamo e chiudiamo il form dell'oggetto esterno creato.

Ora passiamo a qualsiasi documento Fattura per il pagamento all'acquirente e visualizzare il menu di stampa:


Istruzioni

Aprire il programma 1C:Enterprise versione 8. Prestare attenzione alla voce di menu "Servizio" - "Moduli di elaborazione e stampa esterni". Con il suo aiuto è possibile archiviare report esterni, elaborazioni, moduli stampati, nonché elaborazioni per il riempimento di elementi tabulari. Puoi anche collegare un modulo esterno invece di modificarne uno esistente, il che comporterebbe un'interferenza con la configurazione del programma.

Avviare il programma 1C:Enterprise in modalità configuratore, quindi creare un'elaborazione esterna, per fare ciò eseguire il comando “File” - “Nuovo”. Nella finestra che appare, seleziona “Elaborazione esterna”. Sullo schermo verrà visualizzato un nuovo modulo di elaborazione esterna. Dategli il nome “Esterno”. Quindi aggiungi un nuovo attributo chiamato “Riferimento oggetto”, specificane il tipo – “Documento. Collegamento. Vendita di beni e servizi." Per creare un documento stampabile per un diverso tipo di documento, utilizzare il tipo di collegamento appropriato.

Aggiungi un nuovo layout facendo clic sul pulsante corrispondente nella nuova finestra del modulo. Chiamalo "Layout", crea un'area chiamata "Intestazione", assegnagli il parametro "Testo intestazione". Quindi fare clic sul pulsante “Azioni”, selezionare il comando “Apri modulo oggetto”. Successivamente inserisci il testo del modulo, puoi utilizzare l'esempio pubblicato sul sito http://www.uasoft.com.ua/content/articles/315/.

Avvia il programma 1C:Enterprise, vai al menu Strumenti, seleziona Moduli di stampa esterni. Aggiunge una nuova voce all'elenco dei moduli. Per fare ciò, selezionare il file di elaborazione creato e, nella sezione tabellare, indicare che il modulo appartiene al documento "Vendite di merci". Verificare che la nuova lastra di stampa funzioni correttamente. Per fare ciò, apri il documento creato, traccialo, quindi nella parte inferiore dello schermo fai clic sul pulsante "Stampa", seleziona l'opzione "Modulo di stampa esterno".

Fonti:

  • come modificare un modulo stampato in 1c

Per creare e modificare moduli oggetto, il programma 1C:Enterprise fornisce uno speciale editor di moduli (o Form Designer). I moduli oggetto della soluzione applicativa sono progettati per rappresentare visivamente i dati mentre si lavora con il programma. L'editor del modulo contiene diverse schede che offrono la possibilità di modificare tutti gli elementi del modulo.

Avrai bisogno

  • computer, programma 1C

Istruzioni

Utilizzando l'editor del modulo, puoi aggiungere uno o più elementi “Gruppo – Pagine” al modulo; per fare ciò, fai clic sul segno più verde nell'angolo in alto a sinistra dell'editor nella scheda “Elementi”.
Nella modalità 1C:Enterprise, tutti gli elementi del gruppo esistenti verranno visualizzati ciascuno in una scheda separata. Per posizionarlo sopra o sotto quello di lavoro, nella finestra “Proprietà” di un particolare gruppo, alla voce “Visualizza”, selezionare l'apposito comando.

Puoi anche aggiungere elementi al modulo trascinando i dettagli richiesti nell'albero degli elementi. Per semplificare la navigazione nei controlli del modulo durante la modifica o l'immissione di dati, imposta l'ordine che preferisci, disponendo gli elementi nell'albero e subordinandoli ad altri elementi e impostando le proprietà degli elementi del gruppo in base alle tue esigenze.
Per modificare i dettagli del modulo - modificarli, crearne di nuovi o eliminarli, utilizzare il pannello nell'area dell'albero dei dettagli nella scheda corrispondente.

Per modificare l'interfaccia di comando, vai alla scheda appropriata. Vedrai un albero dei comandi, i cui rami principali sono il "Pannello di navigazione" e il "Pannello di comando". Alcuni comandi vengono aggiunti automaticamente all'albero dell'interfaccia dei comandi, ma puoi anche aggiungerli tu stesso trascinando i comandi necessari dall'elenco dei comandi globali (generali) o dall'elenco dei comandi del modulo.

I comandi del modulo vengono modificati nell'elenco corrispondente. Puoi aggiungerli, rimuoverli dall'elenco, impostare le proprietà per ciascun comando utilizzando la tavolozza delle proprietà, che puoi richiamare facendo clic sull'icona della matita nella riga di comando dell'elenco.
Per modificare i parametri del modulo, vai alla scheda "Parametri", dove puoi anche aggiungerli, eliminarli e impostare le proprietà desiderate.

Video sull'argomento

Il piano dei conti, utilizzato in contabilità per visualizzare le attività economiche di un'impresa, supporta una gerarchia a più livelli: conto - sottoconti. Affinché l'utente possa visualizzare i dati contenuti nel piano dei conti e correggerli, il sistema 1C consente di modificare la forma del conto. Inoltre, la forma stampata della fattura può essere modificata in qualsiasi altro documento in 1C.

Avrai bisogno

  • - personal computer con 1C.

Istruzioni

Per ogni conto o sottoconto viene fornita la contabilità analitica. Pertanto, quando si crea e successivamente si modifica un piano dei conti in 1C, è possibile fornire il numero richiesto di sottoconti, ovvero oggetti di contabilità analitica. Inoltre, le modifiche agli account e ai sottoconti possono essere apportate sia da un utente che lavora con un sistema di contabilità automatizzata sia da uno sviluppatore di software.

Questo articolo ti spiegherà in dettaglio come un principiante con poca conoscenza di 1C 8 può creare un modulo stampato. Ad esempio, prendiamo una delle configurazioni 1C 8 più comuni: Contabilità 2.0. Creazione di un modulo stampato 1C fasi di scrittura:

  • Creazione di un file di modulo di stampa esterno;
  • Creazione del layout del modulo stampato;
  • Scrittura del codice del programma per visualizzare sullo schermo i dati del modulo stampato;
  • Creazione di parametri per la registrazione automatica di un modulo stampato;
  • Collegamento di un modulo di stampa esterno alla base Imprese 1C.

Creazione di un modulo stampato 1C. Formulazione del problema

Siamo richiesti nella configurazione Contabilità 2.0 creare un modulo stampato per un documento Ricezione di beni e servizi. Nell'intestazione del modulo stampato, visualizzare i seguenti dati:

  • Organizzazione;
  • Controparte;
  • Contratto di controparte;
  • Data della ricevuta.

Visualizza i dati nella sezione tabella come tabella Merce documento. La tabella dovrebbe includere le seguenti colonne:

  • Nomenclatura;
  • Quantità;
  • Prezzo;
  • Somma;
  • E anche il prezzo dell'articolo alla data corrente (per tipo di prezzo dal documento).

File di elaborazione esterno

Passiamo alla risoluzione del problema. Innanzitutto, apriamo 1C 8 in modalità Configuratore. È in questa modalità che vengono eseguiti tutti gli sviluppi sulla piattaforma 1C 8. Ora dobbiamo creare un file di elaborazione esterno. Per fare ciò, fare clic sul menu File -> Nuovo... o dall'icona di un nuovo file.

Nella finestra che si apre, seleziona l'elemento Elaborazione esterna.

Il prossimo in campo NomeÈ necessario inserire il nome dell'elaborazione esterna. Nel nostro caso lo chiameremo semplicemente “PrintedForm”; il campo del sinonimo verrà compilato automaticamente. Si prega di notare che sul campo Nome, elaborazione esterna, il nome deve essere scritto senza spazi o segni di punteggiatura.

Aggiungiamo attributi di elaborazione esterni Collega all'oggetto e seleziona digita per lui DocumentLink Ricezione di beni e servizi. A tale scopo, nell'albero dei metadati dell'elaborazione esterna 1C, selezionare l'elemento Requisiti e premere il pulsante Aggiungere(pulsante con più verde). La finestra delle proprietà dell'attributo si aprirà sul lato destro dello schermo, nel campo Nome scriviamo - Riferimento all'oggetto. IN campo Tipo premere il pulsante con tre punti.

Espandiamo il ramo nell'albero dei tipi DocumentLink e trova lì l'elemento Entrata di merci e servizi, seleziona la casella accanto e fai clic OK.

Salviamo il file di elaborazione esterno sul disco rigido; per fare ciò, utilizzare il menu File -> Salva, pittogramma Salva(disco floppy blu) o una scorciatoia da tastiera CTRL+S. Chiamiamo il file salvato "PrintForm".

Creazione di un layout di modulo stampato

Iniziamo a creare un layout del modulo di stampa 1C. Il layout funge da modello per l'output del modulo di stampa, quindi se vuoi che il tuo modulo di stampa abbia un bell'aspetto, dovresti prestargli attenzione.

Aggiungiamo un nuovo layout nell'albero dei metadati dell'elaborazione esterna; non cambieremo nulla nella finestra di progettazione del layout e faremo clic sul pulsante Pronto.

Nel nuovo layout che si apre, creeremo diverse aree necessarie alla visualizzazione del modulo stampato. Tutte le aree di layout di cui abbiamo bisogno saranno orizzontali, quindi per creare una nuova area, seleziona il numero richiesto di linee di layout e vai al menu Tabella -> Nomi -> Assegna nome oppure usa la scorciatoia da tastiera Ctrl+Maiusc+N, quindi inserisci il nome della regione nella casella. Quando crei un'area di layout, non aver paura di commettere errori con il numero di righe; puoi sempre aggiungerle o rimuoverle. Per eliminare una linea di layout 1C, selezionare la linea desiderata e selezionare la voce nel menu contestuale Eliminare. Per aggiungere una nuova riga al layout, selezionare una riga qualsiasi del layout e selezionare la voce nel menu contestuale Espandere.

Aggiunta di un'intestazione di layout

Prima di tutto creiamo un'area Un berretto, verranno visualizzati i dati per l'intestazione del modulo stampato. Per quest'area avremo bisogno di sette linee di layout. Selezioniamoli e, come ho scritto sopra, premiamo la combinazione di tasti Ctrl+Maiusc+N, nel campo Nome scrivi "Cappello" e premi il pulsante OK.

Riempiamo l'area del layout con i dati di cui abbiamo bisogno. Di solito, nessun modulo stampato è completo senza un titolo, quindi creiamone uno anche nell'intestazione del nostro layout. Poiché nel titolo, oltre al nome del modulo stampato, visualizzeremo anche il numero del documento da cui è stato stampato, imposteremo come parametro nel layout il testo del titolo. Un parametro di layout è una cella di layout appositamente designata in cui è possibile emettere vari dati utilizzando il linguaggio 1C 8 integrato. Il titolo dovrebbe essere visualizzato su tutta la larghezza del modulo stampato, quindi decidiamo quante celle di layout saranno sufficienti per stampare su un orientamento orizzontale standard del foglio.

Di solito bastano tredici o quattordici celle di layout, selezionale nella prima riga dell'area Un berretto e combinare in una cella ( Menu contestuale -> Unisci). Successivamente, fai doppio clic sulla cella grande risultante e scrivi il nome del parametro, nel nostro caso "TitleText". Affinché il testo inserito diventi un parametro a tutti gli effetti, fare clic con il tasto destro sulla cella e selezionare l'elemento nel menu contestuale Proprietà. Sul segnalibro Disposizione troviamo il campo Riempimento e selezionare il valore Parametro. I parametri nel layout 1C sono indicati tra parentesi “<>».

L'intestazione del modulo stampato dovrebbe risaltare rispetto al resto del testo, quindi seleziona nuovamente la cella e utilizza le icone sul pannello di formattazione del layout per impostare l'allineamento del testo Centrato e dimensione del carattere 14.

Dopo il testo del titolo lo visualizzeremo nell'area Un berretto informazioni sull'organizzazione, controparte, accordo con la controparte e data di ricevimento della merce. Poiché anche tutti questi dati vengono presi dal documento, lo formalizzeremo anche con dei parametri. Inoltre, prima di ciascun parametro è necessario scrivere un testo esplicativo in modo che l'utente possa facilmente capire dove si trova l'organizzazione, dove si trova la controparte, ecc. Tutte queste azioni sono simili alla creazione di un titolo, quindi non mi soffermerò su di esse in dettaglio, mi limiterò a fornire un'immagine di ciò che dovrebbe accadere alla fine.

La figura mostra come i parametri di layout differiscono dal testo normale.

Aggiunta di un'intestazione della tabella di layout

L'ultima cosa che dobbiamo creare in quest'area di layout è l'intestazione della tabella, nella quale verranno visualizzati i dati della parte tabellare Merce. Le colonne richieste per la tabella sono state descritte nella sezione "Dichiarazione del problema". Creeremo anche un'intestazione di tabella utilizzando una combinazione di celle e scrivendo testo (nomi di colonne). Seleziona i bordi dell'intestazione della tabella utilizzando lo strumento Telaio, che si trova nel pannello di formattazione del layout.

Aggiunta di una tabella a un layout

Creiamo un'altra area nel layout: Dati. Al suo interno verrà visualizzata la tabella dati della parte tabellare Merce. Per quest'area abbiamo bisogno solo di una riga di layout. Per visualizzare tutte le righe della parte tabellare in un modulo stampato, riempiremo e visualizzeremo quest'area il numero di volte richiesto. Colonne nella zona Dati dovrebbe coincidere con le colonne dell'intestazione della tabella, quindi compilarla non sarà difficile. L'unica differenza è nella zona Dati abbiamo bisogno di parametri, non solo di testo. Tieni inoltre presente che per impostazione predefinita i parametri numerici sono formattati a destra mentre i parametri di testo sono formattati a sinistra. Per selezionare le colonne, è necessario utilizzare anche lo strumento Telaio.

Aggiunta di un piè di pagina a un layout

L'ultima area di layout di cui abbiamo bisogno è Seminterrato. Verranno visualizzati i totali per quantità e importo. La creazione è simile alla creazione di un'area Dati, ma inoltre i risultati dovrebbero essere evidenziati in grassetto.

Il risultato finale dovrebbe essere un layout simile a questo:

Creazione di un modulo stampato 1C. Programmazione

Iniziamo a programmare: ecco la fase più importante creazione di un modulo stampato. Prima di tutto, andiamo al modulo oggetto modulo di stampa esterno, qui è dove programmeremo. Per fare ciò, nella finestra principale dell'elaborazione esterna, fare clic su Azioni -> Apri modulo oggetto.

È necessario creare una funzione di esportazione nel modulo oggetto modulo di stampa esterno Foca().

Funzione Print() Esporta EndFunction

Tieni presente che questa funzionalità è richiesta per i moduli di stampa esterni nelle configurazioni che utilizzano l'applicazione normale. Tutto il successivo codice di programma necessario per visualizzare il modulo stampato verrà scritto all'interno di questa funzione.

Inizializzazione delle variabili di base

Creiamo una variabile TabDoc, che conterrà un documento di foglio di calcolo: questo è esattamente il modulo stampato in cui visualizzeremo le aree riempite del layout.

TabDoc = nuovo TabularDocument;

Ad una variabile Disposizione Otterremo il layout del modulo stampato che abbiamo creato. Per fare ciò utilizziamo la funzione integrata OttieniLayout(<ИмяМакета>).

Disposizione = GetLayout("Layout");

Convertiremo tutte le aree del layout in variabili. Per fare questo utilizziamo il metodo layout OttieniArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Intestazione"); AreaData = Layout.GetArea("Dati"); AreaFooter = Layout.GetArea("Piè di pagina");

Emissione dell'intestazione di un modulo stampato in un documento di foglio di calcolo

Tutte le variabili necessarie vengono inizializzate. Iniziamo a riempire e visualizzare le aree di layout in un documento di foglio di calcolo. Innanzitutto inseriamo il titolo del modulo stampabile; per questo dobbiamo passare il parametro Testo del titolo, che abbiamo creato nel layout, il testo di cui abbiamo bisogno. Per inserire i valori dei parametri per l'area di layout, esiste una raccolta speciale chiamata - Opzioni. Da cui attraverso “.” puoi ottenere qualsiasi parametro. Nel testo dell'intestazione trasferiremo il testo: “Modulo stampato”, nonché il numero del documento.

Header Area.Parameters.TitleText = "Stampa modulo"+LinkToObject.Number;

Compileremo in modo simile i restanti parametri dell'intestazione; otterremo tutti i valori necessari per essi dai dettagli Riferimento all'oggetto, che contiene un collegamento al documento da stampare.

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = ObjectLink.Date; Area intestazione.Parameters.Accordo della controparte = LinkToObject.Accordo della controparte;

Tutti i parametri dell'intestazione sono compilati, lo visualizzeremo nel documento foglio di calcolo che abbiamo creato, per questo utilizziamo il metodo Produzione(<Область>) .

TabDoc.Output(HeaderArea);

Scrivere una richiesta di handicap stampata

Iniziamo a riempire e disegnare l'area Dati. La creazione di un modulo stampato 1C implica anche la scrittura di una query; ne abbiamo bisogno per ottenere dati tabellari Merce e prezzi Nomenclature per la data corrente utilizzeremo Richiesta. Il linguaggio di query 1C 8 è simile a SQL, o meglio copia praticamente le capacità del suo operatore SELECT, ma l'intera query è scritta in russo. Pertanto, se hai almeno vagamente familiarità con SQL, capirai facilmente il linguaggio di query 1C 8.

In questa forma stampata la richiesta sarà abbastanza semplice e molti diranno che se ne potrebbe fare a meno, ma la conoscenza del linguaggio di query e la capacità di utilizzarlo con competenza è una delle competenze principali di un programmatore 1C. Le query consentono di ottenere campioni di dati complessi utilizzando meno risorse e il testo della query è molto più semplice da comprendere rispetto al codice di programma scritto senza utilizzare una query (o con un utilizzo minimo della stessa). Inoltre, 1C 8 dispone di un ottimo designer di query che consente di assemblare in modo interattivo una query dalle tabelle necessarie.

Creiamo una variabile che conterrà la richiesta.

Richiesta = Nuova richiesta;

Comporremo il testo della richiesta utilizzando il costruttore della richiesta. Per cominciare scriviamo:

Richiesta.Testo = "";

Posiziona il cursore del mouse tra le virgolette e premi il pulsante destro del mouse. Nel menu contestuale che si apre, seleziona la voce Richiedi costruttore, ci aiuterà molto nella creazione di un modulo di stampa 1C. Successivamente si aprirà la finestra di progettazione della query; contiene molte schede, ma per la nostra query ce ne serviranno solo quattro: “Tabelle e campi”, “Relazioni”, “Condizioni”, “Join/Alias”.

Per la nostra query avremo bisogno di due tabelle: table part Merce documento Ricezione di beni e servizi e un'istantanea delle ultime informazioni sulla data attuale del registro Prezzi degli articoli.

Sul lato sinistro della finestra del designer troviamo la colonna Banca dati. Contiene un albero di tutti gli oggetti di metadati, troviamo quelli che ci servono. Per fare ciò, apriamo il thread Documentazione e trova il documento Ricezione di beni e servizi, apriamolo e troviamo la parte tabulare Merce, trascinalo nella colonna di Progettazione query Tabelle. Puoi trascinare in tre modi: trascinando, facendo doppio clic sulla tabella o selezionandola e facendo clic sul pulsante “>”. Apriamo il thread Registri di informazione e trova un tavolo lì PrezziNomenclatura.ShortcutPiù recente, trascinalo anche nella colonna Tabelle. Queste due tabelle sono sufficienti per la nostra query.

Selezioniamo i campi di cui abbiamo bisogno dalle tabelle risultanti. Per fare questo, nella colonna Tabelle apriamo il tavolo e trova i campi: Nomenclatura, Importo, Prezzo, Quantità e trascinali nella terza colonna del costruttore - Campi. Espandiamo la tabella , troviamo il campo Prezzo e trascinalo anche su Campi.

La struttura delle tabelle e dei campi della nostra richiesta è pronta, passiamo ora alle condizioni. Abbiamo bisogno dei dati tabellari Merce non sono stati prelevati da tutti gli scontrini, ma solo da quello che stampiamo. Per fare ciò, imporremo una condizione sul tavolo Ricezione di merciServiziMerci. Andiamo alla scheda "Condizioni" del designer di query. In una colonna Campi si trovano le tabelle che abbiamo selezionato in precedenza, per la condizione avremo bisogno di un campo Collegamento dal tavolo Ricezione di beni e servizi Beni, Trasciniamolo nella finestra Condizioni.

Nelle query 1C è possibile utilizzare i parametri; sono necessari per trasferire i dati alla richiesta. Ad esempio, se vogliamo limitare la selezione dei documenti a un documento specifico, possiamo utilizzare un parametro per passare un collegamento a questo documento alla richiesta e utilizzare questo parametro nella condizione. Questo è esattamente ciò che faremo nella nostra richiesta.

Dopo la finestra Condizioni abbiamo aggiunto un campo Collegamento, lo stesso progettista della query creerà un parametro con lo stesso nome e lo posizionerà dopo il segno "=". Se lo si desidera, questo parametro può essere rinominato. Nel testo della richiesta i parametri sono contrassegnati con “&”, ma in in questo caso non è necessario farlo, poiché si presuppone che la seconda parte della condizione contenga un parametro, devi solo ricordarlo. Di seguito verrà discusso come passare un valore a un parametro di richiesta 1C.

Poiché nella richiesta non utilizziamo una tabella completa dei prezzi dei prodotti, ma una virtuale (una fetta di quest'ultima in questo caso), dobbiamo impostare le condizioni per la formazione di questa tabella virtuale, nel nostro caso si tratta di data limite e condizione per il tipo di prezzi (i prezzi che hanno un tipo di prezzo rigorosamente definito è quello specificato nel documento di ricevuta che stampiamo).

Per compilare i parametri del tavolo virtuale, vai alla scheda Tabelle e campi costruttore di query, nella colonna Tabelle seleziona la tabella PrezziNomenclaturaTaglioUltimo e premere il pulsante Opzioni della tabella virtuale, situato in alto. Nella finestra che si apre, nel campo Periodoè necessario impostare un parametro a cui far passare la data in cui verrà effettuato il taglio del prezzo. Nel nostro caso questa sarà la data corrente (cioè oggi), quindi chiameremo il parametro “&CurrentDate”. Nel campo delle condizioni scriveremo le condizioni per il tipo di prezzo, lo passeremo anche nel parametro, che chiameremo “&TypePrice”. La condizione risultante sarà simile a questa (dove TipoPrezzo- misurazione del registro Prezzi degli articoli):

TipoPrezzo = &TipoPrezzo

I parametri della tabella virtuale sono compilati, fare clic sul pulsante OK.

Ora che abbiamo limitato la selezione solo al documento che ci serve, creiamo connessioni tra le tabelle delle query. Se ciò non viene fatto, i prezzi della tabella PricesNomenclatureSliceLast non verranno associati all'articolo della ricevuta. Andiamo alla scheda Connessioni progettista di query. Creiamo una connessione attraverso il campo Nomenclatura tra i nostri due tavoli. Per fare ciò, premere il pulsante Aggiungere, nel campo Tabella 1 seleziona una tabella Ricezione di merciServiziMerci, e nel campo Tabella 2 - PrezziNomenclaturaFettaUltimo. Nelle condizioni di comunicazione selezionare i campi Nomenclatura da entrambi i tavoli.

Va inoltre notato che nella selezione della query dobbiamo ottenere tutte le righe dalla parte tab Merce e i prezzi solo se disponibili alla data corrente per il tipo di prezzo documento. Quindi, i dati tabellari Merce sono obbligatori, ma i dati sulla ripartizione dei prezzi non sono disponibili. Pertanto, nei rapporti tra queste tabelle, è necessario utilizzare il cosiddetto LEFT JOIN, e la tabella di sinistra (o richiesta) sarà Ricezione di merciServiziMerci e il diritto (o facoltativo) PriceNomenclatureSliceLast. In modo da a sinistra unisciti le tabelle delle query hanno funzionato come ho descritto sopra, è necessario selezionare la casella Tutto dopo il campo Tabella 1.


La richiesta è quasi pronta, non resta che lavorare un po' sul campo alias. Andiamo al segnalibro Unioni/Alias e impostare un alias per il campo PrezziNomenclatura Slice Ultime.Prezzo. Il soprannome sarà - PrezzoAsToday, è necessario affinché i nomi dei campi di selezione della query e i nomi dei parametri nel layout del modulo stampato corrispondano.

Il lavoro nel Designer query è ora completo, fare clic su OK. Dopo la chiusura della finestra di progettazione, vedrai che la riga con il testo della richiesta è compilata e assomiglia a questa:

Request.Text = "SELECT | Ricezione di beniServiziProdotti.Nomenclatura, | Ricezione di beniServiziProdotti.Importo, | Ricezione di beniServiziProdotti.Prezzo, | Ricezione di beniServiziProdotti.Quantità, | PrezziNomenclatura Sezione di ultimo.Prezzo AS PrezzoOggi | DA | Documento. Ricevuta di BeniServizi.Merci AS RicevutaA varsServiziProdotti CONNESSIONE A SINISTRA RegisterInformation.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) COME Nomenclatura PrezziSliceLast | ON Ricezione di merciServiziProdotti.Nomenclatura | = PrezziNomenclatureSliceLast.Nomenclatura |DOVE | Ricezione di merciServiziProdotti.Link = &Link";

Esecuzione della richiesta

Passiamo i parametri necessari alla richiesta; per questo utilizzeremo il metodo request ImpostaParametro(<ИмяПараметра>,<Значение>). Per ottenere la data corrente, utilizzare la funzione integrata La data attuale(), restituisce la data e l'ora del computer.

Eseguiamo una query per ottenere un campione con i dati di cui abbiamo bisogno. Per fare ciò, utilizzare prima il metodo request Correre() e poi il metodo Scegliere().

Seleziona = Query.Esegui().Select();

Compilazione della tabella del modulo stampato

Di conseguenza, nella variabile Campione conterrà una selezione di risultati della query, puoi esplorarlo utilizzando il metodo Prossimo(), e per eseguire il tutto è necessario un loop Ciao. Il disegno sarà il seguente:

While Select.Next() Ciclo EndLoop;

È in questo ciclo che riempiremo e visualizzeremo l'area di layout Dati. Ma prima inizializziamo due variabili di tipo numerico. In essi raccoglieremo i totali per quantità e importo che dobbiamo esporre in zona Seminterrato.

Somma totale = 0; Quantità totale = 0;

All'interno del loop riempiremo l'area Dati dati dall'elemento di selezione corrente in variabili Importo totale E Quantità totale aggiungi valori di somma e quantità e infine visualizza l'area in un foglio di calcolo utilizzando il metodo a noi già familiare Produzione(). Poiché i nomi dei campi della nostra richiesta coincidono completamente con i nomi dei parametri dell'area Dati, quindi per compilare utilizzeremo la procedura integrata FillPropertyValues(<Приемник>, <Источник>), che copia i valori delle proprietà<Источника>alle proprietà<Приемника>.

While Selection.Next() Ciclo FillPropertyValues(AreaData.Parameters,Selection); Somma totale = Somma totale + Somma campione; Quantità totale = Quantità totale + Quantità campione; TabDoc.Output(AreaData); FineCiclo;

Output del piè di pagina di un modulo stampato in un documento di foglio di calcolo

Resta da riempire e visualizzare l'ultima area del layout - Seminterrato. Abbiamo già predisposto i dati per la compilazione, la compilazione e il prelievo vengono effettuati secondo lo stesso schema.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = Somma totale; TabDoc.Output(AreaFooter);

Il documento in foglio di calcolo è completamente compilato, non resta che visualizzarlo sullo schermo in modo che l'utente possa visualizzare il modulo stampato e stamparlo se necessario. Ma nelle tipiche configurazioni 1C 8, le procedure di moduli speciali sono responsabili dell'output di moduli stampati esterni. Pertanto è sufficiente tornare dalla funzione Foca() documento di foglio di calcolo completato.

Restituisci TabDoc;

A questo punto la fase di programmazione è conclusa e la realizzazione del modulo di stampa 1c è quasi completata. Testo completo della funzione Foca() Non lo riporto qui, potete guardarlo nel file stampabile, che potete scaricare in fondo all’articolo.

Creazione di un modulo stampato 1C. Opzioni di registrazione automatica

Quando si collega un modulo di stampa esterno al database, il sistema non determina automaticamente a quale documento o libro di consultazione è destinato il modulo di stampa; è necessario selezionarlo manualmente. E se un'altra persona ha scritto il modulo stampato e tu hai solo il compito di collegarlo, la scelta potrebbe diventare ambigua. Per evitare tali problemi, in tutti i moduli stampati esterni è necessario creare un layout con parametri di autoregistrazione. Se viene creato e formattato correttamente, il sistema determina automaticamente a quale documento o libro di consultazione è destinato il modulo stampato.

Viene fatto come segue:

  • Nell'elaborazione esterna creiamo un nuovo layout. Lo chiamiamo “Settings_Auto-Registration” (è importante non commettere errori!).
  • Nella prima cella del layout scriviamo Documentazione.(O Directory.) e il nome del documento a cui collegare il modulo stampato.

Collegamento di un modulo di stampa esterno alla base

  • Avvia 1C 8 in modalità Azienda;
  • Vai al menù Servizio -> Rapporti ed elaborazioni aggiuntive -> Moduli stampati esterni aggiuntivi;
  • Fare clic sul pulsante Aggiungere;
  • Nella finestra che si apre, clicca sull'icona Sostituisci il file di elaborazione esterno;
  • Se hai creato parametri di registrazione automatica, accettiamo di utilizzarli;
  • Se non hai creato parametri di registrazione automatica, nella parte tabellare Accessorio per lastra di stampa aggiungere documento richiesto o libro di consultazione;
  • premi il bottone OK.

Successivamente, nel menu sarà disponibile il modulo di stampa esterno Foca documento Ricezione di beni e servizi. La creazione del modulo stampato 1C può ora considerarsi completata.

Condividi con gli amici o salva per te stesso:

Caricamento...