Notifier les utilisateurs 1s 8.3. Notification de l'état du processus

L'article poursuit la série d'articles « Premiers pas de développement sur 1C ».

Nous y examinerons les méthodes d'information de l'utilisateur présentes dans la plateforme 1C:Enterprise 8, et concentrerons également votre attention sur certaines caractéristiques du fonctionnement de ces mécanismes ; ces caractéristiques sont liées au mode d'utilisation de la modalité. .

Applicabilité

L'article traite de la fonctionnalité :

  • Interface en version « Version 8.2 » pour la configuration développée sur la plateforme 1C:Enterprise 8.2.19.130
  • Interface de configuration de taxi développée sur la plateforme 1C:Enterprise 8.3.4.496 à 8.3.9+
  • Interface taxi pour une configuration développée sur la plateforme 1C:Enterprise 8.3.10-8.3.11

Comment afficher un message à l'utilisateur dans 1C

L'affichage des messages en mode utilisateur résout un certain nombre de problèmes :

  • reflet de l'avancement du processus en cours (montrant l'étape d'exécution du processus ; montrant les valeurs calculées obtenues lors du fonctionnement de l'algorithme) ;
  • afficher les erreurs à l'utilisateur pour une éventuelle correction ;
  • émettre des recommandations ;

Types de messages :

  • Terminateurs, qui arrêtent l'exécution du programme et ne lui permettent pas de continuer jusqu'à ce que l'utilisateur lise ce message et effectue certaines actions. Par exemple, l'utilisateur se verra présenter une question à l'écran à laquelle il devra répondre par Oui ou par Non. Jusqu'à ce que l'utilisateur réponde, le programme n'effectue aucune autre action ;
  • des messages d'introduction qui sont simplement affichés à l'utilisateur et permettent un travail ultérieur (c'est-à-dire utilisés en mode alerte).

Les messages de fin doivent être des messages d'erreur et des messages d'introduction : recommandations, messages sur l'étape en cours du processus et affichage des valeurs calculées (impression de débogage).

Les messages d'introduction sont destinés à fournir certaines informations à l'utilisateur.

Il est nécessaire que l'utilisateur s'en familiarise et, éventuellement, effectue certaines actions décrites dans ce message.

Il est très important que l’utilisateur lise réellement ces messages, ils ne doivent donc contenir que des informations importantes.

Les messages de test et de débogage ne doivent pas être envoyés à l'utilisateur, car tôt ou tard, il commencera à ignorer absolument tous les messages.

Dans le concept d'interface gérée, l'approche d'émission d'un message a quelque peu changé. Il est désormais lié à la forme sous laquelle il est né. Il ne peut plus être fermé afin que le texte soit totalement invisible.

Vous ne pouvez pas détacher une boîte de message d'un formulaire.

Syntaxe de la fonction :

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

Ceux. le premier paramètre est le texte lui-même.

Le deuxième paramètre (état du message) est facultatif. Vous pouvez spécifier des valeurs pour le statut : Normale, Important, Très important etc.

Cette valeur détermine quelle icône sera située à côté du message. Cependant, cela ne fonctionne que dans l'interface normale.

Dans le concept d'interface gérée, l'icône est toujours sous la forme point d'exclamation, il ne peut pas être redéfini.

Le fait est que si un message est généré au moment de l'écriture d'un élément de répertoire, la situation suivante peut se produire.

L'utilisateur clique sur un bouton Sauver et fermer, dans ce cas le message s'affiche dans la fenêtre correspondante (à droite du formulaire).

Mais le formulaire se ferme instantanément et l'utilisateur ne verra aucune information affichée pour lui.

Par conséquent, dans le concept d'application gérée, il est recommandé d'afficher des messages d'introduction à l'aide de ce que l'on appelle des alertes. Un exemple d'utilisation incorrecte d'une fonction Signaler présenté dans la figure.

Cependant, la fonction Signaler peut être utilisé pour afficher des informations sur certaines erreurs, par exemple au moment de la comptabilisation du document.

Dans ce cas, le système peut être informé qu'il n'est pas nécessaire de fermer le formulaire et indiquer à l'utilisateur les erreurs qui se produisent lors de la publication du document.

Fonction Signaler entièrement pris en charge dans la plate-forme 8.3. Il peut être utilisé et cela fonctionnera (aussi bien dans la version fichier que dans la version client-serveur).

Mais il faut aussi noter que la fonction Signaler Il y a la poursuite du développement– il s'agit d'une classe de message pour l'utilisateur, qui permet, en plus d'afficher un message, de le lier contextuellement à n'importe quel élément du formulaire.

Par exemple, un message d'erreur peut être lié à un élément de formulaire, ce qui est très clair pour l'utilisateur. Nous reviendrons sur cette question un peu plus tard. Fonction Signaler il y a une fonctionnalité intéressante.

Ainsi, le code du programme dans la plateforme 8.3 peut être exécuté à la fois côté client et côté serveur.

Dans ce cas, le code du programme client est responsable de l'interaction avec l'utilisateur, c'est-à-dire Côté client, les formulaires sont ouverts et les rapports sont affichés.

Divers documents de dialogue sont également affichés uniquement sur le client. Ils ne peuvent pas être exécutés sur le serveur car celui-ci n'a pas la capacité d'interagir avec les utilisateurs.

Mais la fonction Signaler peut être exécuté à la fois côté client et côté serveur. Dans ce cas, l'utilisation de la méthode Signaler sur le serveur ne signifie pas du tout que les messages seront affichés sur le serveur, il n'y a tout simplement nulle part où les afficher.

Cela signifie que si nous affichons un message dans une procédure serveur en utilisant cette méthode, ils s'accumuleront dans un tampon et ne seront affichés à l'écran que lorsque procédure serveur prendra fin et sera restitué au Client.

À ce stade, le système demandera des données au tampon et les affichera à l’écran.

La même fonctionnalité s'applique à la classe Message à l'utilisateur. La figure montre un exemple d'utilisation de la méthode Signaler du côté du serveur.

Grâce à l'utilisation de la méthode Signaler côté serveur, des messages étaient affichés à l'écran côté client.

Un mécanisme d’alerte est nécessaire pour informer l’utilisateur que « quelque chose » s’est produit dans le système et que « quelque chose » requiert son attention. Les alertes sont générées par deux scénarios :

  1. Par la plateforme elle-même lors de l'enregistrement ou de la modification interactive d'un objet
  2. Par le développeur lors de l'appel d'une méthode dans le code .

La notification elle-même est une petite fenêtre qui apparaît généralement dans le coin inférieur droit et informe de l'action terminée. En quelques secondes, il s'estompe progressivement et disparaît. Dans le même temps, si vous passez le curseur de votre souris sur la notification, elle ne disparaît pas et vous pouvez la lire attentivement.

De plus, les alertes sont accessibles dans la zone correspondante du panneau d'information (le bouton « Historique » en bas à gauche du formulaire de candidature dans l'option d'interface « Version 8.2 »).

Pour créer vos propres alertes, vous devez utiliser la méthode du contexte global Afficher l'alerte utilisateur(). Sa syntaxe avant la version 8.3.10 est présentée ci-dessous :

Afficher l'alerte utilisateur (<Текст>, <НавигационнаяССылка>, <Пояснение>, <Картинка>)

Le premier paramètre contient le texte qui sera affiché dans la notification.

Ensuite, comme deuxième paramètre, vous pouvez transmettre un certain lien de navigation vers un élément base d'informations(l'élément qui correspond au texte de notre message). Lorsqu'un utilisateur clique sur une alerte, le lien sera suivi.

En utilisant le troisième paramètre, vous pouvez transmettre une explication du message, c'est-à-dire une description détaillée.

Vous pouvez également attribuer une image qui affiche l'état de la notification.

Il convient de noter que tous ces paramètres sont facultatifs. Ci-dessous un exemple d'utilisation cette méthode(dans le configurateur et en mode utilisateur dans l'option d'interface « Version 8.2 »).

Dans la version de la plateforme 8.3.10.216 pour l'interface « Taxi », le mécanisme de notification a été considérablement amélioré afin d'améliorer la convivialité des clients légers et web. Pour cette raison, les paramètres passés à la méthode ont également changé Afficher l'alerte utilisateur(). Maintenant, la syntaxe ressemble à ceci :

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

On constate que le deuxième paramètre, précédemment appelé Lien de navigation, j'ai un nouveau nom ActionLorsqueClic. Cela est dû au fait qu'il est désormais possible d'envoyer non seulement une chaîne avec un lien de navigation, mais également une description de l'alerte. Ceci est illustré dans la capture d'écran ci-dessous :

Comme le montre l'exemple, nous avons désormais la possibilité de traiter par programme un clic sur une fenêtre de notification, selon la logique nécessaire.

Paramètre suivant Statut d'alerte utilisateur est apparu pour la première fois. Il indique l'état de l'alerte (Information ou Important).

Dans le cas de l'option Important, si l'utilisateur n'a pas répondu au message, une fois celui-ci masqué de l'écran, il peut être lu via le centre de notifications (plus d'informations ci-dessous). Dans le cas de l'option Informations, la notification est supprimée sans être stockée dans ce centre. Réécrivons le code de notre exemple comme ci-dessous :

Après avoir exécuté la commande, nous obtenons approximativement cette vue de la fenêtre de l'application :

Un bouton avec une icône en forme de cloche est apparu dans la barre d'outils, qui appelle le centre de notifications mentionné ci-dessus. Il accumule les nouvelles alertes importantes auxquelles l'utilisateur n'a pas encore répondu.

S'il y a des alertes dans le Centre, un petit point orange apparaît à côté pour attirer l'attention de l'utilisateur. L'utilisateur peut ouvrir le centre de notifications, lire le texte et, si nécessaire, effectuer certaines actions.

Depuis le Centre, l'alerte est effacée en cliquant sur le bouton Effacer, mais s'il y a une action associée à l'alerte, alors dès que l'utilisateur clique sur le texte du message, celle-ci disparaîtra également.

Et enfin, le dernier paramètre ajouté était Clé de l'unicité. Vous pouvez l'utiliser pour retrouver l'alerte affichée à l'écran et la modifier. S'il n'y a pas d'alerte avec ce paramètre, une nouvelle alerte sera affichée.

Comme vous pouvez le constater, les possibilités offertes par la méthode correspondante sont devenues encore plus grandes ! Mais ce ne sont pas tous les changements apportés au mécanisme de notification.

Comme vous l'avez peut-être déjà remarqué, leur apparence. Les alertes semblent désormais plus modernes et ergonomiques, mais elles ne peuvent pas être déplacées sur l’écran ni redimensionnées. Veuillez noter que dans notre exemple, le texte de notification ne tenait tout simplement pas entièrement dans la fenêtre elle-même et que l'utilisateur ne pourra le lire dans son intégralité qu'en ouvrant le Centre de notifications. Par conséquent, vous ne devez pas écrire dans le texte de notification un grand nombre de texte.

Les nouvelles fonctionnalités incluent également l'affichage simultané de jusqu'à trois alertes sur l'écran.

Ceci conclut notre connaissance de la génération logicielle d'alertes. Cependant, rappelez-vous que les alertes sont générées non seulement par le développeur par programmation, mais également par la plateforme elle-même au moment de l'enregistrement interactif ou de la modification d'un objet. Et souvent, ce fait provoque des malentendus, principalement parmi les utilisateurs novices : pourquoi ces alertes de service sont-elles nécessaires, qui, d'ailleurs, ne peuvent pas être désactivées ?

Imaginons cette situation simple : l'utilisateur a défini un filtre dans une liste pour plus de commodité. Disons qu'il a fait cela sous la forme d'une liste dans le répertoire Nomenclature. Puis, au bout d'un certain temps, j'ai décidé d'introduire un nouvel élément appelé « Chair », qui ne correspond pas au filtre précédemment installé. Il le saisit, l'écrit et... ? Et il ne le voit pas sur la liste. Que fera l’utilisateur moyen ? Bien sûr, il y entrera une seconde fois, mais ne le reverra plus. Cela peut être suivi d'une troisième, quatrième, cinquième fois. Quand il en aura assez de revenir encore et encore dans la même chose, il finira par vous demander : où va tout ?

C'est précisément pourquoi la plateforme affiche ces alertes de service, informant l'utilisateur que son action est terminée. Dans notre exemple, au moment de l'enregistrement interactif, l'utilisateur verra la notification suivante :

Messages de résiliation

Les messages de fin sont les messages qui ne permettront pas le travail tant que l'utilisateur n'aura pas effectué certaines actions, c'est-à-dire jusqu'à ce qu'il traite le message.

Nous parlerons un peu plus tard de la possibilité d'utiliser les messages de terminaison dans la plateforme 8.3 (dernièrement, ils ont essayé de ne pas les utiliser, l'exemple considéré est donc plus pertinent pour la plateforme 8.2).

Il existe deux méthodes pour émettre des messages de fin Avertissement Et Question. Avertissement diffère de Question parce qu'il a un seul bouton D'ACCORD.

Une question peut spécifier différents ensembles d'options de réponse ( Pas vraiment, OuiNonAnnuler, D'ACCORD, OKAnnuler, RépéterAnnuler, AbandonnerRépéterSauter), qui sont spécifiés à l'aide du paramètre.

Affichons un avertissement en utilisant la ligne (par exemple, dans un module d'application géré) :

Attention("La base va maintenant être ouverte");

Pour ouvrir un module d'application géré, sélectionnez l'objet dans l'arborescence de configuration Configuration, appel menu contextuel et sélectionnez l'élément Ouvrir un module d'application géré.

Dans ce cas, au lancement de l'application, une fenêtre modale s'affichera. Une fenêtre modale chevauche toutes les fenêtres existantes dans l'application. Jusqu'à ce que nous traitions cette fenêtre, aucune autre action n'est possible.

La fonction fonctionne de la même manière Question.

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

Seuls les deux premiers paramètres sont obligatoires. Pour le deuxième paramètre, le type de données est composite ( Mode de dialogueQuestion ou ListeValeurs). Troisième paramètre ( <Таймаут> ) caractérise l'intervalle de temps en secondes pendant lequel le système attendra une réponse de l'utilisateur.

À l'expiration de l'intervalle, la fenêtre des questions sera fermée. Paramètre similaire ( <Таймаут> ) est également disponible pour la fonction Avertissement.

À titre d'exemple d'utilisation de la fonction Question Vous pouvez utiliser le code suivant, écrit dans un module d'application géré :

Veuillez noter que ces méthodes ( Avertissement Et Question) ne sont pas disponibles sur le serveur. Et c'est logique, car les méthodes d'interface ne peuvent pas être exécutées sur un serveur où il n'y a pas d'utilisateur.

Fonctionnalités d'utilisation des fenêtres modales dans Platform 8.3

Dans la plateforme 8.3, il existe des modes de fonctionnement avec et sans modalité. Le paramètre par défaut est Ne pas utiliser le mode modalité.

Dans ce cas, l'utilisation de messages de terminaison est impossible. S'il est nécessaire d'utiliser des messages de terminaison (fonctions Avertissement Et Question) vous devez modifier la valeur de la propriété de configuration sur Utiliser.

La fenêtre modale est affichée tout en haut et bloque le travail avec d'autres fenêtres jusqu'à ce que les actions avec la fenêtre modale soient terminées. De plus, l'exécution du code du programme s'arrête au moment où cette fenêtre est appelée. L'exécution du code ne continuera qu'après la fermeture de la fenêtre modale.

Premièrement, des problèmes liés à l'utilisation des fenêtres modales surviennent pour application mobile. Deuxièmement, dans le navigateur, la modalité de fenêtre est implémentée à l'aide de fenêtres contextuelles distinctes.

Les fenêtres contextuelles sont souvent désactivées par les paramètres par défaut du navigateur. L'utilisateur doit être obligé de définir l'autorisation pour ces fenêtres.

Navigateurs pour ordinateurs tablettes et pour les téléphones, dans la plupart des cas, ils ne prennent pas du tout en charge les fenêtres contextuelles.

Pour remplacer des fonctions Question Et Avertissement de nouvelles méthodes ont été développées : Afficher la question, AfficherAvertissement.

Ces méthodes permettent d'appeler une fenêtre, mais n'arrêtent pas l'exécution du code du programme. Techniquement, ceci est réalisé en formant une pseudo-fenêtre à l'intérieur de la fenêtre parent. La pseudo-fenêtre ne chevauche pas la fenêtre parent. Après avoir ouvert une telle fenêtre, le code continue de s'exécuter.

La réception et le traitement des valeurs saisies par l'utilisateur sont effectués dans une procédure distincte, appelée à la fermeture de la boîte de dialogue.

Syntaxe de la fonction AfficherAvertissement:

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

Paramètre <ОписаниеОповещенияОЗавершении> (facultatif)

Type de données: DescriptionAlertes.

Contient une description de la procédure qui sera appelée après la fermeture de la fenêtre d'avertissement.

Syntaxe de la fonction Afficher la question:

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

Les trois premiers paramètres sont obligatoires.

Vous trouverez ci-dessous un exemple d'utilisation de la fonction.

Classe MessageToUser

Commodité de base de la classe de message Message à l'utilisateur c'est qu'il s'agit d'un message contextuel (contrairement aux méthodes Avertissement Et Question).

Les messages peuvent être liés à un élément d'écran spécifique. Cet objet est également disponible sur le Serveur.

Veuillez noter que cet objet doit d'abord être créé. Par exemple: Message = Nouveau MessageVersUtilisateur ;

Nous créons donc une instance de cet objet.

Deuxièmement, vous devez spécifier le texte du message dans une propriété distincte.

Troisièmement, dans la propriété Champ Vous pouvez spécifier à quel élément de formulaire ce message doit être joint.

Attention! Pour lier au champ de formulaire souhaité, faites attention à l'initialisation des propriétés CheminVersDonnées Et Clé de données. Pour un document, en plaçant du code dans un module objet, vous pouvez écrire :

Message.DataPath = « Objet » ;
Message.DataKey = ThisObject.Link;

Pour ouvrir le module document, dans la fenêtre d'édition de l'objet (document), allez dans l'onglet Autre appuie sur le bouton Module objet.

Pour l'expérimentation, nous placerons le code dans le module objet d'un document.

Ci-dessous le résultat obtenu en mode utilisateur pour la Plateforme 8.3.

Il convient de noter que les messages sont générés à l'aide du nouvel objet système Message à l'utilisateur dans le cas général, ils ne terminent pas. Ceux. le système permettra à l'utilisateur de poursuivre d'autres actions sans répondre aux messages affichés.

Mais premièrement, ces messages sont assez perceptibles. Deuxièmement, des messages sont généralement affichés à l'utilisateur au moment de l'enregistrement d'éléments d'annuaires ou de la mise en ligne de documents, c'est-à-dire lorsque certaines vérifications sont effectuées. Et si des erreurs ont été détectées, l'utilisateur verra ces mêmes messages.

En conséquence, lorsque des erreurs sont détectées, la transaction est annulée, c'est-à-dire l'écriture d'un élément de répertoire est interdite, ou la publication d'un document est interdite.

Ainsi, une sorte d'émulation du message de fin se produit. Étant donné que l'action est annulée jusqu'à ce que l'utilisateur réagisse au message saisi, il sera impossible de terminer l'action, par exemple en publiant un document.

Mais, d'un autre côté, il est possible de fermer le document sans le réaliser, sans réagir de quelque manière que ce soit au message. Par conséquent, ces messages destinés à l’utilisateur ne se terminent pas.

Notification de l'état du processus

Il existe une fonction spéciale avec laquelle vous pouvez afficher la progression approximative d'un processus.

Syntaxe: État(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
Possibilités :<ТекстСообщения>Et<Пояснение>– facultatif, tapez – Doubler.
Le texte est affiché sur une barre d'état spéciale.
<Прогресс>Le paramètre est également facultatif, mais visuel.
Taper: Nombre. Valeur de l'indicateur de progression (de 1 à 100).
<Картинка>également un paramètre facultatif.
Lors du traitement d'un événement, ils peuvent être utilisés appels périodiques fonctionne comme :

Dans ce cas, les étiquettes peuvent changer et les valeurs du paramètre Progress peuvent changer.

Une fonction peut être appelée à partir d'une procédure (fonction) ou de plusieurs. De cette façon, vous pouvez suivre l'état d'exécution du processus.

Si vous souhaitez examiner de plus près le mécanisme de notification, arrêtez-vous maintenant et lisez notre nouvel article, Afficher la progression des opérations de longue durée dans la version 8.3.10. Il explique, non plus au niveau d'un débutant, toutes les subtilités et les pièges du fonctionnement de ce mécanisme.

Nous terminons notre introduction aux moyens d'informer l'utilisateur. Nous espérons que vous comprenez dans quelles situations telle ou telle méthode doit être utilisée.

Je voudrais encore une fois attirer votre attention sur le fait que si votre configuration (version 8.3.3+) implique de travailler à l'aide d'un client web, alors :

  • au niveau de la configuration, le paramètre du mode de modalité doit être réglé sur « Ne pas utiliser »
  • Le code doit utiliser les méthodes du modèle d'interaction utilisateur asynchrone. De telles méthodes commencent par les mots Montrer ou Commencer.

Vous pouvez en savoir plus sur le refus d'utiliser les fenêtres modales dans la plate-forme 1C:Enterprise 8.3 dans le dernier article de la série. Et nous passons à autre chose et, enfin, commençons à étudier l'interface Taxi tant attendue, qui a déjà été mentionnée plus d'une fois dans nos documents.

Pendant la leçon nous avons : créé une base, créé un traitement, créé un formulaire.

Nous allons maintenant vous présenter 5 méthodes d'envoi de messages de 1C « Bonjour tout le monde ! »

Tout le monde ne connaît pas au moins deux méthodes :)

Comment et où rédiger le texte du programme ?

Passez à l'onglet de la fenêtre avec le formulaire « Module ». Vous vous assurerez que vous y avez déjà du texte (« Procédure… »).

S'il n'y a pas de texte, alors :

  • Dans le client lourd, vous avez ajouté le formulaire au traitement de manière incorrecte, répétez depuis le début
  • Vous avez oublié d'ajouter un bouton dans le client léger, répétez depuis le début.

A l'intérieur du texte il y a une ligne :

// Insère le contenu du gestionnaire

Votre tâche consiste à effacer cette ligne et à saisir le texte du programme à la place. Après cela, enregistrez le traitement et ouvrez-le en mode entreprise.

Lorsque vous cliquez sur Exécuter, les actions que vous avez saisies seront désormais exécutées.

Passons maintenant aux méthodes elles-mêmes !

Message en 1C, méthode 1 - la plus simple

Vous devriez donc remplacer le texte « // Insérer le contenu du gestionnaire ». écrire le texte du programme.

Rapport("Bonjour tout le monde !");

En fait c'est tout :)

Le message en mode Entreprise dans le client lourd sera en bas de la fenêtre 1C, dans le client léger - à droite dans la fenêtre de traitement.

C’est la méthode la plus simple, très largement utilisée par les programmeurs.

Message en 1C, méthode 2 - aussi simple

Alerte("Bonjour tout le monde !");

En fait c'est tout :)

Le message en mode Entreprise dans les deux options client s'affichera dans une fenêtre contextuelle.

Message dans 1C, méthode 3 - apparu uniquement dans 1C version 8.2

ShowUserAlert("Bonjour tout le monde !","Bonjour vraiment !");

Cette méthode n'est apparue que dans 1C version 8.2. Il s'agit d'une fenêtre contextuelle dans le coin inférieur droit de l'écran qui disparaît avec le temps.

Message en 1C, méthode 4 - programmeur

Lancez l'exception « Bonjour tout le monde ! » ;

Il peut y avoir une erreur lors de l'exécution d'un programme. Parfois, cette erreur peut être calculée à l'avance (par exemple, vous devez calculer a = b/c et au moment de l'exécution du programme, on sait que c est égal à 0).

Dans ce cas, il existe un moyen de signaler l'erreur en utilisant cette méthode.

Message en 1C, méthode 5 - technologiquement avancé, uniquement pour configuration typique

General Purpose.ReportError("Bonjour tout le monde !");

Un programmeur 1C doit connaître non seulement les méthodes de programmation disponibles dans la plate-forme 1C, mais également celles disponibles dans les configurations standard.

Les débutants, lorsqu’ils tentent d’ajouter une configuration standard, commencent à réinventer la roue.

Voici un exemple parfait. Cette fonctionnalité est présente dans de nombreuses configurations standards (client lourd uniquement !). Il semblerait que le résultat soit égal à l'action de la méthode 1.
Cependant, non : dans certaines configurations (par exemple, démarreur progressif), les messages d'erreur sont dupliqués dans le journal. De plus, avec des paramètres supplémentaires, le message est complètement différent.

Alors maintenant, vous pouvez vous sentir comme un vrai programmeur !

C'est exactement ce qu'est la programmation 1C. Bien sûr, la vraie programmation est beaucoup plus complexe et nécessite beaucoup de connaissances, mais idée générale Vous avez maintenant reçu.

Bonne chance!

P.S. La version pdf de la leçon contient des captures d'écran pour vous permettre de créer plus facilement votre propre expérience.

P.P.S. La leçon comprend 5 vidéos avec des exemples de création d'une base de programmation, de création de traitement, de programmation dans un client lourd et léger.

Dans les programmes de la plateforme 1C:Enterprise, un message peut être présenté à l'utilisateur de différentes manières.

1. Méthode AfficherAvertissement.

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

Lors de l'utilisation de cette conception, une fenêtre d'avertissement apparaît au centre de l'interface du programme.

Possibilités :

DescriptionAlertes complètes(facultatif)
Type : DescriptionAlertes. Contient une description de la procédure qui sera appelée après la fermeture de la fenêtre d'avertissement de les paramètres suivants: Paramètres supplémentaires - la valeur spécifiée lors de la création de l'objet Description de l'alerte. Si le paramètre n'est pas spécifié, aucune procédure ne sera appelée à la fin.

Texte d'avertissement(requis)
Type : chaîne ; Chaîne formatée. Texte d'avertissement.

Délai d'attente (facultatif)
Tapez : Numéro. L'intervalle de temps en secondes pendant lequel le système attendra une réponse de l'utilisateur. À l'expiration de l'intervalle, la fenêtre d'avertissement sera fermée. Si le paramètre n'est pas précisé, alors le temps d'attente est illimité. Si le paramètre est négatif, une exception sera levée. Valeur par défaut : 0.

Titre (facultatif)
Type : chaîne. Contient le titre de la fenêtre d'avertissement. Description : Affiche une fenêtre d'avertissement, mais n'attend pas qu'elle se ferme.

Disponibilité : Client léger, client web, client lourd, application mobile (client).

Remarque : Si un code doit être exécuté après que l'utilisateur a fermé la fenêtre d'avertissement, il doit être placé dans une procédure de module distincte et décrit dans un paramètre.

2. Avertissement de méthode.

Une fenêtre d'avertissement apparaît au centre de l'interface du programme. Cependant, si la propriété de configuration Mode d'utilisationModalités est défini sur Do Not Use , la méthode ne fonctionne pas.

Disponibilité : Client léger, client web, client mobile, client lourd, application mobile (client).

3. Méthode Afficher l'alerte utilisateur.

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

Lorsque vous utilisez cette méthode, un message apparaît dans le coin inférieur droit de l'interface.

Disponibilité : Client léger, client web, client lourd.

4. Méthode de rapport.

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

Disponibilité : Client léger, client web, client mobile, serveur, client lourd, connexion externe, application mobile (client), application mobile (serveur).

5. Objet Message à l'utilisateur.

Conçu pour stocker les paramètres de message qui doivent être affichés à l'utilisateur. Si le message n'a pas encore été affiché à l'utilisateur (cela peut arriver lorsque vous travaillez côté serveur, dans travail en arrière-plan, connexion externe ou services Web), vous pouvez récupérer les messages accumulés en utilisant la méthode Recevoir des messages à l'utilisateur.

Propriétés: ID de destination(ID cible); Clé de données ; Champ; Chemin de données(Chemin de données); Texte.

Méthodes : Message ; Définir les données(DéfinirDonnées).

Le message apparaît en bas de l'interface, sur une ligne.

Message = Nouveau MessageVersUtilisateur(); Message. Texte = "Pas assez de nomenclature"; Message. Champ = "Nomenclature. Quantité"; Message. SetData(DataObject) ; Message. Signaler() ;

Implémenté dans la version 8.3.10.2168.

Nous avons amélioré le mécanisme de notification des utilisateurs. Désormais, il est tout aussi pratique de l'utiliser à la fois dans le client léger et dans le client Web. Nous avons modifié l'apparence des alertes et leur avons ajouté un certain nombre de nouvelles fonctionnalités.

Afficher plusieurs alertes

Dans l’ancienne implémentation, une seule alerte était affichée à l’écran à la fois. La nouvelle alerte chevauchait la précédente. Ainsi, si plusieurs alertes étaient affichées à la suite, il y avait une forte probabilité que l'utilisateur n'ait pas le temps de lire l'alerte précédente, puisqu'elle serait couverte par la suivante.

Désormais, dans la plupart des cas, jusqu'à trois alertes peuvent être affichées simultanément :

Cela est vrai pour le client léger, le client lourd et le client Web exécutés dans les navigateurs. Internet Explorer Et Google Chrome . Navigateurs Safari Et Mozilla Firefox permettent d'afficher un nombre illimité d'alertes, et le navigateur Microsoft Bord affiche une dernière alerte, mais elle contient Centre d'action, dans lequel toutes les alertes sont dupliquées.

Afficher des alertes lorsque la fenêtre de l'application est inactive

Auparavant, dans le client Web, les alertes n'étaient affichées que dans fenêtre active navigateur. Si l'utilisateur passait à une autre fenêtre ou à une autre application, il ne voyait pas l'alerte. Désormais, lors de l'utilisation du client Web, les notifications s'affichent à l'écran même lorsque la fenêtre de l'application est réduite ou inactive.

Lorsque la méthode est appelée pour la première fois Afficher l'alerte utilisateur() dans le client Web Google Chrome, Mozilla Firefox Et Safari Le navigateur demandera à l'utilisateur l'autorisation d'utiliser les notifications. L'utilisateur peut autoriser sa sortie pendant cette application, ou interdire.

Si l'utilisateur désactive l'affichage des notifications, le nouveau type de notifications sera utilisé, mais elles seront affichées dans la fenêtre du navigateur.

Centre d'alerte

Pour éviter que les notifications ne disparaissent définitivement, nous avons mis en place centre d'alerte. Et pour les alertes elles-mêmes, nous avons implémenté une nouvelle propriété : Statut d'alerte utilisateur. Cela peut prendre deux significations : Information Et Important.

Alertes avec statut Information s'affichent à l'écran et disparaissent au bout de 10 secondes (dans le navigateur Microsoft Bord– après 4 secondes). Alertes avec statut Important se comportent exactement de la même manière, mais ils sont enregistrés dans le centre d'alerte.

Le Centre d'alerte est accessible depuis la barre d'outils. Le fait qu'il y ait de nouvelles alertes importantes est indiqué par un point orange à côté de son icône.

Le centre d'alerte affiche les alertes importantes auxquelles l'utilisateur n'a pas encore répondu en fermant ou en effectuant une action liée à l'alerte. Les alertes sont répertoriées dans l’ordre dans lequel elles apparaissent, la plus récente en haut. De cette façon, même si l’utilisateur quitte l’ordinateur, il ne manquera pas de notifications importantes.

Une alerte peut être supprimée de la liste à l'aide du bouton Effacer. Si une action est associée à l'alerte, après avoir cliqué sur le texte de l'alerte, elle disparaîtra également. Équipe Effacer les alertes supprime toutes les alertes de la liste. Toutefois, si des actions étaient associées à des alertes, elles ne sont pas exécutées.

Effectuer des actions lorsque vous appuyez dessus

Dans l’ancienne implémentation, la seule action que vous pouviez effectuer lorsque vous cliquiez sur une alerte consistait à cliquer sur le lien de navigation. Il a été transmis à la méthode comme deuxième paramètre.

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

Nous avons désormais étendu les capacités des alertes et, dans le deuxième paramètre, vous pouvez transmettre non seulement une chaîne avec un lien de navigation, mais également une description de l'alerte.

Afficher l'alerte utilisateur (<Текст>, <ДействиеПриНажатии>, …

La description de l'alerte indique la procédure qui doit être effectuée lorsque l'on clique sur l'alerte.

Apparence

Dans le client léger dans l'option interface Taxi le style de notification sera aussi proche que possible du style de notification du navigateur Google Chrome en utilisant API de notifications.


Si l'option interface est utilisée Version 8.2, le style et le comportement de l'alerte restent les mêmes.

Dans le client web, l'apparence des alertes est déterminée par le navigateur utilisé. Dans l'ensemble, les alertes seront identiques à celles du client léger, mais chaque navigateur a ses propres caractéristiques. Par exemple, vous pouvez comparer la façon dont les mêmes alertes s'afficheront Internet Explorer Et Mozilla Firefox.


En plus de cela, il existe d’autres fonctionnalités. Par exemple, dans le navigateur Internet Explorer Seules les alertes affichées dans la fenêtre de l'application sont prises en charge. Et dans le navigateur Safari paramètre Image n'est pas pris en charge et les alertes sont affichées en haut de l'écran.

Le développement est conçu pour informer les utilisateurs, à la fois de manière sélective et globale, vous pouvez également simplement écrire des messages ou effectuer une correspondance entre utilisateurs.

Le développement est un registre d'informations et une modification dans un module d'une application gérée ou régulière.
Pour déclencher une alerte, vous devez ajouter une entrée au registre d'informations, les utilisateurs recevront des notifications pendant la période spécifiée entre le début et la fin de l'heure de notification.

APPLICATION GÉRÉE

APPLICATION RÉGULIÈRE

Fenêtre d'alerte affichée dans le programme utilisateur bloque toute l'interface et les utilisateurs travaillant dans ce moment le programme ne manquera pas la notification et la lira en conséquence.

APPLICATION GÉRÉE

APPLICATION RÉGULIÈRE

Liste d'inscription

Dans la liste des notifications, vous pouvez voir qui a reçu la notification et qui l'a lue.

APPLICATION GÉRÉE

APPLICATION RÉGULIÈRE

Pour implémenter le développement dans votre configuration, vous devez :

  1. Définissez la possibilité de modifier la configuration.
  2. Comparez avec la configuration fournie dans cette publication. Un registre d'informations « Alertes utilisateur » sera ajouté ainsi qu'une entrée dans le module d'application standard ou géré, selon le mode de lancement principal de l'application.

    Une entrée de module d'application standard ou géré diffère :

    APPLICATION GÉRÉE

Procédure Au Démarrage du Système() //Modification de la configuration standard pour notifier les utilisateurs du programme (envoi d'un message à n'importe quel utilisateur) //Convient à toutes les configurations ConnectWaitingHandler("modNotificationProcessingHandler", 60); Fin de procédure // Au démarrage du système () // Modification de la configuration standard pour avertir les utilisateurs du programme (envoi d'un message à n'importe quel utilisateur) // Convient à toutes les configurations // L'appel du gestionnaire d'attente se poursuit jusqu'à la fermeture du formulaire // ou jusqu'à ce que la méthode du formulaire soit appelée. Procedure modNotificationProcessingHandler( ) Export Message to User = GetForm("Information Register.User Alerts.Form.ControlSubmissionForm").GetNotificationProcessingMessages(); Si ce n'est pas le cas MessageToUser = Undefined Then Form = GetForm("InformationRegister.User Alerts.Form.AlertControl"); Si ce n'est pas le cas Form.Open() Then FillPropertyValues(Form,MessageToUser,"ViewOnly"); Form.Open(); Sinon Form.Activate(); fin si; fin si; Fin de procédure APPLICATION RÉGULIÈRE Procédure au démarrage du système() //Modification de la configuration standard pour notifier les utilisateurs du programme (envoi d'un message à n'importe quel utilisateur) //Convient à toutes les configurations ConnectWaitingHandler("modNotificationProcessingHandler", 60); Fin de procédure // Au démarrage du système () // Modification de la configuration standard pour avertir les utilisateurs du programme (envoi d'un message à n'importe quel utilisateur) // Convient à toutes les configurations // L'appel du gestionnaire d'attente se poursuit jusqu'à la fermeture du formulaire // ou jusqu'à ce que la méthode du formulaire soit appelée. Procedure modNotificationProcessingHandler( ) Exporter le message vers l'utilisateur = Information Registers.User Alerts.GetNotificationProcessingMessages(); Si ce n'est pas le cas MessageToUser = Undefined Then Form = GetForm("InformationRegister.User Alerts.Form.AlertUsual"); Si ce n'est pas le cas Form.Open() Then FillPropertyValues(Form,MessageToUser,"ViewOnly"); Form.OpenModal(); Sinon Form.Activate(); fin si; fin si; Fin de la procédure

La mise en œuvre du développement est gratuite et réalisée en 10 minutes.

Assistance technique gratuite pendant 30 jours.
DANS

Le développement est destiné à la plateforme 8.3, à divers standards et configurations atypiques, en mode client léger, client lourd et client web.

Une modification indépendante est possible, le code est ouvert à l'édition.

Raisons d'acheter

Une option très pratique pour alerter et informer les utilisateurs de 1C de travail technique, modifications des configurations, mises à jour, possibilité de correspondre entre utilisateurs 1C dans le cadre du 1er programme.

Avantages

1) Livraison à 100 % des alertes à tous les utilisateurs, contrairement aux analogues.
2) Possibilité d'envoyer des photos.
3) Affichez l'activité des utilisateurs dans la liste des messages (qui a été livré, qui a lu).
4) La possibilité d'écrire une réponse à la personne qui a envoyé la notification.
5) N'affecte pas les autres objets lors de la mise à jour des configurations avec l'option d'édition installée.

Garantie de remboursement

Infostart LLC vous garantit un remboursement à 100% si le programme ne correspond pas à la fonctionnalité déclarée dans la description. L'argent peut être restitué intégralement si vous en faites la demande dans les 14 jours à compter de la date de réception de l'argent sur notre compte.

Le programme a fait ses preuves à tel point que nous pouvons donner une telle garantie en toute confiance. Nous voulons que tous nos clients soient satisfaits de leur achat.