Casa / Social networks / Accesso alla parte tabulare 1s 8. Come ottenere i dati dalla parte tabulare dei documenti? Come ottenere e ignorare le righe selezionate della sezione tabulare

Accesso alla parte tabulare 1s 8. Come ottenere i dati dalla parte tabulare dei documenti? Come ottenere e ignorare le righe selezionate della sezione tabulare

Esistono parti tabulari per molti oggetti in 1C:

  • Libri di riferimento
  • I documenti
  • Report ed elaborazioni
  • Piani dei conti
  • Piani di tipi di caratteristiche
  • Piani di tipo di calcolo
  • Processi e attività aziendali

Le parti tabulari consentono di memorizzare una quantità illimitata di informazioni strutturate appartenenti a un oggetto.

Diamo un'occhiata ad alcuni metodi per lavorare con parti tabulari.

Come bypassare la parte tabulare

È possibile utilizzare un ciclo per attraversare la parte tabulare Per tutti

Per ogni riga da TabularPart Loop

Report(String.TablePartAttribute) ;

Fine Ciclo ;

Ad ogni iterazione in una variabile Linea viene trasferita la riga successiva della parte tabulare. I valori degli attributi stringa possono essere ottenuti dall'espressione String.NomeAttributo.

Come ottenere e ignorare le righe selezionate della sezione tabulare

L'elemento form viene utilizzato per visualizzare le informazioni dalla parte tabulare dell'oggetto. campo della tabella. Per abilitare la possibilità di selezionare più righe in un campo della tabella, è necessario impostare il valore Molteplici presso la sua proprietà Modalità di selezione.

Per ottenere un elenco di righe selezionate, utilizzare il seguente codice:

Loop viene utilizzato per iterare sulle righe selezionate Per tutti:

SelectedLines = FormElements. Nome campo tabella. Linee selezionate;

Per ogni riga dal ciclo di righe selezionate

//riporta il contenuto

Fine Ciclo ;

Come selezionare a livello di codice le righe della parte tabulare (campo tabella) e rimuovere la selezione

Per deselezionare le righe in modo programmatico in un campo della tabella:

ElementiForm. Nome campo tabella. Stringhe selezionate. Chiaro() ;

Per selezionare a livello di codice tutte le righe in un campo della tabella:

Per ogni ciclo CurrentRow From TablePart
ElementiForm. Nome campo tabella. Linee selezionate. Aggiungi(RigaCorrente) ;
Fine Ciclo ;

Come cancellare il foglio di calcolo

TabularPart. Chiaro() ;

Come ottenere la riga corrente di una sezione tabulare

La riga corrente è il periodo in cui l'utente ha questo momento si trova il cursore. Per ottenerlo, è necessario fare riferimento al controllo sul modulo, che è associato alla parte tabulare.

Per i moduli regolari, il codice sarebbe simile a questo:

ElementiForm. Nome campo tabella. Dati correnti;

Per i moduli gestiti:

Elementi. Nome campo tabella. Dati correnti;

Come aggiungere una nuova riga a un foglio di calcolo

Aggiunta di una nuova riga alla fine della sezione tabulare:

NewRow = TablePart. Aggiungere() ;

Aggiunta di una nuova riga in qualsiasi punto della sezione tabulare (le righe successive verranno spostate):

NewRow = TablePart. Incolla(Indice)
//Index - il numero della riga aggiunta. La numerazione delle righe inizia da zero.

Nuova linea. Attributo1 = "Valore" ;

Come compilare a livello di codice i dettagli di una riga della tabella

Se è necessario compilare a livello di codice i dettagli della riga della sezione tabulare che l'utente aggiunge, è necessario utilizzare il gestore eventi della sezione tabulare AtStartEditing.

La procedura creata dal gestore ha tre parametri:

  • Elemento- contiene un controllo Campo tabella.
  • Nuova linea- booleano. Contiene valore Vero se aggiunto nuova linea sezione tabulare, e Menzogna, se l'utente ha iniziato a modificare una riga già esistente.
  • copiando- booleano. Contiene valore Vero se l'utente sta copiando la stringa, e Menzogna in altri casi.

Considera un esempio. Supponiamo di dover inserire i dettagli della sezione tabulare AccountAccount, nel caso in cui venga aggiunta una nuova riga. Quando si modifica una riga esistente, non è necessario modificare il conto contabile.

Procedura TabularPartAt EditingStart(Element, NewRow, Copy)

//Se l'utente sta modificando una riga esistente, non fare nulla
Se NON NuovaStringa Allora
Ritorno;
Finisci se ;

//Se la stringa è nuova, imposta l'account
TextString = Elemento. Dati correnti; //Ricevuta la riga corrente della sezione tabulare
TekString. AccountAccount = Piani dei conti. Autoportante. Conto desiderato;
FineProcedura

Per tenere conto di denaro e beni, negli affari sono ampiamente utilizzate diverse tabelle. Quasi ogni documento è una tabella.

Una tabella elenca le merci da spedire dal magazzino. In un'altra tabella: l'obbligo di pagare per questi beni.

Pertanto, in 1C, il lavoro con i tavoli occupa un posto di rilievo.

Le tabelle in 1C sono anche chiamate "parti della tabella". Libri di riferimento, documenti e altri li hanno.

La query restituisce una tabella come risultato della sua esecuzione, a cui è possibile accedere in due modi diversi.

La prima - più veloce - selezione, ottenendo righe da essa è possibile solo in ordine. Il secondo è scaricare il risultato della query in una tabella di valori e quindi accedervi in ​​modo casuale.

//Opzione 1 - accesso sequenziale ai risultati della query

// ottieni la tabella
Selezione = Query.Execute().Select();
// bypassa tutte le righe del risultato della query in ordine
Mentre Selection.Next() Loop
Report(Selezione.Nome);
Fine Ciclo;

//Opzione 2 - caricamento nella tabella dei valori
Query = New Query("SELECT Name FROM Directory.Nomenclature");
// ottieni la tabella
Tabella = Query.Execute().Upload().
// quindi possiamo anche bypassare tutte le righe
Per ogni riga dal ciclo della tabella
Rapporto(Stringa.Nome);
Fine Ciclo;
//o accede arbitrariamente alle stringhe
String = Table.Find("Pala", "Nome");

Una caratteristica importante è che nella tabella, che si ottiene dal risultato della query, tutte le colonne saranno fortemente tipizzate. Ciò significa che richiedendo il campo Nome dalla ricerca Nomenclatura, riceverai una colonna di tipo String con una lunghezza consentita non superiore a N caratteri.

Tabella sul form (thick client)

L'utente lavora con la tabella quando viene inserita nel form.

Abbiamo discusso i principi di base del lavoro con le forme nella lezione su e nella lezione su

Quindi, posizioniamo la tabella sul modulo. Per fare ciò, puoi trascinare la tabella dal pannello di controllo. Allo stesso modo, puoi selezionare il controllo Modulo/Inserisci dal menu.

I dati possono essere memorizzati in una configurazione, quindi è necessario selezionarne una esistente (aggiunta in precedenza) parte tabulare l'oggetto di configurazione di cui si sta modificando il modulo.

Fare clic sul pulsante "..." nella proprietà Dati. Per visualizzare l'elenco delle parti tabulari, è necessario espandere il ramo Oggetto.

Quando si sceglie una parte tabulare, 1C stesso aggiungerà colonne alla tabella sul modulo. Le stringhe inserite dall'utente in tale tabella verranno salvate automaticamente insieme alla directory/documento.

Nella stessa proprietà Data è possibile immettere un nome arbitrario e selezionare il tipo ValueTable.

Ciò significa che è stata selezionata una tabella arbitraria di valori. Non aggiungerà automaticamente colonne, non verrà salvato automaticamente, ma puoi fare quello che vuoi con esso.

Facendo clic con il tasto destro sulla tabella è possibile aggiungere una colonna. Nelle proprietà della colonna è possibile specificarne il nome (per riferimento nel codice 1C), l'intestazione della colonna sul modulo, la connessione con l'attributo della parte tabulare (quest'ultima - se non è selezionata una tabella arbitraria, ma una parte tabellare).

Nelle proprietà della tabella sul modulo, è possibile specificare se l'utente può aggiungere/eliminare righe. Una forma più avanzata è la casella di controllo ViewOnly. Queste proprietà sono utili per organizzare le tabelle destinate alla visualizzazione delle informazioni, ma non alla modifica.

Per gestire la tabella è necessario visualizzare il pannello dei comandi sulla videata. Selezionare la voce di menu Form/Inserisci Control/Command Panel.

Nelle proprietà della barra dei comandi, seleziona la casella di controllo Completamento automatico in modo che i pulsanti sulla barra degli strumenti appaiano automaticamente.

Tabella sul modulo (client sottile/gestito)

Sul forma gestita queste azioni hanno un aspetto leggermente diverso. Se è necessario posizionare una sezione tabulare nel modulo, espandere il ramo Oggetto e trascinare una delle sezioni tabulari a sinistra. E questo è tutto!

Se devi inserire una tabella di valori, aggiungi nuovi oggetti di scena form e nelle sue proprietà specifica il tipo - una tabella di valori.

Per aggiungere colonne, utilizzare il menu del tasto destro del mouse su questo attributo del modulo, voce Aggiungi colonna attributo.

Quindi trascina anche la tabella a sinistra.

Affinché la tabella abbia una barra dei comandi, nelle proprietà della tabella, selezionare i valori nella sezione Utilizzo - Posizione della barra dei comandi.

Esportare una tabella in Excel

Qualsiasi tabella 1C situata nel modulo può essere stampata o caricata in Excel.

Per fare ciò, fare clic con il tasto destro su spazio libero nella tabella e selezionare Mostra elenco.

In un (thin) client gestito, azioni simili possono essere eseguite utilizzando la voce di menu Tutte le azioni/Elenco di visualizzazione.

Home Per gli sviluppatori principianti Impara a programmare

Come ottenere dati dalla parte tabellare dei documenti?

Ad esempio, si consideri una situazione in cui si desidera ottenere tutti gli articoli in stock specificati nella sezione tabulare Prodotti documenti Realizzazione di beni e servizi.

Per fare ciò, puoi utilizzare una query con il seguente testo:

SCEGLI DIFFERENTE Realizzazione di beni di servizi Beni.Nomenclatura AS Nomenclatura DA Documento Realizzazione di beni di servizi Beni AS Realizzazione di beni di servizi Beni

Come fonte, indichiamo la parte tabulare dei documenti: la tabella Documento.Vendita di beniServizi.Merci. Dichiarare un campo come campo di output Nomenclatura A che fa parte della tabella di origine. Inoltre, poiché lo stesso articolo merceologico, ovviamente, potrebbe essere presente più di una volta nei documenti, applichiamo VARI per ottenere solo righe distinte nella tabella di output della query.

Ad esempio, creiamo un file processing Elenco prodotti dove è selezionato il documento Realizzazione di beni e servizi, e cliccando sul pulsante corrispondente, viene visualizzato nella finestra dei messaggi un elenco di voci non ripetitive della nomenclatura contenuta nella parte tabulare di questo documento.

Per limitare la selezione della nomenclatura alla sola nomenclatura della sezione tabulare di un documento specifico, utilizziamo il parametro Collegamento nella condizione nella richiesta ( DOVE...):

SELECT DIFFERENT Realizzazione di Beni di Servizi Beni Nomenclatura AS Nomenclatura FROM Documento Realizzazione di Beni di Servizi Beni AS Realizzazione di Beni di Servizi Beni WHERE Realizzazione di Beni di Servizi Beni Link = & Link