LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam

Buona giornata.

Oggi parleremo di un'innovazione nella piattaforma 8.3 per quanto riguarda gli elementi predefiniti.

introduzione

Permettetemi di ricordarvi che prima, in pratica, molto spesso volevo guardare un elemento del libro di riferimento per scoprire il suo nome predefinito. Ad esempio, hai creato due appaltatori predefiniti e li hai chiamati IPSidorov e OOOMeteor. E hanno cucito una sorta di logica su di loro.

Quando tutto è stato eseguito il debug e ha funzionato, si è scoperto che il compito era impostato al contrario e la logica dell'unico proprietario è necessaria per la LLC e la logica della LLC è per l'unico proprietario. "Nessun problema", diciamo, e in modalità aziendale rinominiamo gli elementi. È molto più difficile entrare nel codice. Passa un anno e sei consegnato nuovo compito: per SP Sidorov impostare un po' più di logica. Vai nel configuratore, scrivi la logica, inizi a controllare e non funziona niente, perché nel configuratore IPSidorov e nell'impresa - Meteor LLC. Il cervello è rotto e voglio distruggere questo rastrello. Il più semplice e intuitivo consiste nell'emettere il nome di un elemento predefinito sotto forma di elenco. Ecco un'imboscata, puoi ottenere il nome del predefinito in 8.2 solo con il metodo. E il metodo ha il suo inconveniente, non può essere ottenuto nella richiesta. Quelli. il primo inconveniente è quello di ottenere il nome di quello predefinito facendo riferimento alla directory.

Il secondo inconveniente è quando abbiamo già un elemento di directory e dobbiamo renderlo predefinito. Creiamo un elemento predefinito e otteniamo due elementi nella directory. Uno predefinito, un altro funzionante, a cui fanno riferimento tutti i nostri documenti. La sostituzione dei collegamenti aiuta sicuramente, ma se il database è grande, allora è difficile.

Ora sul caso

Il primo è che il libro di riferimento ora ha la proprietà "Aggiorna dati predefiniti".

Cosa ci offre questo campo? Se è impostato su "Non aggiornare automaticamente", quindi aggiungendo un elemento predefinito, non lo vedremo immediatamente nel riferimento. Quelli. i metadati non hanno nulla a che fare con i dati. E se non viene creato nella directory, fare riferimento ad esso con il suo nome tramite il gestore di directory causerà un errore di sintassi.

Molto interessante, ma perché? Come creiamo un articolo nel riferimento? E come desideri, puoi crearlo o collegarlo a uno esistente. Ora la ricerca ha l'attributo "PredefinedDataName". Creiamo un elemento del catalogo a livello di codice come al solito tramite "References.Contractors.CreateElement ()" e compiliamo il suo attributo "PredefinedDataName" uguale al nome dell'elemento predefinito. Oppure, se l'elemento esiste già, otteniamo il suo oggetto e inseriamo nuovamente il "PredefinedDataName" al suo interno. Tutto quanto.

E per finire un po' di sciroppo

Questo nuovo oggetto di scena non è solo in lettura/scrittura, ma è anche disponibile nelle richieste. Pertanto, puoi imporre condizioni su di esso nelle query, determinare se è predefinito o meno.

Grazie per l'attenzione.

Quando si lavora sulla piattaforma 1C: Enterprise 8.x, è spesso necessario associare il codice del programma ai soliti elementi (non predefiniti) delle directory. Ad esempio, un'organizzazione può avere cinque tipi di prezzi utilizzati in quasi tutti i meccanismi. Allo stesso tempo, l'accesso programmatico a un prezzo specifico viene effettuato nel migliore dei casi tramite un codice nel libro di riferimento, nel peggiore dei casi tramite il nome dell'elemento.

Ho visto come nei report per ottenere il prezzo richiesto, la selezione per tipo di prezzo fosse utilizzata in una richiesta con il suo nome (vedi screenshot successivo).

Di conseguenza, otteniamo un rapporto instabile che smetterà di funzionare quando il nome del tipo di prezzo cambia. Se ti leghi al codice di un elemento, allora c'è sempre la possibilità di cambiarlo. Ad esempio, a causa di una violazione dell'unicità dei codici catalogo, l'amministratore può iniziare a rinumerare gli oggetti, il che porterà a una modifica dei codici elemento e il report smetterà di funzionare correttamente.

Inoltre, se ti colleghi al nome o al codice degli elementi della directory, quando ricevi un collegamento all'elemento, verrà sempre eseguita una ricerca nella tabella della directory. Nonostante il fatto che gli attributi di sistema standard siano indicizzati dal DBMS, la ricerca da parte loro in alcuni casi può richiedere risorse significative. Inoltre, sarebbe più razionale non esibirsi query di ricerca secondo la tabella di ricerca, se, diciamo, il collegamento all'elemento è già "conosciuto in anticipo".

Come via d'uscita, puoi memorizzare un riferimento a ciascun articolo utilizzato di frequente nella ricerca "Tipi di prezzo articolo" in costanti separate e ottenere valori da essi nella query. Tuttavia, in questo caso, lo sviluppatore dovrà aggiungere una costante separata per ciascuno di questi elementi. La situazione diventerà molto più complicata se tali elementi non si trovano solo nella directory "Tipi di prezzo dell'articolo", ma anche in altre directory ("Categorie di oggetti", "Qualità", "Nomenclatura" e altre). Quindi il numero di costanti nel sistema può aumentare più volte!

Naturalmente, si potrebbero aggiungere elementi predefiniti a ciascuna delle directory e sarebbe molto più facile accedervi. Tuttavia, la modifica degli oggetti generici complicherebbe il processo di aggiornamento della configurazione dai pacchetti del fornitore.

Ci sono più approccio ottimale sia dal punto di vista dello sviluppo della struttura dei metadati di configurazione, sia dal lato delle prestazioni del sistema. Oggi parleremo di lui.

Soluzione unica

L'essenza di una soluzione universale sarà la seguente: verrà creato un riferimento a cui lo sviluppatore aggiungerà elementi predefiniti. Al dizionario è stata aggiunta la variabile "Valore", il cui tipo dipende dai valori per i quali verrà creata la corrispondenza "Elemento dizionario predefinito -> Valore associato". La struttura dei metadati della directory è simile a questa (vedi lo screenshot successivo).

Per ottenere un elemento predefinito L'opzione miglioreè usare il metodo globale "Valore predefinito (<Имя>)" ... Il percorso completo dell'elemento predefinito viene passato al metodo come parametro. La sintassi è simile alla funzione del linguaggio di query "VALUE()".

Per facilità di sviluppo, consiglio di spostare la funzione per ottenere il valore associato a un elemento predefinito in un modulo comune. V configurazione di prova, disponibile per il download al link a fine articolo, è stato creato un modulo generale "PredefinedElement Values" con funzione di esportazione "GetValuePredefinedElement (<ИмяПредопределенногоЭлемента>)" ... Il codice del programma della funzione riceve un collegamento ad un elemento predefinito, quindi, su richiesta, riceve i valori dell'attributo "Valore". La schermata seguente mostra l'elenco completo della funzione.

Come possiamo vedere, la funzione genera una richiesta all'attributo "Value" dell'elemento predefinito passato come parametro. Il parametro della funzione è una stringa con il nome di un elemento predefinito.
Affinché il meccanismo creato funzioni correttamente, è necessario associare un elemento predefinito con un normale elemento del catalogo in modalità utente selezionando l'elemento corrispondente nell'attributo "Valore". Passiamo al tema dell'impatto sulle prestazioni.

Impatto sulle prestazioni

Condotto un test di velocità per entrambe le opzioni di ricerca: per nome e per riferimento da un elemento predefinito. La ricerca è passata attraverso la directory "Prodotti" con 20.000 record. Quando si esegue il test per base di file Sono stati ottenuti i seguenti risultati:

I risultati hanno mostrato che per la versione file di lavoro, l'utilizzo di elementi predefiniti per ottenere elementi utilizzati frequentemente di altre directory funziona quasi 4 volte più lentamente!

Nella versione client-server dell'opera, i risultati del test mostrano un quadro completamente diverso. La velocità di ottenere un collegamento all'elemento desiderato non è diminuita in modo significativo (uno dei test ha mostrato 0,002 sec. Per la ricerca per nome e 0,0008 sec. Quando si lavora su un elemento predefinito), tuttavia, l'affidabilità del programma è aumentata in modo significativo!

conclusioni

Nei casi in cui è spesso necessario eseguire il binding a normali elementi di directory, consiglio di non utilizzare il binding per codice o nome. Questo approccio riduce l'affidabilità e le prestazioni del sistema.

Durante il lavoro con la piattaforma, ho riscontrato ripetutamente situazioni in cui dopo aver modificato il nome, ad esempio per l'elemento del libro di riferimento "Tipi di nomenclatura dei prezzi", la maggior parte dei rapporti non tipici si è bloccata.

Più algoritmi sono associati a normali elementi di directory tramite un codice o un nome, meno stabile è il sistema.

Inoltre, questo approccio consentirà di non modificare i tipici oggetti di configurazione se è necessario aggiungere loro un elemento predefinito. In futuro, questo renderà il processo di aggiornamento della configurazione un po' più semplice.

Download:

  1. Scarico della base di prova con esempi dall'articolo.

Tutti conoscono la differenza tra gli elementi predefiniti e quelli ordinari: "Gli elementi predefiniti vengono creati in modalità Configuratore e non possono essere eliminati in 1C: modalità Enterprise". In modalità utente è possibile distinguere un elemento predefinito da quelli aggiunti dagli utenti tramite un'apposita icona (vedi screenshot successivo).

Fondamentalmente, gli elementi predefiniti vengono creati dagli sviluppatori per legare ad essi gli algoritmi in vari oggetti di configurazione. Ad esempio, nella configurazione "Manufacturing Enterprise Management" nel riferimento "Qualità", gli sviluppatori hanno aggiunto un elemento predefinito "Nuovo".

Questo elemento è utilizzato in molti moduli di configurazione. Quindi nel documento "Ricevuta di beni e servizi", al momento della registrazione in tutti i registri in cui è presente una dimensione "Qualità", viene sostituito il valore di un elemento predefinito. Di seguito è riportato un elenco di compilazione della tabella delle transazioni nel registro "Merci delle organizzazioni":

// MERCI NEL REGISTRO CommoditiesOrganizations. Insieme di Movimenti = Movimenti. ProdottiOrganizzazioni; Se Tipo di ricevuta = Trasferimenti. Tipi di beni a reddito. In Magazzino Allora // Ottieni una tabella di valori che corrisponda alla struttura del recordset del registro. Sposta tabella = Sposta set. Scarica (); // Compila la tabella di movimento. Scopo generale. LoadInTableValues ​​(Prodotti TableBy, TableMotions); // Campi mancanti. Tabella dei movimenti. FillValues ​​(Organizzazione, "Organizzazione"); Tabella dei movimenti. FillValues ​​(Non definito, "Commissario"); Tabella dei movimenti. FillValues ​​(Riferimenti. Qualità. Nuovo, "Qualità"); // Qualità di riempimento da un elemento predefinito

Pertanto, le caratteristiche degli elementi predefiniti e il loro scopo sono abbastanza semplici. Diamo un'occhiata a come sono archiviati nelle tabelle del database e in che modo differisce dagli elementi ordinari.

differenze

La directory "Prodotti" è stata creata nella configurazione di prova. Al suo interno è stato creato il gruppo "Elementi di prova". Puoi vedere il contenuto del gruppo nello screenshot all'inizio dell'articolo. Per il riferimento "Prodotti" nel database SQL esiste una tabella corrispondente "_Reference37" con la seguente struttura:

Ma come determinare la corrispondenza degli attributi all'albero di configurazione e ai campi nella tabella SQL?

Noi useremo metodo standard contesto globale "GetDatabaseStorageStructure()", che ci restituirà una tabella di valori con una descrizione della struttura delle tabelle.

Nella tabella dei valori "Fields" vediamo la corrispondenza tra i campi della tabella SQL e gli attributi dell'oggetto nell'albero dei metadati. Nel nostro esempio, consideriamo la struttura della directory "Prodotti". Tutte le directory hanno un attributo di tipo booleano standard "Predefinito", che è impostato su TRUE per gli elementi predefiniti:

Secondo la tabella con la struttura di memorizzazione del libro di riferimento nel database, possiamo sicuramente dire che il campo "Predefinito" corrisponde al campo "IsMetadata". Se osserviamo il contenuto della tabella "_Reference37" nel database SQL, vedremo quanto segue:

Nella voce per un elemento predefinito, il valore del campo "IsMetadata" è impostato su "0x01", che corrisponde al flag TRUE. Per gli articoli normali, il valore è impostato su "0x00". Questa è la principale differenza tra gli elementi predefiniti e quelli ordinari. Tutti gli altri campi vengono archiviati nel database allo stesso modo dei normali elementi aggiunti dall'utente.

Gli elementi predefiniti possono avere usi molto interessanti. Con il loro aiuto, puoi vietare l'eliminazione / contrassegnare per l'eliminazione di un gruppo di elementi nel libro di riferimento e altri oggetti in cui possono essere aggiunti. Se proviamo a eliminare o contrassegnare per l'eliminazione il gruppo "Elementi di prova". quindi otteniamo i seguenti errori:

Pertanto, gli elementi predefiniti rendono anche "predefinito" il gruppo in cui sono inseriti.

Completamento

Gli elementi predefiniti sono parte integrante della maggior parte delle configurazioni. Il loro utilizzo semplifica lo sviluppo e rende logicamente più "armoniosa" e coerente la costruzione della funzionalità.

Nella quarta lezione del nostro continueremo a familiarizzare con il programma. Oggi siamo su esempi pratici conoscere edirectory gerarchiche, oltre a imparare a creare elementi predefiniti.

Orario delle 4 lezioni del corso:

00:19 Modifiche alla guida del dipendente dopo aver completato i compiti per la 3a lezione del corso
00:35 Modificare l'ordine degli attributi nelle directory
02:54 Creazione del libro di riferimento per la nomenclatura
03:40 Creazione e configurazione di una directory gerarchica
05:10 Creazione di gruppi Servizi e Prodotti nella directory Nomenclatura
06:05 Compilazione del libro di riferimento per la nomenclatura
07:14 3 modi per spostare un elemento della directory in un altro gruppo
08:21 Creazione della directory Magazzini
09:19 Creazione di elementi di catalogo predefiniti
11:25 Compilazione dell'elenco Magazzini
12:20 Prendi la lezione di prova sui materiali 4

Directory gerarchica- un libro di consultazione con possibilità di disposizione gerarchica dei suoi elementi. Ad esempio, nella directory Nomenclature, è possibile creare gruppi: Beni, Servizi, ecc., In cui si trovano gli elementi appartenenti a questi gruppi. Inoltre, i gruppi di directory possono includere altri gruppi, creando così una struttura gerarchica a più livelli.

Inoltre, i dizionari supportano un altro tipo di gerarchia, in cui gli elementi dei dizionari non apparterranno a gruppi, ma ad altri elementi degli stessi dizionari. Questo tipo di gerarchia ( gerarchia degli elementi) può essere utilizzato, ad esempio, durante la creazione della directory Suddivisioni, dove una suddivisione (una suddivisione in questo caso, un elemento della directory, non un gruppo) può includere diverse altre suddivisioni. Questo tipo di gerarchia è usato raramente.

Moduli di directory- presentazione visiva del libro di riferimento. A seconda del tipo di azioni che vogliamo eseguire con la nostra directory, dobbiamo visualizzare la directory in "viste diverse". Quindi, alla 4° lezione del corso, abbiamo modificato l'ordine dei requisiti sotto forma di elenco e sotto forma di elemento di riferimento.

Il sistema crea (genera) i moduli automaticamente, ma, se necessario, lo sviluppatore può "disegnare" i moduli da solo.

In totale, ci sono 5 moduli (tipi di moduli) per i libri di consultazione:

  • forma dell'elemento- per creare o modificare un elemento della directory;
  • forma di gruppo- per creare o modificare un gruppo di directory;
  • modulo elenco- per visualizzare un elenco di elementi della directory;
  • modulo di selezione- è usato per selezionare uno degli elementi di questa directory in un campo di una certa forma. Ad esempio, per selezionare un magazzino specifico dalla directory Magazzini nel documento Entrata merci nel campo Magazzino;
  • modulo di selezione del gruppo- è usato per selezionare uno dei gruppi di questa directory in un campo di qualche forma.

Elementi di directory predefiniti- elementi di directory creati dallo sviluppatore in modalità Configuratore e a cui è possibile accedere dal linguaggio 1c integrato tramite Nome.

C'è una differenza fondamentale tra gli elementi di directory normali e predefiniti. Gli elementi normali sono incoerenti nella configurazione. Durante il lavoro dell'utente, possono essere creati, modificati e cancellati e, pertanto, non devono essere utilizzati durante l'esecuzione di algoritmi (il codice e il nome dell'elemento possono essere modificati dall'utente).Al contrario, gli elementi predefiniti sono permanenti. Nel corso del lavoro, anche se l'utente rinomina tale elemento, sarà possibile accedervi dal linguaggio 1c integrato. Ciò è ottenuto grazie al fatto che l'elemento predefinito ha un props Nome che non è disponibile per l'utente. Gli elementi ordinari della directory non hanno tale attributo.

Importante! Tecnicamente, l'utente ha la possibilità di eliminare un elemento del dizionario predefinito, ma, di norma, gli utenti sono disabilitati dai diritti per eliminare gli elementi del dizionario predefiniti.

Compiti per la 4° lezione del corso

I compiti per la quarta lezione del corso saranno a tua disposizione subito dopo aver superato con successo il test di teoria.

L'idea stessa di lavorare programmaticamente con elementi predefiniti, secondo me, è molto corretta. Ci sono solo alcune sfumature che devono essere prese in considerazione quando si lavora.

Innanzitutto, devi capire chiaramente da te stesso che ci sono elementi predefiniti nella configurazione e che ci sono elementi predefiniti nell'infobase (IB). Gli elementi di sicurezza delle informazioni tecnicamente predefiniti sono gli elementi più comuni dei dizionari, in cui l'attributo "PredefinedDataName" specifica a quale elemento di configurazione predefinita corrispondono. Non sono più diversi dagli elementi ordinari. Di conseguenza, qualsiasi elemento IB ordinario può essere reso predefinito, qualsiasi ordinario predefinito. Per fare ciò, basta inserire il valore desiderato negli oggetti di scena. "NomeDati Predefinito".

Periodicamente, questa proprietà si rivela non essere il valore fornito dallo sviluppatore. Di conseguenza, si verificano errori nel lavoro di 1C. Da critico, in cui il lavoro è in linea di principio impossibile, a non critico, in cui viene violata la logica degli algoritmi.

Può essere condizionatamente distinto tre tipi di errori:
1. "Manca l'elemento predefinito dai dati";

3. Indicazione non valida di un elemento predefinito;

1. "Manca un elemento predefinito dai dati" - o L'assenza di un elemento predefinito descritto nella configurazione nei dati IB.

Questo è il tipo di errore più semplice da eseguire il debug e correggere. La sua semplicità è che la piattaforma segnala correttamente questa situazione "Manca un elemento predefinito dai dati" ed è abbastanza chiaro come risolverlo.

Quando si accede all'elemento mancante nel codice "Directories.Types of ContactInformation.EmailContactPerson" viene visualizzato il messaggio

Quando si fa riferimento a un elemento nella richiesta "VALUE (Directory.Types of ContactInformation.EmailContactPerson)" viene visualizzato il seguente messaggio:

Questo errore si verifica se un elemento è descritto nella configurazione, ma l'elemento non è associato ad esso nel database.

Per cominciare, chiariamo che questa situazione non è sempre sbagliata. È del tutto possibile utilizzare dati predefiniti in un qualche tipo di logica di programma, che per la maggior parte degli utenti potrebbe non essere utilizzata. In questo caso, per non ingombrare il manuale di riferimento per tutti gli utenti della configurazione, è logico definire elementi predefiniti nella configurazione, ma non crearli in tutti i sistemi di sicurezza delle informazioni, ma solo per quei sistemi di sicurezza delle informazioni in quale viene utilizzata la logica di configurazione richiesta. In questo caso, il programmatore può specificare la proprietà "Non aggiornare i dati predefiniti" per il libro di riferimento e creare elementi a livello di codice quando accede alle funzionalità del modulo. Oppure per consentire all'utente di associare in modo indipendente gli elementi predefiniti del modulo ai soliti elementi di cui dispone.

Inoltre non utilizzato creazione automatica elementi predefiniti quando si opera in modalità RIB. Poiché i nuovi elementi dovrebbero essere trasferiti dalla base centrale e non creati in nodi con UID diversi.

Quelli. a volte è un errore riferirsi a un oggetto non abbinato, piuttosto che alla presenza stessa di un tale oggetto.

È necessario analizzare il motivo per cui l'elemento non è stato creato. Forse dovrebbe essere creato quando viene eseguita una modalità del programma. Ad esempio, dopo aver eseguito uno scambio nel RIB. O forse è stato semplicemente cancellato accidentalmente.

Se la logica prevede la compilazione di elementi predefiniti non in automatico, ma in modalità separata, quindi prima di utilizzare la chiamata per nome" Directory.Tipi di contattoInformazioni.EmailContattoPersona"Per evitare un'eccezione, è consigliabile verificare che l'elemento sia già presente nel database. Se l'elemento è assente, informarne l'utente e spiegare quale modalità deve eseguire per riempire l'elemento. Per tale controllo, è possibile eseguire una query sui dati.

Richiesta = Nuova richiesta; Query.Text = "SELECT | Tipi di informazioni di contatto.Link | FROM | Directory.Tipi di informazioni di contatto AS Tipi di informazioni di contatto | WHERE | Tipi di informazioni di contatto. PredefinedData Name =" " Email della persona di contatto"" "; ElementNo.VD = Request.Run(). Empty ();

Se questo è ancora un errore nei dati del database, è necessario eseguire il binding a un elemento predefinito dell'elemento IB. Quelli. è necessario spiegare al sistema a quale elemento di sicurezza delle informazioni il codice del programma deve fare riferimento con questo nome. Tecnicamente, il binding sta semplicemente specificando il nome di un elemento predefinito in una proprietà "NomeDati Predefinito"Elemento IB. Per installarlo basta eseguire il codice:

2. "L'elemento predefinito non è univoco" - h advoi elementi predefiniti:

Questa situazione consiste nel fatto che più elementi IB sono legati ad un elemento predefinito. In questo caso, quando si fa riferimento a un nome predefinito, l'elemento verrà selezionato in modo casuale. Questa situazione è sempre sbagliata. La sua difficoltà è che la piattaforma non ne comunica in alcun modo. È solo che gli algoritmi iniziano a funzionare in modo errato.

Il framework segnalerà solo l'errore "L'elemento predefinito non è univoco" quando si tenta di modificare un elemento duplicato.

Fino a quando nessuno dovrà modificare l'elemento, nessuno saprà dell'errore.

Tali duplicati possono essere creati, ad esempio, se il RIB viene utilizzato per il libro di consultazione e nelle proprietà per i dati predefiniti è specificata la modalità "Aggiorna automaticamente". In questo caso, quando viene eseguito lo scambio, verrà creata un'istanza dei dati predefiniti al momento dell'aggiornamento della configurazione. Una seconda istanza di elementi predefiniti con lo stesso nome verrà trasferita dal database centrale durante lo scambio.

Inoltre, questi duplicati si verificheranno quando si utilizza l'elaborazione di scambio tra le configurazioni nel caso in cui in basi diverse diversi elementi di sicurezza delle informazioni corrispondono a elementi predefiniti. In questo caso, una copia dei dati predefiniti esiste già nel database, la seconda arriverà quando si caricano dati con un UID diverso. Se stai eseguendo trasferimenti di dati, devi decidere quali elementi del database sono considerati primari e utilizzarli nel database subordinato. Nella base subordinata, è necessario sostituire l'uso di vecchi elementi con elementi della base principale.

Tali errori nel database possono essere rilevati da una query del modulo:

SELEZIONARE Tipi di informazioni di contatto. Nome dati predefiniti, QUANTITÀ (DIVERSI TIPI DI INFORMAZIONI DI CONTATTO. Collegamento) COME Numero Predefinito dalla directory. Tipi di informazioni di contatto COME Tipi di informazioni di contatto.

Questa query restituirà un elenco di elementi predefiniti con più di un elemento IB associato.

Se sono presenti tali elementi, è necessario rimuovere il collegamento con quello predefinito per uno di essi. Quelli. è necessario determinare in modo univoco per il sistema a quale elemento IS il codice del programma deve fare riferimento quando si utilizza questo nome. Per fare ciò, è sufficiente eseguire il codice.

3. Indicazione non valida di un elemento predefinito.

L'errore sta nel fatto che l'elemento predefinito corrisponde all'elemento sbagliato, fornito dalla logica del programma. Tali errori sono i più difficili da diagnosticare. A differenza dei primi due tipi, non è possibile controllare automaticamente la configurazione per questi errori. Possono essere identificati solo analizzando la logica del lavoro. In caso di dubbio, è possibile verificare se viene utilizzato l'articolo corretto.

Per farlo basta eseguire uno dei comandi.

// Definizione di un elemento IB che è legato al Report predefinito richiesto (Directories.Types of ContactInformation.EmailContactPerson) // Determina l'elemento predefinito a cui è legato il Report selezionato (ReferenceOnItem.Name of PredefinedData)

Se vengono rilevati tali errori, è necessario rimuovere il collegamento errato con il vecchio elemento e aggiungere un collegamento con il nuovo elemento. Il codice operativo è simile al codice di correzione per i primi due tipi di errori.

Bene, brevemente sugli errori quando lavoro programmatico oppure in modalità configuratore:

"L'elemento predefinito non appartiene a<Имя справочника>" - si verifica un errore quando si cerca di scrivere un elemento predefinito con un nome che non corrisponde al nome nel co-configuratore.

"Gli oggetti non predefiniti non possono avere voci di tipo subconto predefinite" - si verifica un errore quando si tenta di rendere indefinito un elemento del piano dei conti predefinito. Per eliminare gli errori è necessario deselezionare il flag "Predefinito" per ogni riga dell'elemento conto lavoro.

"Gli oggetti non predefiniti non possono avere record predefiniti dei principali tipi di calcoli"- si verifica un errore quando si tenta di rendere indefinito un elemento predefinito di un grafico di tipi di calcolo. Per eliminare gli errori, è necessario deselezionare il flag "Predefinito" per ogni riga del calcolo dell'elemento principale.

"Gli elementi predefiniti non sono unici"- viene generato un errore nel configuratore durante l'aggiornamento base di informazioni per una versione di configurazione senza modalità di compatibilità 8.3.4. È necessario controllare i duplicati ed eliminarli prima dell'aggiornamento.

"Il nome dell'elemento predefinito non è univoco" - l'errore si verifica se sono presenti più elementi predefiniti con lo stesso nome nella configurazione durante l'aggiornamento alla piattaforma8.3.6.2332 e versioni successive. È necessario eliminare i duplicati nella configurazione.

Per lavorare con dati predefiniti, consiglio l'elaborazione. Sa eseguire qualsiasi azione con dati predefiniti e può anche controllare la configurazione nel suo insieme per la presenza di errori dei primi due tipi (elementi duplicati e mancanti) in tutti gli oggetti di sicurezza delle informazioni (libri di riferimento, piani dei conti, PVC , PVR).

LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam