LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Ciao caro lettore! Abbiamo un altro tutorial sulle basi del sistema di layout. Conoscerai le funzioni del linguaggio delle espressioni ACS, vedrai le peculiarità del sistema di layout e scoprirai anche le impostazioni di base dei campi di layout. Ora esamineremo il nuovo materiale. Partire!

Impostazioni aggiuntive per i campi ACS.

Colonna "Tipo di valore" consente di specificare il tipo di dati per il campo del layout. Perché specificare il tipo, ad esempio, per il campo "Nomenclatura", se si conosce già di che tipo si tratta? Ciò è necessario se il campo del layout è di tipo complesso. È possibile selezionare un tipo specifico, quindi quando si seleziona questo campo, verranno selezionati i valori di questo tipo.

Colonna "Valori disponibili" consente di specificare i valori disponibili per la selezione e limitare la selezione dell'utente a determinati frame.

Colonna "Registrazione" consente di impostare l'aspetto di un campo di layout senza utilizzare i layout. È possibile specificare il colore del carattere, il colore del bordo, l'orientamento del testo, ecc.

Colonna Opzioni di modifica consente di specificare come modificare il campo del layout. Ad esempio, è possibile specificare una selezione rapida di elementi da un elenco in una selezione. Per impostazione predefinita, un campo di layout eredita tutte le opzioni di modifica dall'oggetto metadati.

Campi calcolati

Nella scheda "Campi calcolati" della composizione dei dati, puoi creare i tuoi campi calcolati.

Perché sono necessari campi calcolati quando è possibile crearli a livello di query? Non tutti i campi possono essere descritti usando una query. Se è necessario comporre un campo complesso da diversi set di dati, ad esempio della query e dei tipi di oggetto, non è possibile fare a meno dei campi calcolati. Non è possibile aggiungere un campo di composizione dati se l'origine dati è una query ed è completata automaticamente e, utilizzando i campi calcolati, è possibile aggiungere tutti i campi desiderati.

Nella colonna del campo calcolato "Espressione", è necessario scrivere un'espressione arbitraria che utilizza i campi di composizione dei dati, facendo riferimento al loro percorso (colonna "Percorso" nella scheda "Set di dati"). O puoi usare le funzioni di trasformazione matematica, oppure puoi fare riferimento alle funzioni dei moduli comuni. Ad esempio, scriviamo il nome del campo calcolato "Deviazione" nella colonna "Percorso dati" e quanto segue nel campo "Espressione".

Funzionalità per la creazione di report in 1C v8 in modalità client thick

Come scegliere un'opzione?

  • Inserire il pulsante "Seleziona opzione" sul pannello dei report
  • Posizionare il campo "OnDate" sul modulo

Codice di esempio: LayoutFormSelectOptions (Button) layout \u003d GetLayout ("MainDataCompositionSchema"); spVariants \u003d Nuovo elenco di valori; Per ogni opzione da Layout.OptionsSettings Cycle spVariants.Add (option.Settings, option.Presentation); Fine ciclo;

choice \u003d spVariants.SelectItem (); Se Scelta \u003d Non definito, Ritorna; Finisci se;

Impostazioni Composer.LoadSettings (selection.Value);

Modulo (); Fine della procedura

Procedura OnDateWhenChanging (Element) Generate (); Fine della procedura

Procedura Generate () FormElements.Result.Clear (); SettingsComposer.Settings.DataParameters.SetParameterValue ("Period", OnDate); BuildResult (Form Elements.Result); Fine della procedura

Open Procedure () OnDate \u003d CurrentDate (); Modulo (); Fine della procedura

Funzionalità di creazione di report tramite ACS

Generare un rapporto passo dopo passo

  1. Creare un rapporto nel nodo Rapporti
  2. Creare un layout in un report, il cui tipo è Schema composizione dati
  3. Nel set di proprietà del report: Schema composizione dati principali \u003d Layout creato
  4. Nelle proprietà del report, imposta il sottosistema a cui appartiene (il report in Enterprise verrà visualizzato nel riquadro di navigazione superiore)
  5. Creare una richiesta nel layout (elemento: Aggiungi set di dati - Richiesta)
  6. Nella scheda Parametri del layout, deseleziona tutte le righe nella colonna Limitazione accesso, ad es. tutti i parametri saranno disponibili per la modifica da parte dell'utente
  7. Nella scheda Impostazioni del layout, nella finestra in cui è visualizzato il nodo Report, creare un nuovo raggruppamento senza specificare il campo di raggruppamento: verrà creata una linea dettagliata
  8. Nella scheda Impostazioni del layout, nella finestra in cui viene visualizzato un set aggiuntivo di schede, selezionare aggiuntivo. Scheda Parametri: contrassegnare tutti i parametri con un segno di spunta e su ogni parametro premere il pulsante Proprietà dell'elemento delle impostazioni utente, si aprirà la finestra delle impostazioni dei parametri, dove è necessario selezionare la casella - Includi parametro nelle impostazioni dell'utente
  9. Nella scheda Impostazioni del layout, nella finestra in cui viene visualizzato un set aggiuntivo di schede, selezionare aggiuntivo. Scheda Campi selezionati: è necessario aggiungere colonne che verranno visualizzate nel rapporto
  10. Esegui l'Enterprise, apri il rapporto, imposta i valori dei parametri, Genera (controlla che sia selezionata l'opzione Principale per generare il rapporto)

Come faccio ad aggiungere un parametro modificabile non utente?

Ad esempio, dobbiamo impostare il parametro di query "Infobase"

  • Nella forma del layout, nella scheda Parametri, deseleziona la casella di controllo "Includi nei campi disponibili" e "Restrizioni di accessibilità" per il parametro richiesto
  • Nella forma del layout del layout, nella scheda Impostazioni nella sottoscheda (sotto) Parametri, deseleziona il parametro richiesto, apri le proprietà (pulsante con una chiave inglese), in questo modulo:
    • Deseleziona "Includi nelle impostazioni personalizzate"
    • Modalità di modifica impostata su "Non disponibile"


  • Nel modulo del modulo di report, nel gestore dell'evento "OnLoadVariantOnServer" (è possibile anche OnOpening, ma NON WhenCreateAtServer, poiché viene eseguito PRIMA di caricare le impostazioni del report e le impostazioni verranno sovrascritte) impostare programmaticamente il parametro:

E procedura AtServer durante il caricamento di OptionOnServer (Impostazioni)

// Impostazione del parametro Settings \u003d Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase); Fine della procedura

Come imposto le varianti del rapporto?

  • Nella forma del modello di layout nella scheda Impostazioni nel campo a sinistra, è possibile creare le varianti di report necessarie

Come impostare i raggruppamenti?

  • Nella forma del layout del layout nella scheda Impostazioni nel campo in alto a destra, puoi creare i raggruppamenti necessari

Come visualizzare a livello di codice un rapporto?

Nel modulo modulo:

E su procedura client Genera report Esegui ()

ThisForm.ComposeResult ();

Fine della procedura

Come testare un rapporto?

Devi fare:

  • Formare una situazione in un test client è più conveniente attraverso la tabella delle situazioni
  • ottenere il modulo del rapporto - form \u003d GetForm ("Modulo Report.Processes.Form.Report");
  • carica la variante richiesta del rapporto: imposta il parametro dell'estensione del modulo di rapporto "Chiave variante" (il nome dell'impostazione nel modello di composizione dei dati)
  • carica le impostazioni del rapporto richieste -? per compilare il parametro dell'estensione del modulo di rapporto "UserSettings" (tipo "UserDataCompositionSettings") non ha funzionato, tutto è complicato, vedi sotto.
  • open form - form. Open ()
  • esegui formazione - form.ComposeResult ();
  • controlla il contenuto del modulo del foglio di calcolo Risultato - sarebbe bello avere funzioni di confronto con riferimento mxl
  • forma stretta - form.Close (); - o forse non è necessario aprirlo, è necessario controllare

guarda anche

  • descrizione: menu Aiuto / Assistente sintassi / scheda Sommario / Oggetti dell'interfaccia dell'applicazione gestita / Estensioni modulo gestito / Estensione modulo gestito per report / Parametri modulo

Come caricare le impostazioni del report richieste?

La documentazione descrive che esiste un tale parametro per espandere il modulo di report "UserSettings" del tipo "UserDataCompositionSettings", ma esiste una struttura di oggetti molto complessa, non è stato possibile utilizzarlo.

Uno schema davvero funzionante:

1. Creare i parametri nel rapporto

  • Periodo di tipo Periodo standard
  • Selezione del tipo ListValues \u200b\u200b(sarebbe meglio avere una struttura, ma non è nell'elenco dei tipi di parametri, oltre che di un tipo arbitrario)

2. Passare i parametri richiesti alla procedura GetForm:

period \u003d New Period Period; period.Variant \u003d VariantStandardPeriod.ArbitraryPeriod; period.StartDate \u003d currentDate; period.EndDate \u003d tomorrow'sDate;

selection \u003d Nuovo elenco di valori; selection.Add (Testing.GetObject (stSituation, "BP1"), "BusinessProcess");

stParameters \u003d Nuova struttura ("Chiave variante, Periodo, Selezione", "Principale", periodo, selezione); // OpenFormModally ("Report.Process Movement.Form.ReportForm", stParameters); form \u003d GetForm ("Report.Process Movement.Form.Report Form", stParameters);

3. Nei gestori di eventi del modulo, impostare i parametri

& AtServer Funzione cnGet (elenco, vista) Esporta per ogni elemento Dall'elenco Elenco Ciclo Se item.View \u003d view Quindi restituisce item.Value; Finisci se; Fine ciclo; Rimborso indefinito; endfunction

& AtServer Procedura SetValueUserSettings (Impostazioni, Nome, Valore) per ogni elemento da Settings.Elements Loop IfTypeValue (element) \u003d Type ("DataCompositionSettingsParameterValue") Quindi If String (element.Parameter) \u003d Name Then element.Value \u003d Value; item.Usage \u003d True; Finisci se; Finisci se; Fine ciclo; Fine della procedura

& OnServer Procedura SetValueCustomSelection (Impostazioni, Nome, Valore) Per ogni elemento da Setting.Elements Loop IfTypeVal (item) \u003d Tipo ("DataCompositionFlection") Quindi per ogni selezione da Item.Elements Loop If String (pick.LeftValue) \u003d Nome Quindi Selezione .RightValue \u003d Value; selection.Use \u003d True; Finisci se; Fine ciclo; Finisci se; Fine ciclo; Fine della procedura

E procedura AtServer durante il caricamento di OptionOnServer (Impostazioni)

CurrentVariantName \u003d PresentCurrentVariant;

Settings \u003d Report.ConfigurationComposer.Settings; Settings.DataParameters.SetValueParameter ("InformationBase", Report.InformationBase);

Fine della procedura

& AtServer Procedura durante il caricamento delle Impostazioni utente Impostazioni Server (Impostazioni) \u003d Report.ConfigurationComposer.UserSettings;

<> "00010101" Quindi Settings \u003d Report.Options Composer.UserSettings; SetUserSetting Value (Settings, "Period", Parameters.Period); Finisci se;

ssBusinessProcess \u003d spGet (Parameters.Selection, "BusinessProcess"); Se ssBusinessProcess<> Undefined Quindi SetCustomSelectionValue (Settings, "BusinessProcess", ssBusinessProcess); Finisci se;

Fine della procedura

Appunti:

  • Esistono parametri di dati, ovvero ciò che è impostato nei parametri di richiesta ACS
  • Alcuni di essi sono assegnati nell'impostazione delle opzioni nelle Impostazioni utente (nelle proprietà del parametro è presente un flag "Includi nelle impostazioni dell'utente"
  • Anche se, durante il caricamento sul server, i valori richiesti vengono caricati nei parametri dei dati, viene aperto un modulo in cui vengono caricate automaticamente le impostazioni salvate l'ultima volta. Quando si genera un report, queste impostazioni "interrompono" le impostazioni dei dati
  • Nel gestore WhenLoadingUserSettingsOn sul server, l'oggetto Impostazioni trasmesso è una copia impostazioni reali, quindi per modificare le impostazioni che verranno visualizzate nel modulo, è necessario compilare l'oggetto Report. Impostazioni Compositore. Impostazioni personalizzate.

Come effettuare più parametri (elenco) di query nell'ACS?

La richiesta deve utilizzare l'espressione "In (& ParameterName)" (vedi espressioni booleane nel linguaggio di query 1Cv8)

Nella configurazione del layout del circuito ACS nella scheda "Parametri", per questo parametro, selezionare la casella "Elenco dei valori disponibili". In questo caso, quando si seleziona un parametro, l'ACS visualizza un modulo di modifica dell'elenco, in cui è possibile aggiungere qualsiasi valore di parametro.

Come rendere i parametri di richiesta disabilitati in ACS?

In una richiesta ACS, è necessario utilizzare le costruzioni circondate da parentesi graffe "{}" .

Se il parametro corrispondente è deselezionato nel modulo del report (pannello delle impostazioni rapide), questa costruzione viene rimossa dalla richiesta.

Per maggiori dettagli vedi Estensione del linguaggio di query per il sistema di composizione dei dati (1Cv8)

Come fare un rapporto con una diffusione per colonne?

Per fare ciò, nell'impostazione della variante del rapporto (modifica del modello di composizione dei dati, la scheda "Impostazioni", il campo in alto a destra), è necessario aggiungere "Tabella" come primo raggruppamento.

Successivamente, i rami "Righe" e "Colonne" vengono visualizzati nel nodo "Tabella", dove vengono aggiunti i raggruppamenti necessari.

Come personalizzare il formato di output dei campi?

Nell'editor del modello di composizione dei dati, nella scheda "Set di dati", nell'area in alto a destra è presente un elenco di campi del report.

Vi sono due possibilità:

  1. Personalizza il valore della colonna "Visualizza espressione"
    • qui puoi inserire un'espressione linguistica che produce la stringa desiderata
    • non funziona con i campi delle risorse
  2. Regola il valore della colonna "Aspetto"
    • il design ha la proprietà "Formato" - questo è un valore simile al parametro della funzione del linguaggio "Formato", è possibile impostare l'aspetto desiderato
    • qui non viene eseguita alcuna conversione di tipo

Le espressioni di calcolo possono essere specificate per i campi delle risorse (la scheda "Risorse"), ad esempio

Somma (tempo) / 3600,0

per convertire da secondi a ore.

La precisione richiesta può essere impostata tramite il campo "Progettazione" nella scheda "Set di dati".

Specifiche di impostazione dei parametri del sistema di composizione dei dati

Esistono almeno TRE tipi di parametri e richiedono elaborazioni diverse:

Parametri dei dati

I parametri dei dati sono definiti nella richiesta ACS (origine dati).

I parametri dei dati vengono passati alla query sull'origine dati e determinano i dati da recuperare.

L'oggetto SettingsComposer ha una proprietà speciale per lavorare con i parametri dei dati Impostazioni Composer.Settings.Data Parametri

Può essere impostato chiamando il modulo

Settings \u003d Report.ConfigurationComposer.Settings; Settings.DataParameters.SetValueParameter ("InformationBase", Report.InformationBase);

Selezione

Le selezioni vengono sovrapposte ai dati ricevuti dopo recupero da un'origine dati.

L'oggetto SettingsComposer ha una proprietà speciale per lavorare con le selezioni Preferenze Selezione compositore Preferenze.

Per esempio: Settings \u003d Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase);

Per ogni elemento From Parameters.Selecting CyclePickingElement \u003d Settings.Selecting.Elements.Add (Type ("DataCompositionFindingElement")); SelectionElement.ComparisonType \u003d DataCompositionCompareView.Equal; SelectionItem.LeftValue \u003d NewDataCompositionField (item.View); SelectionItem.RightValue \u003d element.Value; Fine ciclo;

Impostazioni personalizzate

Le preferenze dell'utente definiscono i dati che l'utente può personalizzare nel modulo.

Le impostazioni dell'utente possono essere visualizzate nel modulo in una tabella speciale e possono essere richiamate dal pulsante "Impostazioni" e dal menu "Tutte le azioni".

Impostazioni personalizzate collegato con parametri di dati e selezioni in qualche modo sufficienti modo complicato, questa connessione può essere configurata visivamente, ma è in qualche modo molto scomodo lavorare con loro a livello di codice.

Finora non è stato trovato nulla di meglio su come impostare i valori di una raccolta esistente per indice, che di per sé può essere disattivato quando si modifica il layout ACS nell'editor visivo.

Inoltre, se alcuni parametri di dati vengono dichiarati definiti dall'utente, allora installazione software il parametro dati (vedi sopra) è insufficiente, il valore dell'impostazione personalizzata ripristinata sovrascrive l'impostazione del parametro dati. Pertanto, per tali parametri, non ha senso impostare parametro di dati, è necessario installare immediatamente impostazione personalizzata.

Un posto comodo per impostare i valori richiesti è il gestore eventi "OnLoadingUserSettingsOnServer" dell'estensione del modulo di report.

E AtServer Procedura durante il caricamento delle Impostazioni utente su Server (Impostazioni)

Se Parameters.Period.End Date<> "00010101" Quindi Settings \u003d Report.Options Composer.UserSettings; Settings.Elements.Value \u003d Parameters.Period; Finisci se;

Fine della procedura

Utilizzo di un'origine dati oggetto

Per utilizzare un set di dati di tipo oggetto, è necessario passare un'origine dati esterna al metodo Initialize dell'oggetto Processore composizione dati.

DataDecryption \u003d Non definito;

LayoutComposer \u003d NewDataCompositionLayoutComposer; LayoutComposer \u003d LayoutComposer.Run (DataCompositionSchema, SettingsComposer.Settings, DecodingData);

Processore composizione \u003d Nuovo processore composizione dati; LayoutProcessor.Initialize (LayoutDetails, New Structure ("Data", GetExternalSourceData ()), DecryptionData);

Un semplice esempio è allegato (affinché l'esempio funzioni, sono necessari i libri di consultazione "Appaltatori" e "Contratti di appaltatori").

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

Accedi come studente

Accedi come studente per accedere al materiale scolastico

Sistema di composizione dati 1C 8.3 per principianti: realizziamo la connessione di set di dati

  • Scrivi un rapporto che mostra i clienti e i loro prodotti preferiti. Ogni cliente ha un colore preferito e ogni prodotto ha il suo colore - sulla base di questi colori è necessario determinare il "preferito" del prodotto. Ad esempio, se il colore preferito di Andrey è il rosso, uno dei suoi cibi preferiti saranno i pomodori (sono rossi).
  • Applicare due set di dati nel report. Il primo set è costituito dai dati della tabella di ricerca "Clienti". Il secondo sono i dati della tabella di riferimento "Alimenti".
  • Implementare la relazione di questi due insiemiin modo che nel report rimangano solo i prodotti preferiti per ciascun cliente.

Crea un nuovo rapporto

Aprire il database Gastronom nel configuratore e creare un nuovo report tramite il menu principale:

Tipo di documento - "Rapporto esterno":

Nella forma di un nuovo rapporto, specifica il nome "Lezione6" e fai clic sul pulsante "Apri schema di composizione dati":

Lasciando il nome dello schema predefinito:

Aggiunta del primo set di dati

Nel diagramma aperto, vai alla scheda "Set di dati" e seleziona "Aggiungi set di dati - query" tramite il segno più verde:

Chiama il costruttore della query:

Indichiamo la tabella "Clienti" e i campi che si desidera ottenere dalla richiesta:

Aggiunta di un secondo set di dati

Aggiungi un secondo set di dati:

Selezionalo (Dataset2) e chiama nuovamente il costruttore della query:

Indichiamo la tabella del libro di consultazione "Food" e i campi che devono essere ottenuti dalla richiesta:

Abbiamo ricevuto il seguente testo di richiesta:

Si noti che ora nel report sono presenti due set di dati: Dataset1 e Dataset2. Ognuno ha il proprio testo e dati di richiesta.

Rendere i nomi più descrittivi

Per chiarezza, rinominiamo Dataset1 in Clienti e Dataset2 in Cibo.

Fallo facendo doppio clic su ciascuno dei set:

Possiamo usare i dati di ciascuno dei set nel nostro rapporto. Faremo riferimento a questi dati attraverso i campi.

Al momento il set "Clienti" ha i seguenti campi: "Nome" e "Colore preferito" e il set "Cibo": "Nome" e "Colore".

Vediamo che i nomi si sovrappongono e ci confondiamo facilmente. Quindi cambiamo i nomi dei campi per essere più descrittivi.

Seleziona il set "Client" e modifica i nomi dei campi come segue:

Quindi selezionare il set "Food" e modificare i nomi dei campi in questo modo:

Chiamata al costruttore delle impostazioni

Infine, vai alla scheda Impostazioni e premi la bacchetta magica per invocare il costruttore di impostazioni:

Tipo di rapporto - "Elenco ...":

Seleziona i campi per il rapporto da entrambi i set:

Vedi perché era così importante cambiare i nomi dei campi? Nella fase delle impostazioni di composizione dei dati, non vediamo da quali set sono presenti questi campi. Vediamo solo i loro nomi.

Verifica del rapporto

Salviamo il rapporto e lo generiamo in modalità utente:

Si. Bene, ma non proprio. Si è verificato un cosiddetto cross join di due set (dovresti avere familiarità con questo dai join nelle query che abbiamo studiato nei moduli precedenti). Ogni record della tabella "Clienti" è associato a un record della tabella "Cibo".

Ma tra tutti questi record, dobbiamo lasciare solo quelli in cui il campo "FavoriteClientColor" è uguale al campo "FoodColor":

Colleghiamo due set di dati

Per fare ciò, collegheremo due set di dati (Clienti e Cibo) nei campi FavoriteClientColor e FoodColor.

Vai alla scheda "Link set di dati" e fai clic sul pulsante più per aggiungere un nuovo link:

Configuriamo i parametri come nella figura seguente:

Lasciatemi spiegare.

Fonte e destinazione della comunicazione. Bene, tutto è chiaro. Indichiamo i dati del primo set (Clienti) e del secondo set (Cibo). Vorrei attirare la vostra attenzione sul fatto che la comunicazione sarà effettuata secondo il principio connessione sinistra esterna (lo abbiamo esaminato nell'argomento delle richieste nei moduli precedenti). Sulla base di questo, è necessario scegliere quale set sarà la sorgente e quale sarà il ricevitore.

Espressione della fonte. Specifichiamo qui un'espressione o solo un campo dal set di dati di origine (qui abbiamo specificato il campo FavoriteColor del cliente dal set Clienti).

Ricevitore di espressioni. Indichiamo qui un'espressione o solo un campo dal set di dati del ricevitore (qui abbiamo indicato il campo Color Food dal set Food).

così questa connessione dall'elenco precedente rimarranno solo quelle righe per le quali il campo FavoriteClientColor è uguale al campo FoodColor.

Salviamo il rapporto ed eseguiamolo in modalità utente:

Bene!

Farò una spiegazione sul campo " Condizioni di comunicazione", su quali programmatori alle prime armi battono così spesso le loro lance.

La condizione di collegamento è un campo ausiliario. Puoi scrivere espressioni lì che coinvolgono campi solo dal set di dati specificato nell'origine del collegamento.

In questo caso, per tutte le stringhe dell'origine del collegamento, questa espressione (condizione del collegamento) verrà verificata prima del collegamento. E se questa espressione è TRUE, verrà effettuato un tentativo di stabilire collegamenti di questa linea con linee provenienti dal ricevitore di comunicazione. Se espressione è FALSO, non verranno effettuati tentativi del genere.

In Query Designer, quando viene chiamato da un modulo di personalizzazione dell'origine dati, per uno schema di composizione dei dati. C'è una scheda "caratteristiche", il cui uso non è chiaramente descritto nella documentazione. In questo articolo proverò a spiegare come e per quali caratteristiche vengono utilizzate in ACS.

In Query Designer, quando viene chiamato da un modulo di personalizzazione dell'origine dati, per uno schema di composizione dei dati. C'è una scheda "caratteristiche", il cui uso non è chiaramente descritto nella documentazione. In questo articolo proverò a spiegare come e per quali caratteristiche vengono utilizzate in ACS. NEL configurazioni tipiche viene utilizzato attivamente il meccanismo di proprietà e valori di proprietà, disponibile per quasi tutti gli oggetti. In primis, nei libri di consultazione, questo meccanismo è stato implementato in 7,7 configurazioni. Ora questo meccanismo è implementato usando un grafico di tipi caratteristici e un registro di informazioni, ma l'idea rimane la stessa. Quando ho incontrato per la prima volta la necessità di utilizzare questo meccanismo, nello schema ACS, ho lottato a lungo, organizzando query nidificate, collegandole al campione principale e perplesso su come tenere conto della possibilità di nuovi tipi di proprietà che non erano disponibili al momento dello sviluppo del report. L'intero meccanismo di proprietà, sebbene semplice e logico dal punto di vista dell'utente, non si è prestato a nessuna normale elaborazione fino a quando non ho capito la scheda "Caratteristiche". La tabella nella scheda è molto capricciosa, o inserirai l'intera riga correttamente o rifiuterai di inserire la riga del tutto, il sistema non ti lascerà la riga incompleta per dopo. Quindi, passiamo ai dettagli. Prima colonna: Tipo: qui selezioniamo il tipo di oggetto a cui verranno associate le caratteristiche, ad esempio "ReferenceLink.Nomenclature" Ciò significa che ora per tutti gli oggetti del tipo specificato sarà possibile ottenere valori di proprietà. Successivamente, nella colonna successiva Visualizza origine, dobbiamo impostare i parametri dell'origine dei tipi di proprietà. Le opzioni sono tabella e query, perché è necessaria l'opzione di query che ti dirò in seguito, ora selezioneremo l'elemento della tabella. Nella colonna Tipi di caratteristiche, dobbiamo selezionare la tabella base di informazioni, in cui sono memorizzati i tipi necessari di caratteristiche, nel nostro esempio sarà "Piano dei tipi di caratteristiche. Proprietà degli oggetti". Inoltre, i valori disponibili per la selezione nelle colonne Campo chiave, Nome campo e Campo Tipo valore dipendono direttamente dai campi della tabella selezionata da noi. Nel campo Chiave, selezioniamo Collegamento, nel campo Nome - Visualizza (è l'utente che lo vedrà come nome dell'attributo) e nel campo Tipo, rispettivamente, ValueType. Passiamo ora alla fonte dei valori. La fonte di valori per noi sarà il registro delle informazioni "Proprietà proprietà oggetto", pertanto, selezioniamo la tabella nella colonna Fonte di valori e la colonna "Registro informazioni. Proprietà proprietà oggetto" nella colonna Valori caratteristici. Nelle colonne Oggetto, Proprietà, Valore, selezionare i campi corrispondenti del registro Oggetto, Proprietà, Valore. Sembrerebbe essere tutto. Entriamo nelle impostazioni dello schema, aggiungiamo un raggruppamento per merce e aggiungiamo un raggruppamento subordinato ad esso, diciamo per marchi, abbiamo una tale proprietà. Espandiamo l'elenco degli attributi del raggruppamento della nomenclatura e ... non vediamo alcuna proprietà lì: il fatto è che siamo nel configuratore, da cui non c'è accesso ai dati. Come fare impostazione desiderata? Il modo più conveniente per farlo è utilizzare la console di composizione dei dati, quella sul disco ITS o quella inclusa nel sottosistema "Strumenti di sviluppo". In alternativa, puoi semplicemente aprire una personalizzazione del rapporto in modalità Enterprise. Quindi, apriamo la stessa impostazione, ma in modalità Enterprise: come puoi vedere, abbiamo aggiunto nuovi "Dettagli", mentre ...

Domanda: SKD, Come aprire il modulo di selezione desiderato per un parametro?


Buona giornata! C'è un rapporto su ACS, ha il parametro Brand - tipo Directory. Nomenclatura. Come chiamare una forma specifica di selezione per questo parametro? Ho provato nell'ACS nella scheda "Parametri", mi sono alzato parametro richiesto - fai doppio clic sulla colonna "Modifica parametri" - metti un segno di spunta su "Modulo di selezione" e scrivi il valore Reference.Nomenclature.Form.FormVeboraNecessario. Quando si esegue il report, il modulo di selezione viene comunque utilizzato per impostazione predefinita e non quello specificato nel "Modulo di selezione". Configurazione UT, forme convenzionali. Dimmi, pzhl, dove, cosa c'è che non va?

Risposta: Frase chiave Moduli regolari, vai ai moduli gestiti

Domanda: selezionare un valore nel modulo di selezione


Buona giornata!

Applicazione normale.

C'è un documento Ha diversi attributi del tipo di riferimento, ad esempio "DirectoryLink.Banks", con il valore "Bank1".

È necessario sotto forma di selezione del libro di consultazione "Banche", SELEZIONARE a livello di codice l'elemento "Banca1", ovvero digitare ri-selezionare questo valore "Bank1".

Finora ho fatto quanto segue:
Procedura per eseguire una selezione in un modulo di selezione (collegamento)
DirectorySelectionForm \u003d Directories.Banks.GetSelectionForm (, Link); // ottiene il modulo per la scelta della directory Banks tramite il parametro passato Link
// imposta la selezione in questo modulo di selezione, secondo il mio link negli oggetti di scena
ReferenceSelectionForm.Selection.Ref.Usage \u003d True;
Modulo di selezione directory Selezione, collegamento Valore \u003d collegamento;
Modulo di selezione directory, moduli elementi, elenco directory, vista gerarchica \u003d Falso;
Modulo di selezione della directory Open ();
// ecco un codice che simula facendo clic sul pulsante Seleziona, come ????
EndProcedures

Aiuta chi si è imbattuto o ha idee.

Grazie.

Risposta:

L'ho fatto così:

Procedura ExecuteSelectionInSelectionForm (Link, rec) // il parametro "link" è un riferimento di valore nel modulo del documento; "fiumi": l'elemento della forma corrente, ad es. casella di selezione
DirectorySelectionForm \u003d Directories.Banks.GetSelectionForm (, Rec, Link);
Modulo di selezione della directory, moduli degli elementi, elenco della directory Vista gerarchica \u003d Falso;
Apri il modulo (Modulo di selezione dell'elenco, fiumi,);

Se il modulo di selezione della directory è aperto (), quindi
DirectorySelectionForm.Activate ();
Finisci se;

Selezione directory Form.CurrentElement.CurrentString \u003d link;
ELSelect \u003d DirectorySelectionForm.CurrentElement.CurrentRow;

Se SelectEl \u003d undefined o NOT il valore è riempito (SelectEl), allora
Rapporto ("Valore" + Link + "non trovato nel modulo per la scelta di una directory");
altrimenti
DirectorySelectionForm.NotifySelection (selezione e-mail);
Finisci se;

Fine della procedura

Domanda: il pulsante "Seleziona" nel modulo di selezione o come fare clic sul pulsante "Seleziona"


Buona giornata!

Applicazione normale.

Che pensieri hai di fare clic sul pulsante "Seleziona" nel modulo di selezione documento / riferimento?

Fare clic con il mouse e COM non offre automazione.

Lista dei desideri: simula premendo il pulsante "Seleziona" nel modulo di selezione.

Risposta: Sembra aver risolto il problema ... un paio di prove.

Aggiunto dopo 17 minuti
Finora funziona così:

1C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Procedura Effettuare SelectionInSelectionForm (Ref, Rec) // il parametro "link" è un collegamento valore nel modulo del documento; "fiumi" - l'elemento forma attuale, cioè. casella di selezione Modulo di selezione directory \u003d Directory. Banche Ottieni il modulo di selezione (, Rivers, Link); DirectorySelectionForm. Elementi del modulo. ServiziScarica l'elenco. HierarchicalView \u003d False; Apri il modulo (Modulo di selezione dell'elenco, fiumi,); Se il modulo di selezione della directory. Aperto () Quindi DirectorySelectionForm. Activate (); Finisci se; DirectorySelectionForm. CurrentItem. CurrentString \u003d link; Selezionare EL \u003d Modulo di selezione directory. CurrentItem. String corrente; se SelectEl \u003d undefined o NOT il valore è inserito (SelectEl), quindi Report ("Value" + Link + "non è stato trovato nel modulo di selezione della directory"); altrimenti il \u200b\u200bmodulo di selezione della directory. Notifica sulla scelta (ChoiceEl); Finisci se; EndProcedures

Domanda: Perché il valore non è più selezionato dal modulo di selezione?


Nel modulo del documento è presente un campo del tipo di riferimento DocumentLink.PaymentOutput. Quando si seleziona, si apre un modulo per la selezione di un ordine di pagamento in uscita. Dopo aver selezionato un valore, questo non viene sostituito nel modulo selezionato. All'inizio ho pensato all'elaborazione della selezione per l'elaborazione standard e il proger ha dimenticato di registrare l'elaborazione della selezione. Ma tutto è tipico lì. L'apertura del modulo non è programmatica, nel campo in cui scelgo di non condurre alcun evento. Cosa potrebbe essere?
--- Unione messaggi, 2 gennaio 2018 ---

Un'altra applicazione su moduli regolari. Il modulo di selezione è gestibile e si apre da una finestra normale. Se torni alla solita forma di selezione, allora è tutto a posto.

Risposta:

In generale, l'ho capito. È utile vedere cosa viene fuori dal valore selezionato nell'elaborazione della selezione. Si è rivelato essere un array. Arrampicato nei moduli di selezione, si è scoperto che esiste una scelta multipla daw. L'ho tolto e ha funzionato.

Domanda: Aiuto per favore chiedi la selezione sotto forma di scelta di un libro di consultazione


Quando scelgo una controparte a livello di codice, trasferisco i primi caratteri del nome nel modulo di selezione. Come rendere programmabile il primo elemento, per il quale corrispondono i primi caratteri, essere attivato.

Risposta:

elektron ha detto:

Quando scelgo una controparte a livello di codice, trasferisco i primi caratteri del nome nel modulo di selezione. Come rendere programmaticamente attivato il primo elemento, che ha gli stessi primi caratteri.

Fai clic per espandere ...

Risolto. Ho creato una tastiera virtuale nel modulo di selezione della directory "Controparti".
Quando si preme un tasto qualsiasi, il codice viene attivato
Risultato della ricerca per requisito \u003d TechSp.FindTrova per nome (N, Falso);
FormElements.DirectoryList.CurrentString \u003d PropertySearchResult;
dove H è una variabile contenente il valore della chiave

Domanda: Modulo di selezione con selezione per un elenco di valori


Buona giornata. Ho bisogno del tuo aiuto per risolvere un semplice puzzle.

Konfa ZUP 2 .5 .113 .1 Esiste un rapporto esterno, il rapporto ha la "lista di basi" richiesta, tipo lista di valori.
C'è un modulo di segnalazione. Nel modulo del report, il campo "input list of bases", ValueType \u003d "ListValues" e typeListValues \u200b\u200b\u003d "ReferenceLink.Value of ObjectsProperties".

Come aprire un modulo di selezione con una selezione da parte del proprietario di una proprietà?

Grazie in anticipo!

Risposta: La scheda Parametri contiene la colonna Modifica parametri. lì puoi provare a configurare la connessione dei parametri di selezione o del parametro di selezione

Domanda: Aprire a livello di programmazione il modulo di selezione del documento 1s 8.3


Come aprire a livello di programmazione il modulo di selezione documenti 1c 8.3 e salvare il valore selezionato in una variabile?

Google ha preso una sorta di decisioni scadenti, vorrei sapere come farlo nel modo giusto.

Risposta: + () PM ha anche un metodo così magico: il download.

Sezione tabulare
Carica (carica)
Sintassi:

Scarica(<Таблица>)
parametri:

<Таблица> (obbligatorio) Tipo: tabella valori.
La tabella dei valori da cui viene caricata la sezione della tabella. Le colonne delle tabelle sono combinate per nome.
Descrizione:

Carica una sezione tabulare da una tabella di valori. In questo caso, tutte le righe precedenti della sezione tabulare vengono eliminate. Durante il caricamento, i valori nelle colonne della parte della tabella vengono riempiti con i valori delle colonne della tabella dei valori con nomi corrispondenti.

Disponibilità:

Server, Fat Client, Connessione esterna.
Nota:

Il metodo può essere utilizzato solo se la sezione tabulare è ottenuta da una proprietà dell'oggetto. Se la sezione tabulare è ottenuta da una proprietà di riferimento (o selezione), l'utilizzo di questo metodo provocherà un errore di runtime.
Esempio:

Composition.Load (Tavolo Composizione);

Domanda: passaggio dei parametri al modulo di selezione.


Chiedo indizi.
Dal documento "Vendite di beni e servizi" si chiama la forma di selezione per contratto (ERP). Confa corretto, lo confronto con uno tipico. In ProcessingCreationOnServer del modulo di selezione, cerco nelle opzioni di debugger. Non riesco proprio a capire come si forma l'elenco di selezione: non esiste una chiamata esplicita a questo modulo con i parametri, c'è solo un elemento di selezione nella proprietà "LinkParameterSettings" e ci sono già diverse selezioni nelle Impostazioni. Qualcuno può dirmi dove cercare.

LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam