Elaborazione 1C per la creazione automatica delle directory. Informazioni contabili

Scarica l'elaborazione universale degli oggetti 1C 8.3.

Nella versione dell'applicazione regolare della piattaforma 1C 8.2 e 8.1 (sui moduli regolari) c'era un'elaborazione meravigliosa come "Selezione ed elaborazione universale di oggetti". Ha notevolmente semplificato la vita dei programmatori e degli amministratori dei programmi.

La stessa elaborazione 1C è apparsa per un'applicazione gestita (8.3 e 8.2). Prima di ciò, in 1C 8.3, era necessario accontentarsi dell'elaborazione standard delle modifiche di gruppo ai dettagli, ma non risolve tutti i compiti richiesti nel lavoro quotidiano di un utente o programmatore 1C.

Ricerca e selezione di oggetti

Dopo aver scaricato l'elaborazione, possiamo eseguirla come esterna. Per chi non lo sapesse, questo si fa tramite il menu “File” – “Apri”. Apparirà la finestra di elaborazione:

Nella prima scheda dobbiamo selezionare l'oggetto con cui lavoreremo. E così nel campo “Cerca oggetto” è già selezionato il documento “Vendite (atti, fatture)”. Questo perché questo oggetto è già stato selezionato in precedenza. L'elaborazione può ricordare.

Facendo clic sul pulsante "Imposta selezione", possiamo impostare la selezione per quasi tutti i campi dell'oggetto:

Se i dati di selezione non sono sufficienti, è possibile selezionare gli oggetti necessari utilizzando una query personalizzata. Per fare ciò, spostare l'interruttore "Modalità di selezione" nella posizione appropriata.

Dopo tutte le impostazioni, è necessario selezionare gli oggetti. Fare clic sul pulsante "Trova oggetti" e osservare il risultato della selezione:

Elementi di elaborazione

Andiamo alla scheda "Elaborazione":

Forse solo i primi tre trattamenti meritano una breve rassegna separata. Il lavoro del resto è chiaro per nome e non richiede impostazioni.

Algoritmo arbitrario

L'elaborazione “Custom Algorithm” consente di scrivere un programma di azioni sugli oggetti nel linguaggio interno 1C. L'elaborazione richiede competenze di programmazione e la sua descrizione meriterebbe un articolo a parte. Con il suo aiuto puoi eseguire azioni pratiche sugli oggetti:

Dettagli di impostazione

L'elaborazione “Impostazione dettagli” consente di modificare i dettagli dei documenti o delle directory selezionati, nonché i registri delle informazioni. Elaborazione abbastanza utile e talvolta semplicemente necessaria. Ad esempio, sostituiamo la valuta del documento nei documenti selezionati:

Va subito notato che l'elaborazione può essere eseguita immediatamente oppure è possibile salvare l'impostazione. Questa impostazione verrà visualizzata nell'albero di elaborazione.

Rinumerazione degli oggetti

L'elaborazione “Rinumerazione degli oggetti” consente pertanto di rinumerare i documenti o modificare i codici di elenco. L'elaborazione fornisce un ricco insieme di azioni. Ad esempio, hai deciso di modificare il prefisso dei documenti che hai selezionato:

Ora vediamo cosa possiamo fare con le impostazioni salvate. Si scopre che possiamo eseguirlo in un unico batch, trasferendolo nella finestra "Elaborazioni selezionate":

Ora possiamo eseguire in sequenza le impostazioni selezionate facendo clic sul pulsante "Esegui".

Basato su materiali da: programmist1s.ru

Attenzione! Questa è una versione introduttiva della lezione, i cui materiali potrebbero essere incompleti.

Accedi al sito come studente

Accedi come studente per accedere ai materiali scolastici

Creazione di configurazioni 1C: aggiunta di elaborazione

Continuiamo a studiare le basi della creazione di configurazioni su 1C.

In questa lezione creeremo insieme una nuova elaborazione e quindi scriveremo i comandi che dimostrano come lavorare con la directory "Employees".

Torniamo al configuratore e apriamo l'albero di configurazione.

Aggiunta di una nuova elaborazione

Fare clic con il tasto destro sulla sezione “Elaborazione” e selezionare “Aggiungi”:

Si apre la finestra per la creazione di una nuova lavorazione. Andiamo alla scheda "Base" e specifichiamo "Elaborazione directory" come nome dell'elaborazione:

Creazione di un modulo per l'elaborazione

Andiamo nella scheda "Moduli", clicchiamo sul segno più verde per aggiungere un nuovo modulo (rappresentazione visiva della nostra elaborazione):

È apparso un costruttore per la creazione di moduli. Lasciamo tutto come predefinito e facciamo clic su "Fine":

Si è aperto un nuovo modulo:

Crea un nuovo comando per il modulo

Andiamo alla scheda "Comandi" -> "Comandi modulo":

Aggiungiamo un nuovo comando (segno più verde):

E nelle proprietà del nuovo comando indicheremo il nome “OutputAllEmployees”:

Nelle sue proprietà, fai clic sulla lente di ingrandimento accanto al campo "Azione" per impostare il gestore dei comandi. Selezionare l'opzione per creare un gestore "Su Client" e fare clic su "OK":

Siamo stati trasferiti al modulo del modulo nella procedura del gestore del comando "Output All Employees":

Scrittura del codice del gestore dei comandi

Ora il nostro compito è scrivere il codice nel linguaggio interno 1C che itererà attraverso tutti gli elementi della directory "Employees".

Voglio dire subito che questo codice non può essere scritto direttamente nella procedura “Output All Employees”, poiché viene eseguito sul client (prestare attenzione alla riga speciale prima della procedura “&OnClient”). Tentare di leggere i dati dal database in una procedura client risulterà sempre in un errore (ricordatelo per ora).

Aggiungiamo quindi una procedura come questa alla fine del modulo:

Tieni presente che prima ho indicato l'attributo "&OnServer". Ciò significa che verrà eseguito sul server, il che significa che possiamo leggere i dati della directory da esso.

Ora organizziamo una chiamata a questa procedura dal client “OutputAllEmployees”:

Qui la logica è questa:

  1. L'utente richiama il comando "Output All Employees" (ad esempio, facendo clic su un pulsante, che in realtà non abbiamo ancora)
  2. Il comando avvia la procedura di gestione con lo stesso nome "Output All Employees" sul client (dopo tutto, il pulsante, e quindi il comando, è sul client)
  3. La procedura client "OutputAllEmployees" effettua una chiamata alla procedura server "OutputAllEmployeesOnServer"
  4. La procedura del server "Output AllEmployeesOnServer" legge i dati della directory dal database e li visualizza nella finestra dei messaggi

Non ci resta che scrivere il codice per la procedura “Output All Employees on Server”, che percorre gli elementi della directory “Employees” e li visualizza nella finestra dei messaggi.

In realtà non è difficile. Attraversare tutte le directory in 1C è lo stesso. Ciò significa che dopo aver imparato a farlo ora con la directory "Dipendenti", puoi fare lo stesso con qualsiasi altra directory.

Per accedere ai dati della directory viene utilizzato un manager al quale si accede nel modo seguente:

Gestore = Directory. Dipendenti;

In questa frase, la parte chiave è a destra del segno uguale. A sinistra c'è solo una variabile in cui salviamo il manager per lavorarci ulteriormente. Il nome di questa variabile potrebbe essere non solo "Manager", ma anche qualsiasi altro, anche "Batterista".

Cos'è un gestore di directory? Un manager non è i dati della directory stessa. Un manager è un oggetto programma (puoi considerarlo come una scatola nera) attraverso il quale possiamo fare qualcosa con la directory.

Il gestore di directory è come uno strato tra il nostro codice e i dati della directory. E si scopre che se dobbiamo leggere tutti gli elementi della directory, non possiamo farlo direttamente. Possiamo solo chiedere informazioni al nostro livello tra noi e la directory, cioè il manager.

Per fare ciò, è necessario chiamare il metodo "Seleziona" integrato nel gestore. Viene chiamato con un punto dopo il nome della variabile in cui è memorizzato il gestore e restituisce una raccolta di elementi della directory:

Gestore = Directory. Dipendenti; Campione = Direttore. Scegliere() ;

Cos'è un campione? Una selezione (di nuovo, questo è solo il nome della variabile in cui salviamo il risultato del metodo “Select”, e potrebbe essere qualsiasi altra cosa) è una raccolta, ma non è la stessa cosa, ad esempio, di un array o di un elenco di valori.

La selezione è un oggetto (consideralo ancora una volta come una scatola) ma non ancora i dati stessi. La particolarità di questo oggetto è che può scorrere gli elementi della directory di cui abbiamo bisogno. Inoltre, li ordina dinamicamente. Ciò significa che l'utilizzo del campionamento non legge tutti gli elementi della directory contemporaneamente, ma li seleziona in porzioni dal database.

Questo approccio consente di attraversare rapidamente grandi elenchi di directory utilizzando la selezione, senza caricarli tutti contemporaneamente nella memoria del computer.

Per ottenere il dato successivo da un campione, è necessario chiamare il metodo "Next" integrato nel campione. La ricezione di blocchi di dati (un blocco corrisponde a un elemento della directory) avviene solitamente in un ciclo:

Quando i dati (elementi della directory) nella selezione si esauriscono, il metodo “Next” restituirà False e il ciclo si fermerà.

Dopo ogni chiamata al metodo “Next” (a patto che restituisca “True”), la selezione conterrà tutti i campi con i dati del solo elemento della directory di lettura, a cui si può accedere per nome separato da un punto:

Si scopre in un momento: lavoriamo con i dati di solo uno degli elementi della directory. E qui possiamo mostrarli immediatamente all'utente (usando il metodo "Notifica") o, ad esempio, possiamo inserirli in un'altra raccolta (array) in modo da poter fare subito qualcosa con loro. Tutto dipende dal problema che stiamo risolvendo.

In 1C ci sono molti oggetti di configurazione che sono in un modo o nell'altro collegati alla contabilità, cioè ne consentono la manutenzione, directory, documenti, registri e così via. Ma cosa fare quando è necessario creare un programma nel linguaggio 1C che non ha nulla a che fare con la contabilità, ma è necessario per le esigenze ufficiali del programmatore o per facilitare il lavoro dell'utente?

Un ottimo esempio è l'elaborazione batch di documenti. Si tratta di uno strumento che permette di conservare/modificare/stampare non un solo documento, ma più documenti contemporaneamente, secondo una lista selezionata. D'accordo: molto conveniente.

Per implementare gli strumenti in 1C per facilitare il lavoro di un utente o amministratore di un database 1C, esiste uno speciale oggetto di configurazione: l'elaborazione 1C. L'elaborazione 1C può far parte della configurazione o essere distribuita come file separati (quindi l'elaborazione è chiamata elaborazione 1C esterna).

L'elaborazione 1C ti consente di sviluppare i tuoi strumenti sia per la programmazione 1C che per l'impostazione o la gestione di 1C. Grazie a questo, su Internet sono disponibili centinaia di trattamenti standard (sviluppati da 1C) e migliaia di trattamenti amatoriali.

È ora di provare a eseguire tu stesso l'elaborazione 1C. Dettagli di seguito.

Cosa sono le elaborazioni 1C e come vengono utilizzate?

Una piccola introduzione. Coloro che hanno già familiarità con l'elaborazione 1C possono saltare questo punto.

Quindi l'elaborazione è uno strumento scritto da un programmatore. Non può fare nulla da solo e non salva i dati nel database 1C, a differenza, ad esempio, di un documento, che viene salvato nel database e può essere registrato ed elaborato in modo indipendente, senza programmazione aggiuntiva. Le funzioni di elaborazione 1C dipendono interamente dal programmatore che l'ha scritta.

In base alla funzionalità, l'elaborazione 1C può essere suddivisa in tre tipi:

  • Elaborazione ausiliaria della configurazione 1C
    Ogni configurazione tipica ha molti trattamenti. Vengono utilizzati come moduli di interfaccia aggiuntivi (desktop utente, panoramica della configurazione), come parte della funzionalità di configurazione (immissione dei saldi iniziali, riempimento iniziale del database, chiusura del mese).
  • Oggetti (classi)
    Chi conosce altri linguaggi di programmazione conosce già il concetto di oggetto. Questa è una certa classe che ha a sua disposizione una serie di "variabili" e "funzioni". La sua bellezza sta nella sua autosufficienza, ovvero tutto ciò che è necessario per svolgere le sue funzioni è raccolto in un'unica classe.

    In 1C, le classi possono essere create utilizzando l'elaborazione 1C: "variabili" - dettagli di elaborazione 1C, "funzioni" - funzioni nel modulo oggetto di elaborazione 1C (marchio di esportazione per funzioni pubbliche). La comodità sta sia nel creare un'istanza di tale classe sia nel spostarla tra le configurazioni.

    Un buon esempio è l'elaborazione della stampa 1C (moduli stampati aggiuntivi), che potete trovare nelle configurazioni standard nella directory Moduli stampati aggiuntivi. Hanno sempre una funzione Print() pubblica e un utilizzo standardizzato.

    Tieni presente che, ovviamente, tali "classi" non sono direttamente associate ai dati: devono essere passate o lette nel "costruttore".

  • Strumenti aggiuntivi per utenti e amministratori
    Sono disponibili molti strumenti generici per l'utilizzo tipico di un DBA che non sono legati a una configurazione specifica. Tali strumenti spesso non sono inclusi nel pacchetto di configurazione standard e sono distribuiti separatamente (solitamente su dischi ITS). Oltre a quelli standard, i programmatori pubblicano molti dei propri strumenti su Internet.

    Gli esempi includono: elaborazione 1C del lavoro con apparecchiature commerciali, console delle attività 1C (visualizza un elenco di attività in esecuzione in base a una pianificazione), console delle query 1C (consente di eseguire qualsiasi query senza programmazione), ecc.

Dove si trovano le elaborazioni 1C?

Pertanto, sono presenti l'elaborazione 1C integrata nella configurazione e l'elaborazione 1C esterna.

L'elaborazione 1C integrata viene utilizzata in modo situazionale dal programmatore che sviluppa la configurazione, ovvero può essere visualizzata nel menu utente (parte del menu Servizio) o aperta a livello di codice da altri oggetti 1C (ad esempio, da un modulo di directory ).

In un modo o nell'altro, con i diritti di amministratore è possibile aprire un elenco di opzioni di elaborazione integrate nelle configurazioni e ognuna di esse, se può essere aperta (cioè se ha una maschera e il programmatore non ha impostato un blocco per aprirla ). Per fare ciò, utilizzare il menu Operazioni/Elaborazione nel Thick Client; utilizzare il menu Tutte le funzioni/Elaborazione nel Thin Client. Se non sai come trovare questi menu - .

Nel configuratore, l'elaborazione 1C incorporata nella configurazione si trova nel ramo Elaborazione.

L'elaborazione 1C esterna viene aperta sia nel configuratore che in Enterprise utilizzando il menu File/Apri.

Sicurezza. Notare che. Il modulo dell'oggetto di elaborazione 1C viene eseguito automaticamente quando si apre l'elaborazione 1C in modalità Enterprise. Pertanto, se si apre un'elaborazione scritta da un utente malintenzionato, questa può essere eseguita automaticamente senza alcuna domanda.

Come eseguire l'elaborazione 1C da soli

Quindi, passiamo alla parte divertente: l'algoritmo per creare da zero l'elaborazione 1C.

Elaborazione 1C 8.3— oggetti di configurazione utilizzati per modificare e trasformare le informazioni nel database.

Vediamo come crearlo, le sue proprietà, come differisce da un report, come l'elaborazione esterna differisce dall'elaborazione interna.

Non ci sono particolarità da notare nella realizzazione del trattamento. Tutte le funzionalità sono individuali e vengono fornite dallo sviluppatore di 1C 8.3 o 8.2.

L'elaborazione ha i propri dettagli, che memorizzano i valori nella RAM per tutta la durata della “vita” dell'oggetto. Oppure, volendo, si possono salvare i valori dei dettagli in formato .

Ottieni 267 lezioni video su 1C gratuitamente:

Una delle caratteristiche interessanti dell'elaborazione è la sua disponibilità quando si collega una connessione esterna. Cioè, quando ti connetti a 1C, puoi creare un oggetto a livello di codice, inserire i dettagli e chiamare la procedura di esportazione dal modulo. Un tipico esempio è lo scambio dati in modalità: una fonte esterna si collega al database, compila le impostazioni - dettagli oggetto e attiva la procedura di download/upload. Codice di esempio:

Oggetto = Processi. Scambio dati UniversalXML. Crea(); Oggetto. Opzioni = Opzioni;

Oggetto. Esegui caricamento();