Come configurare smartphone e PC. Portale informativo
  • casa
  • Errori
  • La modalità di compatibilità dell'estensione di configurazione è maggiore della modalità. Estensioni di configurazione: come aggiungere funzionalità a una configurazione tipica senza rimuovere dal supporto (20 minuti di video)

La modalità di compatibilità dell'estensione di configurazione è maggiore della modalità. Estensioni di configurazione: come aggiungere funzionalità a una configurazione tipica senza rimuovere dal supporto (20 minuti di video)

Colleghi, ciao a tutti.

Pochi giorni fa è stato rilasciato un test Enterprise Accounting con una modalità di compatibilità disabilitata con la piattaforma 8.3.6.
Ciò significa che questa versione utilizza un nuovo motore che rende i moduli in un modo nuovo.
Puoi leggerlo in Attraverso lo specchio.

Insieme a quelli standard, dovresti rifare le tue estensioni sulla nuova piattaforma.
Nel processo di traduzione, ho formato una piccola lista di controllo o un promemoria su ciò che deve essere fatto per me stesso.

Nota:


1. Trasferiamo l'estensione su una nuova piattaforma

A tale scopo, modificare la modalità di compatibilità dell'estensione in modalità di compatibilità della configurazione.
Nella versione di Contabilità aziendale, sono impostate le seguenti proprietà:

Nell'estensione, puoi impostare esattamente le stesse proprietà o deselezionare tutte le caselle di controllo.
L'assenza di flag significa che l'estensione non controllerà queste proprietà una volta connessa.
Se queste proprietà cambiano nella configurazione principale, l'estensione si avvierà comunque:


2. Elimina i problemi di connessione

Per fare ciò, esegui la configurazione in modalità aziendale e verifica se è decollata o meno.
Gli errori per cui non è stato possibile connettere l'interno possono essere visualizzati nel registro di registrazione
(Amministrazione - Supporto e assistenza - Diario di bordo)
Siamo interessati agli eventi - “Session. Errore durante l'applicazione dell'estensione di configurazione ":

Molto spesso, il problema di connessione viene risolto rimuovendo oggetti o oggetti di scena non necessari.

La difficoltà principale è che l'estensione non genera tutti gli errori contemporaneamente (a proposito, questo problema è risolto in 8.3.9).
Pertanto, è necessario eseguire le configurazioni in sequenza dopo aver corretto ogni errore.
Per facilitare l'avvio del registro di registrazione, aggiungilo ai preferiti:



3. Aggiornamento dei moduli nell'estensione

Per fare ciò, in ogni modulo modificato, fare clic su "Aggiorna estensione modulo"
Con questo comando, ricarichiamo il modulo di configurazione principale nell'estensione.

In linea di principio, funzionerà senza questo, ma ciò è necessario affinché il modulo nell'estensione appaia lo stesso della configurazione principale.
Nella versione 3.0.44, quasi tutti i moduli hanno subito modifiche, quindi sarebbe bello portare queste modifiche nell'estensione.


4. Portiamo la forma alle regole del nuovo motore.

Ti consiglio di leggere l'articolo - Raccomandazioni per adattare i moduli a 8.3.7.
Esamina le funzionalità del nuovo motore e fornisce consigli specifici su come assicurarsi che tutto vada bene nella nuova piattaforma.

Ho compilato la seguente procedura:

  • Rimuoviamo tutte le decorazioni che sono stati utilizzati per il rientro.
    Ora vengono utilizzati i gruppi.
  • Vediamo che tutto sembra a posto.
    Se qualcosa è andato storto, guarda l'articolo.
    Se tutto va bene, allora vai avanti.
  • Verifica delle nuove proprietà della piattaforma“Combinato”, “Larghezza massima automatica” e “Altezza massima automatica”.
    Osserviamo solo che le impostazioni predefinite della piattaforma sono impostate in queste proprietà e il modulo non si disperde per questo motivo.

In questo articolo propongo di considerare cos'è una "estensione di configurazione", come aggiungere un'estensione o disabilitarla. Dalla versione 1C 6/8/1977 un nuovo meccanismo è stato introdotto nella piattaforma - estensioni di configurazione. Innanzitutto, una piccola teoria.

Le estensioni in 1C sono qualcosa come le configurazioni parallele che vengono automaticamente combinate con la configurazione del fornitore principale. Inoltre, nelle estensioni, puoi aggiungere sia i tuoi oggetti che prendere in prestito oggetti della configurazione principale.

A cosa servono le estensioni?

Prima di tutto, le estensioni sono progettate per rendere più facile apportare modifiche al programma. Cioè, se gli utenti chiedevano di aggiungere alcune funzionalità, prima che apparissero le estensioni, i programmatori dovevano rimuovere la configurazione dal supporto completo e modificare la configurazione tipica.

Il ritiro dal pieno supporto comporta una serie di inconvenienti:

  • si perde la capacità di aggiornarsi automaticamente, il che porta almeno ad un aumento del tempo per;
  • è richiesta un'alta qualificazione dello specialista che serve il programma;
  • se sono state apportate modifiche agli oggetti standard di una configurazione tipica, durante un aggiornamento potrebbero scomparire, ovvero potrebbero essere nuovamente sostituiti con oggetti standard dal fornitore.

Quando si utilizzano le estensioni, quando si apportano modifiche, il programmatore non toccherà la configurazione tipica. Tutte le modifiche verranno apportate utilizzando le estensioni, che (come ho scritto sopra) sono anche configurazioni. Pertanto, la configurazione principale rimarrà completamente supportata.

Dopo aver aggiornato la configurazione principale, se si sono verificate delle modifiche nella nuova versione con un oggetto che era stato precedentemente modificato da un'estensione, le modifiche verranno comunque prese dall'estensione. Cioè, le estensioni hanno la precedenza sulla configurazione principale.

Video - Estensioni 1C in 45 minuti

Ottieni gratuitamente 267 tutorial video 1C:

Un esempio di aggiunta di un'estensione a 1C

Per mostrare cos'è un'estensione, è meglio dare un esempio della sua creazione nel configuratore 1C.

Nel configuratore, vai nel menu "Configurazione" e seleziona la voce "Estensioni di configurazione". Si aprirà una finestra con un elenco di estensioni (se presenti). Fare clic sul pulsante Aggiungi e aggiungere una nuova estensione. Ora puoi aprire la configurazione dell'estensione:

Come puoi vedere, la configurazione dell'estensione ha esattamente la stessa struttura di quella principale. Solo che inizialmente è completamente pulito, senza oggetti.

Di recente ho scritto un articolo su come farlo da solo. Usando il suo esempio, voglio renderlo in linea usando un'estensione.

In elaborazione, ho un campo con un collegamento alla directory "Organizzazioni". Pertanto, questa guida è necessaria per me. Ma non creeremo una nuova directory "Organizzazioni", soprattutto perché la piattaforma non lo consentirà. È impossibile che la configurazione dell'estensione contenga oggetti con lo stesso nome degli oggetti nella configurazione principale.

Pertanto, prenderemo in prestito il riferimento dalla configurazione principale:

Ora facciamo clic con il tasto destro del mouse su "Elaborazione" e selezioniamo "Inserisci elaborazione esterna, rapporto ..." Quindi, aggiungeremo una nuova elaborazione alla configurazione dell'estensione. Se usi la mia elaborazione, rinominala immediatamente, poiché la configurazione principale ha già un'elaborazione con questo nome.

Bene, il tocco finale. Voglio che la mia elaborazione si rifletta nel menu Amministrazione. Per fare ciò, prenderemo in prestito l'omonimo sottosistema nella configurazione principale. Non dimenticare di indicare in elaborazione che appartiene a questo sottosistema.

Ecco la struttura che ho ottenuto:

Vediamo cosa abbiamo. Aggiorniamo la configurazione del database ed eseguiamo il programma in 1C: modalità Enterprise e andiamo al menu "Amministrazione". Sì, quasi dimenticavo, la configurazione dell'estensione deve essere chiusa, altrimenti il ​​programma non si avvia:

Il tema è "pulito" revisione del tipico la configurazione è sempre aggiornata.

Con l'aiuto delle estensioni, diventa possibile apportare miglioramenti, lasciando la configurazione Senza modifiche(questo è senza togliere "dalla serratura").

Ad esempio, noi espanderemo la funzionalità dello standard"1C: Contabilità 8" - aggiungeremo controlli per la completezza dei dettagli dei documenti. Di conseguenza, il sistema emetterà una diagnostica se i dettagli sono riempiti con valori "errati".

Letteralmente in 15 minuti Imparerai tecniche che potrai utilizzare per risolvere diversi problemi.

Inoltre, nel secondo video vi mostreremo meccanismo universale basato su estensioni. E, avendo sviluppato un tale meccanismo una volta, può essere collegato a qualsiasi configurazione tipica.

Sogni di proprio imperituro può diventare realtà :)

Quindi iniziamo:

Video 1. Tecniche per lavorare con le estensioni, ad esempio "1C: Contabilità 8"

Dopo aver studiato il video, imparerai:

  • Crea e connetti estensioni alla configurazione
  • Esaudire debug estensioni
  • Modifica moduli standard elaborazioni / documenti che utilizzano estensioni
  • Intercetta eventi forme di configurazione tipica
  • Immagazzina dati non nelle tabelle IB (memorizzazione delle impostazioni)
  • Usa elaborazione come negozio di algoritmi

Analizzeremo anche ottimizzazione la composizione di oggetti di estensione e restrizioni sull'estensione nelle versioni attuali della piattaforma.

Video 2. Creazione di meccanismi universali utilizzando le estensioni

In questo video mostreremo:

  • Collegamento di un interno in modalità utente ( senza configuratore)
  • Esempio controllo universale Riempimento
  • Caratteristiche dell'implementazione delle estensioni: creazione di moduli con selezioni arbitrarie e memorizzare i dati nelle estensioni

È stata rilasciata una nuova versione della piattaforma 8.3.11, che consente di aggiungere e modificare oggetti di metadati tramite l'estensione. Ora possiamo davvero implementare miglioramenti senza rimuovere la configurazione dal supporto? Vale la pena promettere al cliente montagne d'oro senza conseguenze?

Prima di tutto, devi essere consapevole dei limiti che hanno le estensioni.

Limitazione sugli oggetti creati

Al momento puoi creare:

  • Directory
  • Documentazione
  • Registri informativi
  • Piani di scambio

Puoi aggiungere dettagli a:

  • Directory
  • Documentazione

Con cosa finiamo? Non è possibile aggiungere tutti i tipi di oggetti metadati. I più diffusi e richiesti, ma ancora non tutti. Inoltre, non è possibile aggiungere nuove dimensioni e risorse ai registri di dettaglio. Puoi solo creare un registro completamente nuovo.

La funzionalità delle estensioni dipende dalla modalità di compatibilità della configurazione a cui è applicata l'estensione.

Modalità di compatibilità 8.3.8- puoi modificare solo le forme degli oggetti e dei loro moduli, aggiungere i tuoi report e le tue elaborazioni.

Modalità di compatibilità 8.3.10- è possibile modificare moduli comuni, moduli oggetto e manager, ruoli, utilizzare le direttive "Prima", "Dopo", "Invece" per qualsiasi modulo.

Non utilizzare la modalità di compatibilità- puoi utilizzare tutte le funzionalità delle estensioni, inclusa l'aggiunta di nuovi oggetti.

Al momento, l'UT 11.3 tipico ha una modalità di compatibilità di 8.3.8. In UT 11.4, la modalità di compatibilità è 8.3.10, ovvero, ad esempio, per UT, la maggior parte delle funzionalità delle estensioni non è disponibile, inclusa la creazione di oggetti metadati.

Sembrerebbe che sorge spontanea la domanda: perché non rimuovere semplicemente il root dal supporto, impostare la modalità di compatibilità "Non utilizzare" e utilizzare in sicurezza le estensioni? La modifica della modalità di compatibilità può modificare il comportamento dei moduli, i risultati delle query, ad es. il comportamento del sistema nel suo complesso. Si consiglia vivamente di non modificare la modalità di compatibilità senza prima averla verificata. Ma è ovvio che sembra possibile testare completamente (o almeno in parte dei documenti utilizzati) un'intera soluzione applicata. Pertanto, non dovresti usare questa opzione.

Quando si collega l'estensione alla configurazione standard, prendendo in prestito oggetti standard, l'estensione controlla la modalità di compatibilità della configurazione principale e i tipi di oggetti presi in prestito e i loro dettagli. Se le proprietà monitorate non corrispondono, l'estensione viene disabilitata e non funziona finché la causa non viene eliminata. Cioè, con un aggiornamento importante, c'è un'alta probabilità di cambiare almeno una delle proprietà monitorate e la perdita della funzionalità dell'estensione.


Inoltre, se le modifiche sono significative, molte procedure e funzioni della configurazione tipica sono state sostituite, dovranno essere attentamente monitorate e, se necessario, allineate alla configurazione tipica, mantenendo le modifiche apportate in precedenza.


Nei casi di cui sopra, avrai comunque bisogno dell'aiuto di un programmatore e, possibilmente, di un tempo significativo per la revisione (ma comunque inferiore rispetto all'aggiornamento di una configurazione che è stata rimossa dal supporto).

conclusioni

  • La nuova versione della piattaforma ha fornito nuove opportunità per l'utilizzo delle estensioni, è diventato possibile aggiungere oggetti di metadati, ma nonostante ciò la funzionalità presenta alcune limitazioni.
  • La modalità di compatibilità della configurazione a cui viene applicata l'estensione limita fortemente l'estensibilità; non è consigliabile modificare la modalità di compatibilità.
  • Aggiornamenti di grandi dimensioni richiedono ancora l'attenzione dello sviluppatore, poiché esiste un'alta probabilità di modificare le proprietà controllate.

Implementato nella versione 8.3.6.1977.

Abbiamo implementato un meccanismo fondamentalmente nuovo per adattare le soluzioni applicate a un consumatore specifico: un meccanismo di estensione.

Perché le estensioni sono buone?

Le estensioni offrono una strategia diversa per la modifica delle configurazioni tipiche rispetto a quella esistente. L'utilizzo di questa nuova strategia faciliterà notevolmente il mantenimento di soluzioni standard che si desidera adattare alle esigenze di una specifica implementazione, di uno specifico cliente.

Che aspetto ha questo processo adesso? C'è una configurazione tipica. È completamente supportata dal fornitore. Ciò significa che non puoi cambiarlo. Il fornitore rilascia periodicamente nuove versioni (migliorate) di questa configurazione. In tale situazione, l'aggiornamento della vecchia versione della configurazione alla nuova versione viene eseguito in modo completamente automatico. È conveniente e non richiede particolari abilità o conoscenze da parte del cliente.

Ma spesso il cliente vuole aggiungere qualcosa o cambiare qualcosa in una configurazione tipica "per sé". Per questo, la modalità di supporto viene modificata, la configurazione viene rimossa dal supporto completo. Il partner che esegue l'implementazione o gli specialisti IT del cliente apportano le modifiche necessarie. Da questo momento in poi diventa impossibile un aggiornamento completamente automatico di una configurazione tipica ad una nuova versione rilasciata dal fornitore.

Ora è necessario uno specialista per aggiornare la configurazione. Inoltre, se le modifiche apportate per volere del cliente fossero significative, potrebbe essere necessario un notevole investimento di tempo da parte dello specialista che esegue l'aggiornamento della configurazione. E spesso può essere richiesta un'ottima conoscenza sia della configurazione tipica stessa che delle modifiche apportate.

La strategia suggerita dalle estensioni è la seguente. Se si desidera modificare la configurazione tipica, non toccare la configurazione stessa. Tutte le modifiche apportate all'estensione, che in effetti è anche una configurazione.

In 1C: modalità Enterprise, colleghi semplicemente il tuo interno alla configurazione standard. La piattaforma automaticamente, in modalità 1C: Enterprise, combina la tua estensione con una configurazione tipica. Di conseguenza, il cliente lavora con una soluzione standard modificata, secondo i suoi desideri.

Quando un fornitore rilascia una nuova versione della configurazione tipica, viene eseguito un aggiornamento automatico perché la modalità di manutenzione per la configurazione tipica non è cambiata. È rimasta pienamente supportata dal fornitore. E quando avvii una soluzione applicativa aggiornata, la piattaforma unirà automaticamente di nuovo la configurazione standard modificata con la tua estensione. E il cliente continuerà a lavorare con una soluzione standard modificata, secondo i suoi desideri.

Quando dovresti usare le estensioni?

Il meccanismo di estensione è allettante per la sua versatilità. Pertanto, è importante avere una corretta comprensione di quali compiti è destinato.

Innanzitutto, le estensioni sono insostituibili quando la soluzione applicativa opera in modalità di condivisione dei dati. Ad esempio, nel modello di servizio. Uno degli abbonati vuole avere un paio di rapporti aggiuntivi. Mentre il resto degli abbonati vuole lavorare con la configurazione tipica invariata.

Quindi è per questo abbonato che puoi sviluppare un'estensione in cui realizzare tutti i suoi desideri. L'abbonato collegherà questa estensione per se stesso e lavorerà con la configurazione modificata. Mentre per il resto degli iscritti non ci saranno cambiamenti. Perché tutte le estensioni sono connesse ed eseguite nel contesto dei valori del separatore corrente.

Un'altra situazione è il completamento di una configurazione tipica per un cliente specifico nella sua implementazione. Oppure modifiche della configurazione tipica, che vengono eseguite dagli specialisti IT del cliente in proprio. Se tutti questi miglioramenti vengono apportati nell'estensione, la configurazione tipica rimarrà completamente supportata, il che semplificherà notevolmente la sua ulteriore manutenzione.

C'è la tentazione di usare le estensioni per creare applicazioni commerciali, ma non dovresti. In primo luogo, perché le estensioni non sono state progettate per tali compiti. E in secondo luogo, perché altri meccanismi della piattaforma, come i meccanismi di consegna e supporto, non sanno nulla delle estensioni.

Se guardi un po 'nella storia dell'aspetto delle estensioni, allora, ovviamente, abbiamo visto prima e vediamo ora che le configurazioni stanno diventando più complesse. Vediamo che è necessario un supporto aggiuntivo a diversi livelli di sviluppo: libreria, modulare e industriale, ecc. Abbiamo analizzato tutti questi compiti e siamo giunti alla conclusione che la priorità più importante al momento è l'adattamento delle configurazioni ai desideri degli utenti durante le implementazioni.

È per questo compito che abbiamo creato il meccanismo di estensione. Naturalmente, in esso puoi notare diverse caratteristiche delle altre aree di sviluppo elencate. Ma non sono il suo scopo principale e non dovrebbero confonderti.

Cosa puoi cambiare ora con le estensioni?

Finora non è stato fatto molto di quanto previsto. Il meccanismo, ovviamente, si svilupperà. Ma quanto già fatto può essere utile in molti casi sui deployment. Ora:

  • Può essere cambiato moduli gestiti esistente in una configurazione tipica;
  • Puoi aggiungerne di nuovi sottosistemi... È possibile modificare la composizione dei sottosistemi disponibili nella configurazione tipica;
  • Può essere cambiato ruolo una configurazione tipica, aggiungendo ad essi oggetti creati nell'estensione;
  • Può essere cambiato interfaccia di comando configurazione tipica (sezione principale, sottosistemi);
  • Puoi aggiungerne di nuovi rapporti e in lavorazione.

In futuro, abbiamo in programma di aumentare gradualmente la funzionalità delle estensioni e saremo lieti di ricevere la tua opinione su quale funzionalità è più richiesta nelle distribuzioni con modifiche minori.

Come funziona l'estensione?

L'estensione è molto simile alla configurazione normale. È anche rappresentato come un albero di oggetti. Per lavorare con l'estensione, vengono utilizzati gli stessi metodi di lavoro della normale configurazione.

Una caratteristica importante dell'estensione è la presenza oggetti presi in prestito... Puoi prendere in prestito qualsiasi oggetto di una configurazione tipica usando il comando del menu contestuale:

Gli oggetti presi in prestito non sono sempre necessari. Il modo migliore per spiegarlo è usare un esempio "quotidiano", se tracciamo un'analogia con il pranzo al ristorante.

La prima situazione è quando sono necessari oggetti presi in prestito.

Sei abituato a cenare nello stesso ristorante. Ordini sempre bistecca e tè. Ad esempio, perché sono molto bravi in ​​questo ristorante. O per un altro motivo. Non importa. È importante solo che li mangi e nient'altro.

Quindi un ristorante è una tipica base di informazioni. Sei un'estensione. Il menu del ristorante è una configurazione standard espandibile. Bistecca e tè sono oggetti presi in prestito. Li hai presi in prestito (ricorda che sono nel menu).

In che modo l'estensione si connette alla configurazione e funziona? Vieni in un ristorante e chiedi un menu. Sul menu, vedi che c'è bistecca e tè. Cioè, stabilisci una corrispondenza tra oggetti presi in prestito e oggetti di una configurazione tipica. Naturalmente, stabilisci la corrispondenza per nome :). Ti portano bistecca e tè e tu li mangi. Cioè, l'estensione si connette e funziona.

Dopo una settimana arrivi tu, ma il menù del ristorante è cambiato (è stata aggiornata la configurazione standard). Tuttavia, c'è ancora bistecca e tè nel menu. Sono esattamente ciò di cui hai bisogno. Te li portano, tu li mangi. Cioè, l'estensione continua a funzionare con la configurazione tipica aggiornata.

Una settimana dopo, vieni in un ristorante e vedi che la bistecca e il tè sono scomparsi dal menu. Ti alzi e te ne vai (messaggio di errore di connessione dell'interno). Perché è quello che volevi. E non hai idea di altri piatti (oggetti). Lo sviluppatore non ti ha insegnato come mangiare correttamente lumache o aragoste.

Un'altra situazione è quando puoi fare a meno di oggetti presi in prestito.

Vai in un ristorante, ma non sei interessato alla disponibilità di piatti specifici. Perché comunque non li mangerai. Vuoi solo fotografarli. E sai come fotografare qualsiasi piatto. Quindi ti basta collegarti alla configurazione e dire: porta tutti gli snack che hai nel menu (ottieni una raccolta di documenti dai metadati). Li ripubblicherò (fotografia).

Se lo descrivi nel linguaggio secco degli sviluppatori, risulta che devi prendere in prestito oggetti:

  • Quando sono necessari per il design visivo. Ad esempio, espandi un form e aggiungi un form props come DirectoryValute.Link... Quindi, naturalmente, dovresti prendere in prestito il riferimento Valute, in modo che quando ci si connette a una configurazione tipica, assicurarsi che tale directory esista ancora al suo interno.
  • Quando sono necessari per il funzionamento del codice. Ad esempio, nel codice dell'estensione, fai riferimento all'attributo di riferimento Nomenclatura - Importatore... Quindi anche questo attributo deve essere preso in prestito per essere sicuri durante il collegamento che tale attributo esista ancora nel libro di riferimento nella configurazione standard Nomenclatura.

Collegamento dell'estensione

Crea un'estensione nel configuratore. Una volta eseguito il debug e testato, puoi rifiutarlo salvando l'estensione in un file * .cfe.

Puoi trasferire questo file al cliente. Il cliente lo caricherà autonomamente nel suo database in 1C: modalità Enterprise utilizzando la funzione standard Gestione delle estensioni di configurazione.

L'utilizzo delle estensioni è disponibile dal linguaggio integrato, quindi nella soluzione dell'applicazione è possibile creare la propria elaborazione che caricherà le estensioni. In modo che tutti non si concedano estensioni, abbiamo aggiunto un nuovo diritto - Amministrazione delle estensioni di configurazione.

Quando un'estensione viene caricata da un file, viene salvata nell'infobase. Inoltre, viene salvato nel contesto dei valori correnti dei separatori utilizzati in questa sessione.

La sessione deve essere riavviata affinché l'estensione funzioni. All'inizio della sessione, poco prima della convocazione dell'evento ImpostazioniParametriSessione, verranno collegate tutte le estensioni memorizzate nell'infobase e corrispondenti ai valori correnti dei delimitatori di questa sessione.

Di conseguenza, quando si lavora in modalità di condivisione dei dati, l'estensione verrà applicata solo agli utenti di quel particolare abbonato. E se non viene utilizzata la separazione dei dati, l'estensione funzionerà per tutti gli utenti dell'infobase.

Quando si collega un'estensione, come abbiamo già detto, si controlla che gli oggetti presi in prestito esistano nella configurazione tipica. Gli oggetti sono abbinati per nome.

Inoltre, è possibile un controllo più preciso. Puoi controllare non solo l'esistenza stessa degli oggetti, ma anche lo stato delle loro proprietà individuali. Cioè, se pensi al ristorante e alla bistecca, per te può essere importante non solo la presenza di una bistecca in qualche modo cotta, ma proprio che qui sia cotta cruda, "al sangue".

Tornando all'estensione, per impostazione predefinita non controlla le proprietà degli oggetti presi in prestito. Ma se necessario, puoi rendere controllabili alcune proprietà. Ad esempio, è importante per il tuo algoritmo che non esista solo un riferimento Nomenclatura, ma anche che il suo codice sia di tipo Linea.

Quindi se in una configurazione tipica il fornitore cambia il tipo di codice di questo riferimento in Numero, la tua estensione lo rileverà al momento della connessione e segnalerà un errore.

Un punto interessante è relativo alla ridenominazione degli oggetti di configurazione standard. Ad esempio, sei venuto in un ristorante e invece di Bistecca scritto Bistecca... Cioè, collegandosi alla configurazione, l'estensione non trova il riferimento in essa Nomenclatura perché il venditore l'ha ribattezzato Prodotti.

Ora questa situazione non è un problema per te. E non è necessario "spalare" tutto il codice dell'estensione, in modo che invece di Nomenclatura scrivere Prodotti... Funziona e. Pertanto, devi solo cambiare il nome dell'oggetto preso in prestito in Prodotti e il resto delle modifiche all'estensione verrà effettuato dalla piattaforma stessa. O con il tuo minimo aiuto.

Lavori di ampliamento

Puoi parlare a lungo delle caratteristiche dell'estensione di vari oggetti, delle caratteristiche del lavoro delle estensioni stesse. Ma siamo limitati dallo scopo dell'articolo di recensione, quindi toccheremo solo i punti chiave e più rivelatori.

Il "fascino" principale delle estensioni, ovviamente, non è che puoi aggiungere qualcosa a una configurazione tipica che non c'è. E il fatto è che nell'estensione puoi cambiare ciò che è già nella configurazione standard. Cioè, puoi modificare le proprietà degli oggetti presi in prestito.

Il concetto di base utilizzato quando la configurazione e l'estensione lavorano insieme può essere descritto come segue. Laddove non si sovrappongono, l'estensione completa la configurazione. In quei luoghi in cui si "intersecano" - viene applicata l'estensione.

Questo può essere visto più in dettaglio nell'esempio dei moduli gestiti. Puoi prendere in prestito il modulo dalla configurazione principale e modificarlo nell'estensione senza restrizioni. Per la parte visiva del form e per il suo modulo vengono utilizzate due diverse strategie di fusione.

La parte visiva della forma è fissata in espansione al momento del suo prestito. E nella modalità 1C: Enterprise, per ogni elemento del modulo, vengono analizzate le modifiche relative a questo stato nella configurazione standard e nell'estensione.

Se non sono state apportate modifiche o erano solo nella configurazione tipica, viene applicato il valore della configurazione tipica. In caso contrario, viene utilizzato il valore dell'estensione.

Pertanto, se hai aggiunto un nuovo comando al modulo nell'estensione, lo vedrai insieme al resto dei comandi del modulo. E se hai cambiato l'intestazione di un gruppo esistente, vedrai la tua intestazione anche se il provider cambia l'intestazione di questo gruppo nella configurazione standard.

Un approccio diverso viene utilizzato per i moduli del modulo. Per il modulo preso in prestito, l'estensione crea il proprio modulo con i propri gestori per tutti gli eventi. In 1C: modalità Enterprise, entrambi i moduli del modulo (da una configurazione tipica e da un'estensione) sono combinati in un contesto. Per questo motivo, ogni estensione ha il proprio prefisso, che viene aggiunto a tutti i gestori di eventi nel modulo del modulo. In modo che non ci siano corrispondenze con i gestori della configurazione tipica. I gestori di eventi e comandi vengono quindi chiamati in modo sequenziale e sincrono. Prima il gestore dall'estensione. Quindi da una configurazione tipica. È possibile modificare questa sequenza o vietare completamente l'esecuzione del gestore dalla configurazione tipica.

In generale, per quanto riguarda l'operazione congiunta di configurazione ed espansione in modalità 1C: Enterprise, esistono in un namespace comune. Questo vale non solo per i singoli moduli, ma anche per gli stessi alberi di metadati. Pertanto, in 1C: modalità Enterprise non è possibile determinare se questo oggetto è "nativo" per una configurazione tipica o se proviene da un'estensione.

Per quanto riguarda il resto degli oggetti che puoi utilizzare nell'estensione, tutto sembra molto più semplice per loro.

Nell'estensione è possibile creare i propri sottosistemi. Usando gli oggetti presi in prestito, puoi espandere i sottosistemi esistenti: aggiungere ad essi oggetti e sottosistemi che sono già nella configurazione standard, o quelli che hai creato nell'estensione. Non è possibile eliminare qualcosa da un sottosistema esistente.

È possibile estendere i ruoli solo aggiungendo ad essi oggetti creati nell'estensione. Inoltre, non puoi rimuovere nulla da un ruolo esistente. Lo stesso vale per l'interfaccia di comando.

L'espansione è quasi configurazione

Abbiamo detto all'inizio che un'estensione si presenta come una configurazione normale. Pertanto, in conclusione, vorrei spendere due parole su come le estensioni si integrano con altri meccanismi della piattaforma.

Un'estensione (come una configurazione normale) ha una configurazione di base e una configurazione del database. Il meccanismo per confrontare e unire le configurazioni funziona con le estensioni allo stesso modo delle configurazioni normali.

Puoi scaricare l'estensione in un file (anche se con un'estensione diversa * .cfe) e caricarla dal file. Le estensioni possono essere scaricate/caricate in XML.

I meccanismi di ricerca globale, sostituzione, modifica dei testi dell'interfaccia funzionano anche con le estensioni.

Sono disponibili nuovi parametri della riga di comando per lavorare con le estensioni, nonché nuovi eventi nel registro.

Nel linguaggio integrato, l'oggetto principale per lavorare con le estensioni è Gestore estensioni.

Principali articoli correlati