1s 8.3 come mostrare un messaggio a tutti gli utenti. Eseguire azioni al clic

Nei programmi basati sulla piattaforma 1C:Enterprise, un messaggio può essere mostrato all'utente in diversi modi.

1. Metodo Mostra Avviso.

MostraAvviso(< ОписаниеОповещенияОЗавершении> , < ТекстПредупреждения> , < Таймаут> , < Заголовок> )

Quando si utilizza questo design, viene visualizzata una finestra di avviso al centro dell'interfaccia del programma.

Opzioni:

DescrizioneNotificheCompletate(opzionale)
Tipo: DescrizioneAvvisi. Contiene una descrizione della procedura che verrà chiamata dopo la chiusura della finestra di avviso con i parametri seguenti: AdditionalParameters - il valore che è stato specificato durante la creazione dell'oggetto AlertDescription. Se il parametro non è specificato, al completamento non verrà richiamata alcuna procedura.

Avvisi di testo(necessario)
Tipo: stringa; Stringa formattata. Il testo dell'avviso.

Timeout (opzionale)
Tipo: Numero. Intervallo di tempo in secondi durante il quale il sistema attende la risposta dell'utente. Allo scadere dell'intervallo, la finestra di avviso verrà chiusa. Se il parametro non è specificato, il timeout è illimitato. Se il parametro è negativo, verrà generata un'eccezione. Valore predefinito: 0.

Titolo (facoltativo)
Tipo: stringa. Contiene il titolo della finestra di avviso. Descrizione: Visualizza una finestra di avviso, ma non attende la sua chiusura.

Disponibilità: Thin client, web client, thick client, applicazione mobile (client).

Nota: se un codice deve essere eseguito dopo che l'utente ha chiuso la finestra di avviso, deve essere inserito in una procedura separata del modulo e descritto in un parametro.

2. Metodo di avviso.

Viene visualizzata una finestra di avviso al centro dell'interfaccia del programma. Tuttavia, se la proprietà di configurazione ModalitàUsoModalitàè impostato su Do Not Use , il metodo non funziona.

Disponibilità: Thin client, client Web, client mobile, thick client, applicazione mobile (client).

3. Metodo ShowAlertUser.

ShowUserAlert(< Текст> , < ДействиеПриНажатии> , < Пояснение> , < Картинка> , < СтатусОповещенияПользователя> , < КлючУникальности> )

Quando si utilizza questo metodo, viene visualizzato un messaggio nell'angolo inferiore destro dell'interfaccia.

Disponibilità: Thin Client, Web Client, Thick Client.

4. Metodo di segnalazione.

Segnalare(< ТекстСообщения> , < Статус> )

Disponibilità: Thin client, client Web, client mobile, server, thick client, connessione esterna, applicazione mobile (client), applicazione mobile (server).

5. Oggetto Messaggio all'utente.

Progettato per memorizzare i parametri dei messaggi che devono essere visualizzati dall'utente. Se il messaggio non è stato ancora mostrato all'utente (questo può essere durante l'esecuzione sul lato server, in un lavoro in background, una connessione esterna o servizi Web), è possibile ottenere i messaggi accumulati utilizzando il metodo GetMessagesUser.

Proprietà: ID destinazione(ID destinazione); Chiave dati (DataKey); campo (campo); DataPath (DataPath); Testo.

Metodi: Report (Messaggio); InstallData(Imposta dati).

Il messaggio viene visualizzato nella parte inferiore dell'interfaccia, in una riga.

Messaggio = Nuovo MessaggioAUtente(); Messaggio. Testo = "Nomenclatura insufficiente"; Messaggio. Campo = "Nomenclatura. Quantità"; Messaggio. ImpostaDati(OggettoDati) ; Messaggio. Segnalare();

Durante la lezione abbiamo: creato un database, creato l'elaborazione, creato un modulo.

Ora ti diremo 5 modi di messaggi da 1C "Hello world!"

Non tutti conoscono almeno due metodi 🙂

Come e dove scrivere il testo del programma?

Passa alla scheda della finestra con il modulo "Modulo". Ti assicurerai di avere già del testo lì ("Procedura...").

Se non c'è testo, allora:

  • Nel thick client, hai aggiunto in modo errato il modulo all'elaborazione, ripeti dall'inizio
  • Nel thin client, hai dimenticato di aggiungere un pulsante, ripeti dall'inizio.

All'interno del testo c'è una riga:

// Inserisce il contenuto del gestore

Il tuo compito è cancellare questa riga e inserire invece il testo del programma. Successivamente, salva l'elaborazione e aprila in modalità aziendale.

Quando fai clic su Esegui, le azioni che hai inserito verranno ora eseguite.

E ora passiamo ai metodi stessi!

Messaggio in 1C, metodo 1 - il più semplice

Quindi dovresti invece del testo "// Inserisci il contenuto del gestore". scrivere il testo del programma.

alert("Ciao mondo!");

In realtà, questo è tutto 🙂

Il messaggio in modalità Enterprise nel thick client sarà in basso nella finestra 1C, nel thin client - a destra nella finestra di elaborazione.

Questo è il modo più semplice ed è ampiamente utilizzato dai programmatori.

Messaggio in 1C, metodo 2 - anche semplice

alert("Ciao mondo!");

In realtà, questo è tutto 🙂

Il messaggio in modalità Enterprise in entrambe le opzioni client verrà visualizzato in una finestra pop-up.

Messaggio in 1C, metodo 3 - apparso solo nella versione 1C 8.2

ShowUserAlert("Ciao mondo!","Ciao davvero!");

Questo metodo è apparso solo nella versione 1C 8.2. Questa è una finestra pop-up nell'angolo in basso a destra dello schermo che scompare nel tempo.

Messaggio in 1C, metodo 4 - programmatore

Lancia "Ciao mondo!" Eccezione;

Durante l'esecuzione di qualsiasi programma, potrebbe esserci un errore. A volte questo errore può essere calcolato in anticipo (ad esempio, è necessario calcolare a = b/c e al momento dell'esecuzione del programma si è saputo che c è uguale a 0).

In questo caso, c'è un modo per segnalare l'errore in questo modo.

Messaggio in 1C, metodo 5 - tecnologico, solo per una configurazione tipica

General Purpose.ReportError ("Ciao mondo!");

Un programmatore 1C deve conoscere non solo quei metodi di programmazione che sono nella piattaforma 1C, ma anche quelli che sono nelle configurazioni tipiche.

I principianti, quando cercano di aggiungere una configurazione tipica, iniziano a reinventare la ruota.

Ecco un ottimo esempio. Questa caratteristica è presente in molte configurazioni tipiche (solo per thick client!). Sembrerebbe che il risultato sia uguale all'azione del metodo 1.
Tuttavia, no - in alcune configurazioni (ad es. SCP) i messaggi di errore sono duplicati nel registro. Inoltre, con una personalizzazione aggiuntiva, il messaggio appare completamente diverso.

Quindi, ora puoi sentirti un vero programmatore!

Questo è ciò che riguarda la programmazione 1C. Certo, la vera programmazione è molto più complicata e richiede molte conoscenze, ma ora hai un'idea generale.

In bocca al lupo!

PS Gli screenshot sono forniti nella versione pdf del tutorial per rendere più semplice la tua esperienza.

P.P.S. Vengono forniti 5 video per la lezione con esempi di creazione di una base per la programmazione, creazione di elaborazione, programmazione in un thick and thin client.

Implementato nella versione 8.3.10.2168.

Abbiamo migliorato il meccanismo di notifica dell'utente. Ora è ugualmente conveniente da usare sia nel thin client che nel web client. Abbiamo riprogettato l'aspetto degli avvisi e aggiunto una serie di nuove funzionalità.

Mostra più avvisi

Nella vecchia implementazione, sullo schermo veniva visualizzata una sola notifica alla volta. Il nuovo avviso si è sovrapposto al precedente. Pertanto, se venivano visualizzate più notifiche di seguito, c'era un'alta probabilità che l'utente non avesse il tempo di leggere la notifica precedente, poiché sarebbe stata bloccata da quella successiva.

Ora, nella maggior parte dei casi, possono essere visualizzati fino a tre avvisi contemporaneamente:

Questo è vero per thin client, thick client e client Web in esecuzione nei browser. Internet Explorer e Google Chrome. Browser safari e Mozilla Firefox consentono di visualizzare un numero illimitato di avvisi e il browser Microsoft Edge mostra un ultimo avviso, ma è così Centro azione, dove tutte le notifiche sono duplicate.

Visualizza avvisi quando la finestra dell'applicazione è inattiva

In precedenza, il client Web visualizzava gli avvisi solo nella finestra del browser attiva. Se l'utente è passato a un'altra finestra o a un'altra applicazione, non ha visto l'avviso. Ora, quando si utilizza il client Web, le notifiche vengono visualizzate sullo schermo anche quando la finestra dell'applicazione è ridotta a icona o inattiva.

La prima volta che viene chiamato il metodo ShowUserAlert() nel client web Google Chrome, Mozilla Firefox e safari il browser chiederà all'utente il permesso di utilizzare gli avvisi. L'utente può consentire il proprio output per questa applicazione o vietarlo.

Se l'utente disabilita le notifiche, verrà utilizzato il nuovo tipo di notifiche, ma verranno disegnate all'interno della finestra del browser.

Centro di allerta

Per evitare che le notifiche scompaiano per sempre, abbiamo implementato centro di allerta. E per le notifiche stesse, abbiamo implementato una nuova proprietà - StatoAlertUser. Può assumere due valori: Informazione e Importante.

Avvisi di stato Informazione vengono visualizzati sullo schermo e scompaiono dopo 10 secondi (nel browser Microsoft Edge– dopo 4 secondi). Avvisi di stato Importante si comportano esattamente allo stesso modo, ma vengono memorizzati nel centro di allerta.

Il centro avvisi è disponibile dalla barra degli strumenti. La presenza di nuovi avvisi importanti è segnalata da un punto arancione accanto alla sua icona.

Il Centro avvisi visualizza avvisi importanti a cui l'utente non ha ancora risposto chiudendo o eseguendo l'azione associata all'avviso. Gli avvisi sono elencati nell'ordine in cui appaiono, i più recenti in alto. Pertanto, anche se l'utente lascia il computer, non perderà avvisi importanti.

La notifica può essere rimossa dall'elenco con il pulsante Cancella. Se un'azione è associata alla notifica, dopo aver fatto clic sul testo della notifica, anche questa scomparirà. Squadra Cancella avvisi rimuove tutti gli avvisi dall'elenco. Allo stesso tempo, se le azioni sono state associate alle notifiche, non vengono eseguite.

Eseguire azioni al clic

Nella vecchia implementazione, l'unica azione che poteva essere eseguita quando si faceva clic su un avviso era seguire il collegamento di navigazione. È stato passato al metodo come secondo parametro.

<Текст>, <НавигационнаяСсылка>, …

Ora abbiamo ampliato le funzionalità delle notifiche e nel secondo parametro puoi passare non solo una stringa con un collegamento di navigazione, ma anche una descrizione della notifica.

ShowUserAlert(<Текст>, <ДействиеПриНажатии>, …

La descrizione di un avviso indica la procedura da eseguire quando si fa clic sull'avviso.

Aspetto

Nel thin client nella variante di interfaccia Taxi lo stile delle notifiche sarà il più vicino possibile allo stile delle notifiche del browser Google Chrome usando API di notifica.


Se viene utilizzata l'opzione di interfaccia Versione 8.2, lo stile e il comportamento degli avvisi rimangono gli stessi.

Nel client Web, l'aspetto degli avvisi è determinato dal browser in uso. In generale, gli avvisi avranno lo stesso aspetto del thin client, ma ogni browser ha le sue caratteristiche. Ad esempio, puoi confrontare come verranno mostrati gli stessi avvisi Internet Explorer e Mozilla Firefox.


Inoltre, ci sono altre caratteristiche. Ad esempio, in un browser Internet Explorer sono supportati solo gli avvisi visualizzati all'interno della finestra dell'applicazione. E nel browser safari parametro Foto non è supportato e gli avvisi vengono visualizzati nella parte superiore dello schermo.

Lo sviluppo è progettato per notificare gli utenti sia in modo selettivo che a tutti, puoi anche semplicemente scrivere messaggi o corrispondere tra utenti.

Lo sviluppo è un registro di informazioni e una modifica in un modulo applicativo gestito o regolare.
Per attivare un avviso, è necessario aggiungere una voce al registro delle informazioni, gli utenti riceveranno le notifiche nel periodo specificato tra l'inizio e la fine dell'ora di notifica.

APP GESTITA

APP REGOLARE

Finestra di avviso visualizzata nel programma utente blocca l'intera interfaccia e gli utenti che attualmente lavorano nel programma non perderanno la notifica e la leggeranno di conseguenza.

APP GESTITA

APP REGOLARE

Elenco dei registri

Nell'elenco delle notifiche è possibile visualizzare chi ha ricevuto la notifica e chi l'ha letta.

APP GESTITA

APP REGOLARE

Per implementare lo sviluppo nella tua configurazione, devi:

  1. Imposta la possibilità di modificare la configurazione.
  2. Confronta con la configurazione fornita in questa pubblicazione. Ciò aggiungerà un registro delle informazioni sugli avvisi utente e una voce in un modulo dell'applicazione normale o gestito, a seconda della modalità di avvio principale dell'applicazione.

    La voce del modulo di un'applicazione normale o gestita è diversa:

    APP GESTITA

SystemStartup Procedure() //Modifica della configurazione tipica per la notifica agli utenti del programma (invio di un messaggio a qualsiasi utente) //Adatto a tutte le configurazioni ConnectWaitingHandler("modNotificationProcessingHandler", 60); EndProcedure // AtSystemStart() //Modifica della configurazione tipica per la notifica agli utenti del programma (invio di un messaggio a qualsiasi utente) //Adatto a tutte le configurazioni //La chiamata al wait handler continua fino alla chiusura del form //o fino al metodo del form si chiama Mod procedureAlertProcessHandler( ) Export MessageToUser = GetForm("InformationRegister.UserAlerts.Form.SendFormControl").GetNotificationProcessingMessages(); Se non MessageToUser = Undefined allora Form = GetForm("InformationRegister.UserAlerts.Form.AlertControl"); Se non Form.Open() quindi FillPropertyValues(Form,MessageToUser,"ViewOnly"); Form.Open(); Altrimenti Form.Activate(); Finisci se; Finisci se; Fine della procedura APPLICAZIONE STANDARD SystemStartProcedure() //Modifica la configurazione predefinita per avvisare gli utenti del programma (inviare un messaggio a qualsiasi utente) //Adatto a tutte le configurazioni ConnectWaitingHandler("modAlertProcessingHandler", 60); EndProcedure // AtSystemStart() //Modifica della configurazione tipica per la notifica agli utenti del programma (invio di un messaggio a qualsiasi utente) //Adatto a tutte le configurazioni //La chiamata al wait handler continua fino alla chiusura del form //o fino al metodo del form si chiama Mod procedureAlertProcessHandler( ) Export MessageToUser = RegistersInformation.AlertUser.GetMessageProcessingNotification(); Se non MessageToUser = Undefined allora Form = GetForm("InformationRegister.UserAlerts.Form.AlertUsual"); Se non Form.Open() quindi FillPropertyValues(Form,MessageToUser,"ViewOnly"); Form.OpenModal(); Altrimenti Form.Activate(); Finisci se; Finisci se; EndProcedura

L'implementazione dello sviluppo è gratuita, effettuata entro 10 minuti.

Assistenza tecnica gratuita per 30 giorni.
A

Lo sviluppo è destinato alla piattaforma 8.3, varie configurazioni standard e non standard, in modalità thin, thick client e web client.

L'auto-miglioramento è possibile, il codice è aperto per la modifica.

Motivi per acquistare

Un'opzione molto conveniente per la notifica, la notifica agli utenti 1C di lavori tecnici, miglioramenti alla configurazione, aggiornamenti, la possibilità di corrispondere tra utenti 1C all'interno del 1° programma.

Vantaggi

1) Consegna al 100% degli avvisi a tutti gli utenti, a differenza degli analoghi.
2) Possibilità di inviare immagini.
3) Visualizza l'attività dell'utente nell'elenco dei messaggi (a chi è stato consegnato, chi lo ha letto).
4) Possibilità di scrivere una risposta al mittente della notifica.
5) Non influisce sugli altri oggetti, durante l'aggiornamento delle configurazioni, con la possibilità di modificare installati.

Soddisfatti o rimborsati

Infostart LLC ti garantisce un rimborso del 100% se il programma non corrisponde alla funzionalità dichiarata dalla descrizione. Il denaro può essere restituito per intero se lo dichiari entro 14 giorni dalla data di ricezione del denaro sul nostro conto.

Il programma è così collaudato nel lavoro che possiamo dare una tale garanzia con piena fiducia. Vogliamo che tutti i nostri clienti siano soddisfatti del loro acquisto.

L'articolo continua la serie di articoli "Primi passi in sviluppo su 1C".

In esso, considereremo i modi per informare l'utente che sono presenti nella piattaforma 1C:Enterprise 8 e focalizzeremo anche la tua attenzione su alcune caratteristiche del funzionamento di questi meccanismi, queste caratteristiche sono associate alla modalità di utilizzo della modalità.

Applicabilità

L'articolo discute la funzionalità:

  • Interfaccia in versione "Versione 8.2" per la configurazione sviluppata sulla piattaforma "1C:Enterprise" 8.2.19.130
  • Interfaccia taxi per una configurazione sviluppata sulla piattaforma 1C:Enterprise da 8.3.4.496 a 8.3.9+
  • Interfaccia Taxi per una configurazione sviluppata su piattaforma 1C:Enterprise 8.3.10-8.3.11

Come visualizzare un messaggio all'utente in 1C

La visualizzazione dei messaggi in modalità utente risolve una serie di problemi:

  • riflesso dell'andamento del processo in corso (mostrando la fase del processo; mostrando i valori calcolati ottenuti durante il funzionamento dell'algoritmo);
  • rilasciare errori all'utente per la loro eventuale correzione;
  • emissione di raccomandazioni;

Tipi di messaggi:

  • terminatori che interrompono l'esecuzione del programma e ne impediscono il proseguimento fino a quando l'utente non legge questo messaggio ed esegue determinate azioni. Ad esempio, l'utente riceverà una domanda sullo schermo, alla quale dovrà rispondere Sì o No. Finché l'utente non risponde, il programma non esegue ulteriori azioni;
  • messaggi introduttivi, che vengono semplicemente visualizzati all'utente e consentono loro di lavorare ulteriormente (cioè utilizzati in modalità di avviso).

I messaggi di terminazione dovrebbero essere messaggi di errore e messaggi introduttivi: consigli, messaggi sulla fase corrente del processo e visualizzazione dei valori calcolati (stampa di debug).

I messaggi introduttivi hanno lo scopo di fornire all'utente alcune informazioni.

È necessario che l'utente lo legga ed, eventualmente, compia alcune azioni descritte in questo messaggio.

È molto importante che l'utente legga effettivamente questi messaggi, quindi dovrebbero contenere solo informazioni importanti.

I messaggi di test e debug non dovrebbero essere inviati all'utente, perché prima o poi comincerà a ignorare assolutamente tutti i messaggi.

Nel concetto di interfaccia gestita, l'approccio all'emissione di un messaggio è leggermente cambiato. Ora è legato alla forma in cui ha avuto origine. Non può più essere chiuso in modo che il testo sia completamente invisibile.

Non è possibile sbloccare una finestra di messaggio da un modulo.

Sintassi della funzione:

Segnalare (<Текст сообщения>, <Статус>)

Quelli. il primo parametro è il testo stesso.

Il secondo parametro (stato del messaggio) è facoltativo. È possibile specificare i valori per lo stato: Normale, Importante, Molto importante eccetera.

Questo valore determina quale icona verrà posizionata accanto al messaggio. Tuttavia, questo funziona solo nell'interfaccia normale.

Nel concetto di interfaccia gestita, l'icona è sempre un punto esclamativo e non può essere sovrascritta.

Il fatto è che se il messaggio viene generato al momento della scrittura di un elemento del dizionario, potrebbe verificarsi la seguente situazione.

L'utente fa clic su un pulsante Scrivi e chiudi, in questo caso il messaggio viene visualizzato nella finestra corrispondente (a destra del form).

Ma il modulo viene immediatamente chiuso e l'utente non vedrà che alcune informazioni sono state visualizzate per lui.

Pertanto, nel concetto di applicazione gestita, si consiglia di visualizzare messaggi informativi utilizzando le cosiddette notifiche. Un esempio di uso scorretto di una funzione Da segnalare mostrato in figura.

Tuttavia, la funzione Da segnalare può essere utilizzato per visualizzare informazioni su alcuni errori, ad esempio al momento della pubblicazione del documento.

In questo caso, al sistema può essere detto che il modulo non deve essere chiuso e mostra all'utente quali errori si verificano durante la pubblicazione del documento.

Funzione Da segnalare completamente supportato nella piattaforma 8.3. Può essere utilizzato e funzionerà (sia nella versione file che nella versione client-server).

Ma va anche notato che la funzione Da segnalare c'è un ulteriore sviluppo: questa è una classe di messaggi per l'utente, che consente, oltre a visualizzare un messaggio, di associarlo contestualmente a qualsiasi elemento del modulo.

Ad esempio, un messaggio di errore può essere allegato a un elemento del modulo, che è molto visibile all'utente. Torneremo su questo problema un po' più tardi. Funzione Da segnalare c'è una caratteristica interessante.

Pertanto, il codice del programma nella piattaforma 8.3 può essere eseguito sia sul lato client che sul lato server.

In questo caso, il codice del programma client è responsabile dell'interazione con l'utente, ad es. i moduli vengono aperti sul lato client, vengono visualizzati i report.

Anche i vari documenti di dialogo vengono visualizzati solo sul client. Sul server, non possono essere eseguiti perché il server non ha la capacità di interagire con gli utenti.

Ma la funzione Da segnalare può essere eseguito sia lato Client che lato Server. Tuttavia, utilizzando il metodo Da segnalare sul Server non significa affatto che il messaggio verrà visualizzato sul Server, semplicemente non c'è nessun posto dove visualizzarli.

Ciò significa che se visualizziamo un messaggio nella procedura del server utilizzando questo metodo, questi verranno accumulati in qualche buffer e verranno visualizzati sullo schermo solo quando la procedura del server termina e ritorna al Cliente.

A questo punto, il sistema richiederà i dati dal buffer e li visualizzerà sullo schermo.

La stessa caratteristica vale per la classe Messaggio all'utente. La figura mostra un esempio di utilizzo del metodo Da segnalare lato Server.

Come risultato dell'utilizzo del metodo Da segnalare lato Server, i messaggi sono stati visualizzati sullo schermo lato Client.

Il meccanismo di notifica è necessario per informare l'utente che "qualcosa" è successo nel sistema e questo "qualcosa" richiede l'attenzione dell'utente. Gli avvisi sono generati da due scenari:

  1. Dalla piattaforma stessa quando si scrive o si modifica un oggetto in modo interattivo
  2. Sviluppatore quando si chiama il codice del metodo .

La notifica stessa è una piccola finestra che appare, di regola, nell'angolo in basso a destra e riporta l'azione intrapresa. In pochi secondi si spegne gradualmente e scompare. Allo stesso tempo, se sposti il ​​cursore del mouse sulla notifica, questa non si spegne e puoi leggerla attentamente.

Inoltre, è possibile accedere alle notifiche nell'area corrispondente del pannello informativo (pulsante "Cronologia" in basso a sinistra del modulo di domanda nell'opzione dell'interfaccia "Versione 8.2").

Per creare i tuoi avvisi, devi utilizzare il metodo del contesto globale ShowUserAlert(). La sua sintassi prima della revisione 8.3.10 è la seguente:

Mostra avviso utente (<Текст>, <НавигационнаяССылка>, <Пояснение>, <Картинка>)

Il primo parametro è il testo che verrà visualizzato nell'avviso.

Inoltre, come secondo parametro, puoi passare dei link di navigazione a qualsiasi elemento dell'infobase (l'elemento che corrisponde al testo del nostro messaggio). Quando un utente fa clic su un avviso, verrà indirizzato a quel collegamento.

Con l'aiuto del terzo parametro, puoi passare una spiegazione per il messaggio, ad es. qualche descrizione estesa.

È inoltre possibile assegnare un'immagine che visualizzi lo stato della notifica.

Tieni presente che tutti questi parametri sono facoltativi. Di seguito è riportato un esempio di utilizzo di questo metodo (nel configuratore e in modalità utente nell'opzione interfaccia "Versione 8.2").

Nella versione 8.3.10.216 della piattaforma per l'interfaccia nella versione “Taxi”, il meccanismo di notifica è stato notevolmente migliorato al fine di migliorare l'usabilità sia dei thin che dei web client. Per questo motivo sono cambiati anche i parametri passati al metodo. ShowUserAlert(). Ora la sintassi è simile a questa:

ShowUserAlert(<Текст>, <ДействиеПриНажатии>, <Пояснение>, <Картинка>, <СтатусОповещенияПользователя>, <КлючУникальности>)

Si può notare che il secondo parametro, precedentemente chiamato Collegamento di navigazione, ho un nuovo nome Azione su stampa. Ciò è dovuto al fatto che ora è diventato possibile passargli non solo una stringa con un collegamento di navigazione, ma anche una descrizione della notifica. Questo è illustrato nello screenshot qui sotto:

Come puoi vedere dall'esempio, ora abbiamo la possibilità di gestire programmaticamente i clic sulla finestra di notifica, secondo la logica necessaria.

Parametro successivo StatoAlertUser apparso per la prima volta. Indica lo stato dell'avviso (Informazioni o Importante).

Nel caso dell'opzione Importante, se l'utente non ha risposto al messaggio, dopo che è stato nascosto dallo schermo, può essere letto tramite il Centro notifiche (ulteriori informazioni di seguito). Nel caso dell'opzione Informazioni, la notifica viene eliminata senza essere archiviata in questo centro. Riscriviamo il codice dal nostro esempio come mostrato di seguito:

Dopo aver eseguito il comando, otteniamo approssimativamente la seguente vista della finestra dell'applicazione:

Nella barra degli strumenti è apparso un pulsante con l'icona di una campana che richiama il suddetto Centro avvisi. Accumula nuovi avvisi importanti a cui l'utente non ha ancora risposto.

Se sono presenti avvisi nel Centro, accanto ad esso viene visualizzato un piccolo punto arancione per attirare l'attenzione dell'utente. L'utente può aprire il Centro avvisi, leggere il testo e, se necessario, eseguire alcune azioni.

La notifica viene rimossa dal Centro cliccando sul pulsante cancella, tuttavia, se alla notifica è associata qualche azione, non appena l'utente clicca sul testo del messaggio, anche questa scomparirà.

E infine, l'ultimo parametro aggiunto è stato ChiaveUnicità. Puoi usarlo per trovare l'avviso visualizzato sullo schermo e cambiarlo. Se non è presente alcuna notifica con questo parametro, verrà mostrata una nuova notifica.

Come puoi vedere, le possibilità offerte dal metodo corrispondente sono diventate ancora maggiori! Ma questi non sono tutti cambiamenti nel meccanismo di notifica.

Come probabilmente avrai già notato, il loro aspetto è cambiato. Gli avvisi ora hanno un aspetto più moderno ed ergonomico, ma non possono essere spostati sullo schermo o ridimensionati. Si noti che nel nostro esempio, il testo della notifica semplicemente non si adattava completamente alla finestra stessa e l'utente può leggerlo completamente solo aprendo il Centro notifiche. Pertanto, non è necessario scrivere una grande quantità di testo nel testo della notifica.

Inoltre, le nuove funzionalità includono la visualizzazione simultanea di un massimo di tre avvisi sullo schermo.

Questo conclude la nostra conoscenza della generazione programmatica di avvisi. Ricorda però che le notifiche vengono generate non solo dallo sviluppatore a livello di codice, ma anche dalla piattaforma stessa al momento della scrittura interattiva o della modifica di un oggetto. E spesso questo fatto provoca incomprensioni, in primis, tra gli utenti inesperti: perché abbiamo bisogno di questi avvisi di servizio, che, tra l'altro, non possono essere disattivati?

Immaginiamo una situazione così semplice: l'utente ha impostato un filtro in alcune liste per comodità. Diciamo che lo ha fatto sotto forma di un elenco di riferimento per la nomenclatura. Poi, dopo un po' di tempo, ho deciso di introdurre un nuovo elemento chiamato “Chair”, che non corrisponde al filtro precedentemente impostato. Lo inserisce, lo scrive e...? E non lo vede nell'elenco. Cosa farà l'utente medio? Certo, lo entrerà una seconda volta, ma non lo vedrà più. Può seguire una terza, quarta, quinta volta. Quando si stanca di entrare nella stessa cosa, finalmente ti chiederà: dove scompare tutto?

Ecco perché la piattaforma visualizza questi avvisi di servizio, informando l'utente che la sua azione è stata completata. Nel nostro esempio, al momento della registrazione interattiva, l'utente vedrà la seguente notifica:

Messaggi di terminazione

I messaggi di terminazione sono quei messaggi che non ti permetteranno di lavorare fino a quando l'utente non esegue determinate azioni, ad es. finché non elabora il messaggio.

Parleremo della possibilità di utilizzare i messaggi di terminazione nella Piattaforma 8.3 un po' più tardi (stanno cercando di non usarli ultimamente, quindi l'esempio considerato riguarda maggiormente la Piattaforma 8.2).

Esistono due metodi per inviare messaggi di terminazione Un avvertimento e Domanda. Un avvertimento si differenzia da domanda perché ha un solo pulsante OK.

Una domanda può avere diversi insiemi di opzioni di risposta ( Non proprio, SìNoAnnulla, OK, OK Annulla, Riprova Annulla, InterrompiRiprovaSalta), che vengono impostati tramite il parametro.

Visualizziamo una sorta di avviso utilizzando una stringa (ad esempio, in un modulo applicativo gestito):

Alert("La base verrà aperta ora");

Per aprire un modulo applicativo gestito, selezionare l'oggetto nell'albero di configurazione Configurazione, richiamare il menu contestuale e selezionare la voce Aprire il modulo dell'applicazione gestita.

In questo caso, all'avvio dell'applicazione, verrà visualizzata una finestra modale. La finestra modale si sovrappone a tutte le finestre esistenti nell'applicazione. Finché non elaboriamo questa finestra, non sono possibili ulteriori azioni.

La funzione funziona allo stesso modo. Domanda.

Sintassi:
Domanda(<ТекстВопроса>,<Кнопки>,<Таймаут>,<КнопкаПоУмолчанию>,<Заголовок>,
<КнопкаТаймаута>);

Sono richiesti solo i primi due parametri. Per il secondo parametro, il tipo di dati è composto ( Modalità dialogoDomanda o Elenco di valori). Il terzo parametro ( <Таймаут> ) caratterizza l'intervallo di tempo in secondi durante il quale il sistema attende la risposta dell'utente.

Allo scadere dell'intervallo, la finestra delle domande verrà chiusa. Parametro simile( <Таймаут> ) ha anche la funzione Un avvertimento.

Come esempio di utilizzo della funzione DomandaÈ possibile utilizzare il codice seguente, scritto in un modulo dell'applicazione gestita:

Si prega di notare che questi metodi Un avvertimento e Domanda) non sono disponibili sul Server. E questo è logico, perché i metodi di interfaccia non possono essere eseguiti sul Server, dove non c'è nessun utente.

Funzionalità dell'utilizzo delle finestre modali nella piattaforma 8.3

Nella piattaforma 8.3 ci sono modalità di funzionamento con e senza l'uso della modalità. L'impostazione predefinita è Non utilizzare la modalità modalità.

In questo caso, i messaggi di terminazione non possono essere utilizzati. Se è necessario utilizzare messaggi di terminazione (funzioni Un avvertimento e Domanda) dovresti cambiare il valore della proprietà di configurazione sul Utilizzo.

La finestra modale viene visualizzata in alto e i blocchi funzionano con altre finestre fino al completamento della finestra modale. Inoltre, l'esecuzione del codice del programma viene interrotta nel punto in cui viene chiamata questa finestra. L'esecuzione del codice continuerà solo dopo la chiusura della finestra modale.

In primo luogo, sorgono i problemi di utilizzo delle finestre modali per un'applicazione mobile. In secondo luogo, nel browser, la modalità finestra viene implementata utilizzando finestre pop-up separate.

Le finestre pop-up sono spesso disabilitate nelle impostazioni predefinite del browser. L'utente deve essere obbligato a impostare i permessi su queste finestre.

I browser per tablet e telefoni nella maggior parte dei casi non supportano affatto i popup.

Per sostituire le funzioni Domanda e Un avvertimento sono stati sviluppati nuovi metodi: MostraDomanda, Mostra Avviso.

Questi metodi consentono di chiamare la finestra, ma non di interrompere l'esecuzione del codice del programma. Tecnicamente, questo viene implementato formando una pseudo-finestra all'interno della finestra padre. La pseudo-finestra non si sovrappone alla finestra padre. Dopo aver aperto tale finestra, il codice continua ad essere eseguito.

La ricezione e l'elaborazione dei valori inseriti dall'utente viene eseguita in una procedura separata, che viene chiamata alla chiusura della finestra di dialogo.

Sintassi della funzione Mostra Avviso:

MostraAvviso(<ОписаниеОповещенияОЗавершении>, <ТекстПредупреждения>, <Таймаут>, <Заголовок>)

Parametro <ОписаниеОповещенияОЗавершении> (opzionale)

Tipo di dati: DescrizioneAvvisi.

Contiene una descrizione della procedura che verrà chiamata dopo la chiusura della finestra di avviso.

Sintassi della funzione MostraDomanda:

MostraDomanda(<ОписаниеОповещенияОЗавершении>, <ТекстВопроса>, <Кнопки>, <Таймаут>, <КнопкаПоУмолчанию>, <Заголовок>, <КнопкаТаймаута>)

I primi tre parametri sono obbligatori.

Di seguito è riportato un esempio di utilizzo della funzione.

Classe MessageToUser

La comodità principale della classe di messaggi Messaggio all'utenteè che questo è un messaggio contestuale (a differenza dei metodi Un avvertimento e Domanda).

I messaggi possono essere legati a un elemento dello schermo specifico. Questo oggetto è disponibile anche sul Server.

Va notato che, in primo luogo, questo oggetto deve essere creato. Per esempio: Messaggio = Nuovo messaggio all'utente;

Pertanto, creiamo un'istanza di questo oggetto.

In secondo luogo, è necessario scrivere il testo del messaggio in una proprietà separata.

In terzo luogo, nella proprietà CampoÈ possibile specificare a quale elemento del modulo deve essere allegato il messaggio specificato.

Attenzione! Per associare al campo modulo desiderato, prestare attenzione all'inizializzazione delle proprietà PathToData e DataKey. Per un documento, quando si inserisce codice in un modulo oggetto, è possibile scrivere:

Message.DataPath = “Oggetto”;
Message.DataKey = ThisObject.Reference;

Per aprire il modulo del documento, nella finestra di modifica dell'oggetto (documento), nella scheda Altro fare clic sul pulsante Modulo oggetto.

Per l'esperimento, inseriamo il codice nel modulo oggetto di qualsiasi documento.

Di seguito è riportato il risultato ottenuto in modalità utente per la Piattaforma 8.3.

Va notato che i messaggi visualizzati utilizzando il nuovo oggetto di sistema Messaggio all'utente in generale, non stanno terminando. Quelli. il sistema consentirà all'utente di continuare ulteriori azioni senza rispondere ai messaggi visualizzati.

Ma, in primo luogo, questi messaggi sono abbastanza evidenti. In secondo luogo, i messaggi vengono solitamente visualizzati all'utente al momento della scrittura degli elementi delle directory o della pubblicazione dei documenti, ovvero quando vengono eseguiti alcuni controlli. E se sono stati trovati errori, l'utente vedrà questi stessi messaggi.

Di conseguenza, al momento del rilevamento degli errori, la transazione viene annullata, ad es. è vietato registrare un elemento della directory, oppure è vietato inviare un documento.

Si ha così una sorta di emulazione del messaggio di terminazione. Poiché l'azione viene annullata finché l'utente non risponde al messaggio di input, non sarà possibile completare l'azione, ad esempio scorrere un documento.

Ma, d'altra parte, è possibile chiudere il documento senza trattenerlo, senza reagire in alcun modo al messaggio. Pertanto, questi messaggi all'utente non vengono terminati.

Notifica dello stato del processo

Esiste una funzione speciale con la quale è possibile visualizzare l'avanzamento approssimativo di un processo.

Sintassi: Stato(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
Opzioni:<ТекстСообщения>e<Пояснение>– facoltativo, digitare – Linea.
Il testo viene visualizzato su una barra di stato speciale.
<Прогресс>anche il parametro è facoltativo, ma descrittivo.
Tipo: Numero. Valore della barra di avanzamento (da 1 a 100).
<Картинка>anche un parametro opzionale.
Durante l'elaborazione di qualsiasi evento, è possibile utilizzare chiamate di funzione periodiche del tipo:

In questo caso, le iscrizioni potrebbero cambiare e i valori del parametro Progress potrebbero cambiare.

Una funzione può essere chiamata sia da una procedura (funzione) che da più. In questo modo è possibile monitorare lo stato di esecuzione del processo.

Se vuoi saperne di più sul meccanismo di notifica, prenditi subito una pausa e leggi il nostro nuovo articolo Mostra i progressi delle operazioni di lunga durata in 8.3.10. Non spiega più a livello principiante tutte le sottigliezze e le insidie ​​del funzionamento di questo meccanismo.

Stiamo completando la nostra conoscenza delle modalità di informazione dell'utente. Ci auguriamo che tu abbia una comprensione in quali situazioni dovrebbe essere utilizzato l'uno o l'altro metodo.

Vorrei focalizzare ancora una volta la vostra attenzione sul fatto che se la vostra configurazione (versione 8.3.3+) prevede di lavorare utilizzando un client web, allora:

  • a livello di configurazione deve essere impostata l'impostazione della modalità modalità "Non utilizzare".
  • il codice deve utilizzare i metodi del modello di interazione utente asincrono. Tali metodi iniziano con le parole Spettacolo o Iniziare.

Maggiori dettagli sul rifiuto di utilizzare le finestre modali nella piattaforma 1C: Enterprise 8.3 sono disponibili nell'articolo finale del ciclo. E andiamo avanti e, infine, procediamo allo studio dell'attesissima interfaccia Taxi, già citata più di una volta nei nostri materiali.