Mesaje personale pentru comunitățile VKontakte. Cum să afișați corect mesajele utilizatorului

Articolul continuă seria articolelor „Primii pași în dezvoltare pe 1C”.

În acesta vom analiza metodele de informare a utilizatorului care sunt prezente în platforma 1C:Enterprise 8 și, de asemenea, vă vom concentra atenția asupra unor caracteristici ale funcționării acestor mecanisme, aceste caracteristici sunt legate de modul de utilizare a modalității .

Aplicabilitate

Articolul discută funcționalitatea:

  • Interfață în versiunea „Versiunea 8.2” pentru configurația dezvoltată pe platforma 1C:Enterprise 8.2.19.130
  • Interfață taxi pentru configurație dezvoltată pe platforma 1C:Enterprise 8.3.4.496 până la 8.3.9+
  • Interfață taxi pentru o configurație dezvoltată pe platforma 1C:Enterprise 8.3.10-8.3.11

Cum să afișați un mesaj utilizatorului în 1C

Afișarea mesajelor în modul utilizator rezolvă o serie de probleme:

  • reflectarea progresului procesului curent (afișarea stadiului de execuție a procesului; afișarea valorilor calculate obținute în timpul funcționării algoritmului);
  • afișarea erorilor către utilizator pentru o eventuală corectare;
  • emiterea de recomandări;

Tipuri de mesaje:

  • terminator, care oprește execuția programului și nu îi permite să continue până când utilizatorul citește acest mesaj și execută anumite actiuni. De exemplu, utilizatorului i se va prezenta o întrebare pe ecran la care va trebui să răspundă Da sau Nu. Până când utilizatorul răspunde, programul nu se execută acțiuni ulterioare;
  • mesaje introductive care sunt pur și simplu afișate utilizatorului și permit lucrări ulterioare (adică, utilizate în modul de alertă).

Mesajele de terminare ar trebui să fie mesaje de eroare și mesaje introductive: recomandări, mesaje despre stadiul curent al procesului și afișarea valorilor calculate (printare de depanare).

Mesajele introductive au scopul de a oferi utilizatorului anumite informații.

Este necesar ca utilizatorul să se familiarizeze cu acesta și, eventual, să întreprindă unele acțiuni care sunt descrise în acest mesaj.

Este foarte important ca utilizatorul să citească efectiv aceste mesaje, așa că acestea ar trebui să conțină doar informații importante.

Mesajele de testare și depanare nu ar trebui să fie emise utilizatorului, deoarece mai devreme sau mai târziu va începe să ignore absolut toate mesajele.

În conceptul de interfață gestionată, abordarea emiterii unui mesaj s-a schimbat oarecum. Acum este legat de forma în care a apărut. Nu mai poate fi închis, astfel încât textul să fie complet invizibil.

Nu puteți anula fixarea unei casete de mesaj dintr-un formular.

Sintaxa funcției:

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

Aceste. primul parametru este textul în sine.

Al doilea parametru (starea mesajului) este opțional. Puteți specifica valori pentru stare: Normal, Important, Foarte important etc.

Din valoare dată depinde de ce pictogramă va fi amplasată lângă mesaj. Cu toate acestea, acest lucru funcționează numai în interfața normală.

În conceptul de interfață gestionată, pictograma este întotdeauna în formă semnul exclamării, nu poate fi redefinit.

Faptul este că dacă un mesaj este generat în momentul scrierii unui element de director, poate apărea următoarea situație.

Utilizatorul face clic pe un buton Salvați și închideți, in acest caz mesajul este afisat in fereastra corespunzatoare (in dreapta formularului).

Dar formularul se închide instantaneu, iar utilizatorul nu va vedea că a fost afișată nicio informație pentru el.

Prin urmare, în concept aplicație gestionată Se recomandă afișarea mesajelor introductive folosind așa-numitele alerte. Un exemplu de utilizare incorectă a unei funcții Raport prezentate în figură.

Cu toate acestea, funcția Raport poate fi folosit pentru a afișa informații despre anumite erori, de exemplu, la momentul postării documentului.

În acest caz, sistemul poate fi informat că formularul nu trebuie să fie închis și să arate utilizatorului ce erori apar la postarea documentului.

Funcţie Raport pe deplin suportat în Platforma 8.3. Poate fi folosit și va funcționa (atât în ​​versiunea de fișier, cât și în versiunea client-server).

Dar trebuie menționat și faptul că funcția Raport Există dezvoltare ulterioară– aceasta este o clasă de mesaje pentru utilizator, care permite, pe lângă afișarea unui mesaj, să-l lege contextual la orice elemente de formular.

De exemplu, un mesaj de eroare poate fi legat de un element de formular, ceea ce este foarte clar pentru utilizator. Vom reveni să analizăm această problemă puțin mai târziu. Funcţie Raport există o caracteristică interesantă.

Astfel, codul programului din Platforma 8.3 poate fi executat atât pe partea Client, cât și pe partea Server.

În acest caz, codul programului client este responsabil pentru interacțiunea cu utilizatorul, adică. Pe partea clientului, se deschid formulare și sunt afișate rapoarte.

Diverse documente de dialog sunt, de asemenea, afișate numai pe client. Ele nu pot fi executate pe server deoarece serverul nu are capacitatea de a interacționa cu utilizatorii.

Dar funcția Raport poate fi executat atât pe partea Client cât și pe partea Server. În acest caz, utilizarea metodei Raport pe Server nu înseamnă deloc că mesajul va fi afișat pe Server, pur și simplu nu există unde să le afișeze.

Aceasta înseamnă că dacă afișăm un mesaj în procedura serverului folosind această metodă, ele se vor acumula într-un buffer și vor fi afișate pe ecran doar când procedura serverului se încheie și revine la Client.

În acest moment, sistemul va solicita date din buffer și le va afișa pe ecran.

Aceeași caracteristică se aplică clasei Mesaj pentru utilizator. Figura prezintă un exemplu de utilizare a metodei Raport pe partea Server.

Ca urmare a utilizării metodei Raport pe partea Server, mesajele au fost afișate pe ecran pe partea Client.

Este necesar un mecanism de alertă pentru a informa utilizatorul că „ceva” s-a întâmplat în sistem și că „ceva” necesită atenția utilizatorului. Alertele sunt generate de două scenarii:

  1. Prin platforma în sine atunci când înregistrați sau schimbați interactiv un obiect
  2. De către dezvoltator atunci când apelează o metodă din cod .

Notificarea în sine este o fereastră mică care apare, de regulă, în colțul din dreapta jos și informează despre acțiunea finalizată. În câteva secunde, se estompează treptat și dispare. În același timp, dacă treci cu cursorul mouse-ului peste notificare, aceasta nu dispare și o poți citi cu atenție.

În plus, alertele pot fi accesate în zona corespunzătoare a panoului de informații (butonul „Istoric” din partea stângă jos a formularului de cerere în opțiunea de interfață „Versiunea 8.2”).

Pentru a vă crea propriile alerte trebuie să utilizați metoda contextului global ShowUserAlert(). Sintaxa sa înainte de versiunea 8.3.10 este prezentată mai jos:

Afișați alertă utilizator (<Текст>, <НавигационнаяССылка>, <Пояснение>, <Картинка>)

Primul parametru conține textul care va fi afișat în notificare.

Apoi, ca al doilea parametru, puteți trece un anumit link de navigare unui element baza de informatii(elementul care corespunde textului mesajului nostru). Când un utilizator face clic pe o alertă, linkul va fi urmat.

Folosind al treilea parametru, puteți transmite o explicație pentru mesaj, de exemplu. o descriere extinsă.

De asemenea, puteți atribui o imagine care afișează starea notificării.

Trebuie remarcat faptul că toți acești parametri sunt opționali. Mai jos este un exemplu de utilizare această metodă(în configurator și în modul utilizator în opțiunea de interfață „Versiunea 8.2”).

În versiunea platformei 8.3.10.216 pentru interfața „Taxi”, mecanismul de notificare a fost îmbunătățit semnificativ pentru a îmbunătăți gradul de utilizare atât a clientului subțire, cât și a clientului web. Din acest motiv, s-au modificat și parametrii trecuți metodei ShowUserAlert(). Acum sintaxa arată astfel:

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

Se poate observa că al doilea parametru, numit anterior Legătură de navigație, a primit un nume nou ActionWhenClicked. Acest lucru se datorează faptului că acum a devenit posibil să transferați nu numai un șir cu link de navigare, dar și o descriere a alertei. Acest lucru este ilustrat în captura de ecran de mai jos:

După cum se poate vedea din exemplu, acum avem capacitatea de a procesa programatic un clic pe o fereastră de notificare, conform logicii necesare.

Următorul parametru Stare alertă utilizator a aparut pentru prima data. Indică starea alertei (Informații sau Important).

În cazul opțiunii Important, dacă utilizatorul nu a răspuns la mesaj, atunci după ce acesta este ascuns de pe ecran, acesta poate fi citit prin Centrul de notificare (mai multe despre el mai jos). În cazul opțiunii Informații, notificarea este ștearsă fără a fi stocată în acest centru. Să rescriem codul din exemplul nostru, după cum urmează:

După executarea comenzii, obținem aproximativ această vedere a ferestrei aplicației:

Un buton cu o pictogramă clopoțel a apărut în bara de instrumente, care apelează Centrul de notificare menționat mai sus. Acumulează noi alerte importante la care utilizatorul nu a răspuns încă.

Dacă există alerte în Centru, lângă el apare un mic punct portocaliu pentru a atrage atenția utilizatorului. Utilizatorul poate deschide Centrul de notificare, poate citi textul și, dacă este necesar, poate întreprinde unele acțiuni.

Din Centru, alerta este ștearsă făcând clic pe butonul de ștergere, dar dacă există o acțiune asociată cu alerta, atunci de îndată ce utilizatorul face clic pe textul mesajului, acesta va dispărea și el.

Și, în sfârșit, ultimul parametru adăugat a fost Cheia unicității. Îl puteți folosi pentru a găsi alerta afișată pe ecran și pentru a o modifica. Dacă nu există nicio alertă cu acest parametru, va fi afișată o nouă alertă.

După cum puteți vedea, posibilitățile oferite de metoda corespunzătoare au devenit și mai mari! Dar acestea nu sunt toate modificările în mecanismul de notificare.

După cum probabil ați observat deja, lor aspect. Alertele arată acum mai moderne și mai ergonomice, dar nu pot fi mutate pe ecran sau redimensionate. Vă rugăm să rețineți că, în exemplul nostru, textul de notificare pur și simplu nu s-a încadrat în întregime în fereastra în sine, iar utilizatorul îl va putea citi în întregime doar prin deschiderea Centrului de notificări. Prin urmare, nu ar trebui să scrieți în textul de notificare număr mare text.

Noile funcții includ și afișarea simultană a până la trei alerte pe ecran.

Aceasta încheie cunoștințele noastre cu formarea programatică alerte. Totuși, rețineți că alertele sunt generate nu numai de dezvoltator în mod programatic, ci și de platforma însăși în momentul înregistrării interactive sau al modificării unui obiect. Și adesea acest fapt provoacă neînțelegeri în primul rând în rândul utilizatorilor începători: de ce sunt necesare aceste alerte de serviciu, care, apropo, nu pot fi dezactivate?

Să ne imaginăm asta situatie simpla: Utilizatorul a setat un filtru într-o listă pentru comoditate. Să presupunem că a făcut asta sub forma unei liste în directorul Nomenclatură. Apoi, după ceva timp, am decis să vă prezint element nou cu numele „Scaun”, care nu se potrivește cu filtrul instalat anterior. Intră în el, îl notează și...? Și nu o vede pe listă. Ce va face utilizatorul mediu? Desigur, va intra în el a doua oară, dar nu o va mai vedea. Aceasta poate fi urmată de a treia, a patra, a cincea oară. Când se sătura să intre în același lucru iar și iar, te va întreba în sfârșit: unde se duce totul?

Tocmai de aceea platforma afișează aceste alerte de service, informând utilizatorul că acțiunea sa a fost finalizată. În exemplul nostru, în momentul înregistrării interactive, utilizatorul va vedea următoarea notificare:

Mesaje de terminare

Mesajele de terminare sunt acele mesaje care nu vor permite lucrul până când utilizatorul efectuează anumite acțiuni, de ex. până când procesează mesajul.

Vom vorbi despre posibilitatea utilizării mesajelor de terminare în Platforma 8.3 puțin mai târziu (în în ultima vreme Ei încearcă să nu le folosească, așa că exemplul luat în considerare este mai relevant pentru Platforma 8.2).

Există două metode de emitere a mesajelor de terminare AvertizareŞi Întrebare. Avertizare diferit de Întrebare deoarece are un singur buton Bine.

O întrebare poate specifica seturi diferite de opțiuni de răspuns ( Nu chiar, DaNuAnulează, Bine, OKAnulează, RepetAnulare, AbortRepeatSkip), care sunt specificate folosind parametrul.

Să afișăm niște avertismente folosind linia (de exemplu, într-un modul de aplicație gestionată):

Avertisment(„Baza va fi acum deschisă”);

Pentru a deschide un modul de aplicație gestionat, selectați obiectul din arborele de configurare Configurare, sunați meniul contextualși selectați elementul Deschideți un modul de aplicație gestionată.

ÎN în acest caz,, la pornirea aplicației, va fi afișată o fereastră care este modală. O fereastră modală se suprapune pe toate ferestrele care există în aplicație. Până când procesăm această fereastră, nu sunt posibile alte acțiuni.

Funcția funcționează într-un mod similar Întrebare.

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

Sunt necesari doar primii doi parametri. Pentru al doilea parametru, tipul de date este compus ( Modul de dialog Întrebare sau ListValues). Al treilea parametru ( <Таймаут> ) caracterizează intervalul de timp în secunde în care sistemul va aștepta răspunsul utilizatorului.

Când intervalul expiră, fereastra de întrebări va fi închisă. Parametru similar( <Таймаут> ) este disponibil și pentru această funcție Avertizare.

Ca exemplu de utilizare a funcției Întrebare Puteți utiliza următorul cod, scris într-un modul de aplicație gestionat:

Vă rugăm să rețineți că aceste metode ( AvertizareŞi Întrebare) nu sunt disponibile pe server. Și acest lucru este logic, deoarece metodele de interfață nu pot fi executate pe un Server unde nu există utilizator.

Caracteristici de utilizare ferestre modaleîn Platforma 8.3

În platforma 8.3, există moduri de operare cu și fără modalitate. Setarea implicită este Nu utilizați modul modality.

În acest caz, utilizarea mesajelor de reziliere este imposibilă. Dacă este necesară utilizarea mesajelor de terminare (funcții AvertizareŞi Întrebare) ar trebui să modificați valoarea proprietății de configurare pe Utilizare.

Fereastra modală este afișată în partea de sus și blocurile funcționează cu alte ferestre până când acțiunile cu fereastra modală sunt finalizate. În plus, execuția se oprește codul programului la locul unde este numită această fereastră. Execuția codului va continua numai după ce fereastra modală este închisă.

În primul rând, apar probleme cu utilizarea ferestrelor modale pentru aplicație mobilă. În al doilea rând, în browser, modalitatea ferestrelor este implementată folosind ferestre pop-up separate.

Ferestrele pop-up sunt adesea dezactivate prin setările implicite ale browserului. Utilizatorul trebuie să fie forțat să seteze permisiunea pentru aceste ferestre.

Browsere pentru tablete iar pentru telefoane în majoritatea cazurilor nu acceptă deloc ferestre pop-up.

Pentru a înlocui funcțiile ÎntrebareŞi Avertizare au fost dezvoltate noi metode: Afișează întrebarea, ShowWarning.

Aceste metode vă permit să apelați o fereastră, dar nu opresc execuția codului programului. Din punct de vedere tehnic, acest lucru este implementat prin formarea unei pseudo-fereastră în interiorul ferestrei părinte. Pseudo-fereastra nu se suprapune cu fereastra părinte. După deschiderea unei astfel de ferestre, codul continuă să se execute.

Primirea și procesarea valorilor introduse de utilizator se efectuează într-o procedură separată, care este numită atunci când caseta de dialog este închisă.

Sintaxa funcției ShowWarning:

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

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

Tip de date: DescriereAlerte.

Conține o descriere a procedurii care va fi apelată după închiderea ferestrei de avertizare.

Sintaxa funcției Afișează întrebarea:

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

Primii trei parametri sunt necesari.

Mai jos este un exemplu de utilizare a funcției.

Clasa MessageToUser

Comoditatea de bază a clasei de mesaje Mesaj pentru utilizator este că acesta este un mesaj contextual (spre deosebire de metode AvertizareŞi Întrebare).

Mesajele pot fi legate de un anumit element de ecran. Acest obiect este disponibil și pe Server.

Trebuie remarcat faptul că, în primul rând, acest obiect trebuie creat. De exemplu: Mesaj = New MessageToUser;

Astfel creăm o instanță a acestui obiect.

În al doilea rând, trebuie să specificați textul mesajului într-o proprietate separată.

În al treilea rând, în proprietate Domeniu puteți specifica ce element de formular acest mesaj trebuie legat.

Atenţie! Pentru a vă lega la câmpul de formular dorit, acordați atenție inițializării proprietăților PathToDataŞi DataKey. Pentru un document, atunci când plasați cod într-un modul obiect, puteți scrie:

Message.DataPath = „Obiect”;
Message.DataKey = ThisObject.Link;

Pentru a deschide modulul document, în fereastra de editare a obiectului (documentului), accesați fila Alte apăsați butonul Modul obiect.

Pentru experiment, vom plasa codul în modulul obiect al unui document.

Mai jos este rezultatul obținut în modul utilizator pentru Platforma 8.3.

Trebuie remarcat faptul că mesajele ies folosind noul obiect de sistem Mesaj pentru utilizator V caz general nu se încheie. Aceste. sistemul va permite utilizatorului să continue acțiunile ulterioare fără a răspunde la mesajele afișate.

Dar, în primul rând, aceste mesaje sunt destul de vizibile. În al doilea rând, mesajele sunt de obicei afișate utilizatorului în momentul înregistrării elementelor directoarelor sau postării documentelor, adică atunci când se efectuează unele verificări. Și dacă au fost detectate erori, utilizatorul va vedea aceleași mesaje.

În consecință, atunci când sunt detectate erori, tranzacția este anulată, adică. scrierea unui element de director este interzisă sau postarea unui document este interzisă.

Astfel, apare un fel de emulare a mesajului de terminare. Deoarece acțiunea este anulată până când utilizatorul reacționează la mesajul introdus, va fi imposibil să finalizați acțiunea, de exemplu, postarea unui document.

Dar, pe de altă parte, este posibil să închideți documentul fără a-l conduce, fără a reacționa în vreun fel la mesaj. Prin urmare, aceste mesaje către utilizator nu se încheie.

Notificarea de stare proces

Există functie speciala, cu care puteți afișa progresul aproximativ al unui proces.

Sintaxă: Stat(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
Parametri:<ТекстСообщения>Şi<Пояснение>– optional, tip – Linia.
Textul este afișat pe o bară de stare specială.
<Прогресс>Parametrul este și el opțional, dar vizual.
Tip: Număr. Valoarea indicatorului de progres (de la 1 la 100).
<Картинка>de asemenea, un parametru opțional.
La procesarea oricărui eveniment, apelurile periodice ale unei funcții precum:

În acest caz, etichetele se pot schimba, iar valorile parametrului Progress se pot modifica.

O funcție poate fi apelată dintr-o procedură (funcție) sau din mai multe. În acest fel, puteți urmări starea de execuție a procesului.

Dacă doriți să aruncați o privire mai atentă asupra mecanismului de notificare, opriți-vă chiar acum și citiți-ne articol nou Afișarea progresului operațiunilor de lungă durată în 8.3.10. Nu mai explică la nivel de începător toate subtilitățile și capcanele funcționarea acestui mecanism.

Terminăm introducerea noastră cu privire la modalitățile de informare a utilizatorului. Sperăm că ați înțeles în ce situații ar trebui folosită una sau alta metodă.

Aș dori să vă atrag încă o dată atenția asupra faptului că, dacă configurația dvs. (versiunea 8.3.3+) implică lucrul cu un client web, atunci:

  • la nivelul de configurare, setarea modului modalității trebuie să fie setată la „Nu utilizați”
  • Codul trebuie să utilizeze metode ale modelului de interacțiune cu utilizatorul asincron. Astfel de metode încep cu cuvintele Spectacol sau ÎNCEPE.

Puteți citi mai multe despre refuzul de a folosi ferestrele modale în platforma 1C:Enterprise 8.3 în articolul final al seriei. Și trecem mai departe și, în sfârșit, începem să studiem interfața mult așteptată Taxi, care a fost deja menționată de mai multe ori în materialele noastre.

Ce vom face: configurați trimiterea de mesaje în numele unui anumit utilizator către mai multe chat-uri și alți utilizatori care folosesc Solicitare HTTP folosind PHP, cu un efort minim.

De fapt, nu ne vom limita doar la mesaje. Totul va funcționa prin intermediul aplicației vk de sine stătătoare pe principiul că, potențial, vom putea face toate acțiunile care vor fi disponibile pentru acest utilizator (mai precis, tot ceea ce ne vom acorda drepturi, dar mai multe despre asta puțin mai târziu).

Luăm în considerare mesajele tocmai pentru că pot fi lucrate cu ele doar în aplicații de sine stătătoare.

Plan de actiune:
1. Creați o aplicație
2. Primim access_token
3. trimite mesaje

1. Creați o aplicație

Faceți acest lucru sub contul la care va fi conectată aplicația (Nu neapărat același din care vor fi trimise mesajele).

Nume Scriem orice vrem - nu va apărea nicăieri.
Tip- Aplicație autonomă.

Nu trebuie să atingi nimic altceva aici.

2. Folosind ID și secret_key din aplicație obținem access_token

access_token- un șir de un anumit număr de caractere care va fi trimis cu Solicitare POST pentru a îndeplini unele funcții. De fapt, este legat de acesta în numele cărui utilizator vom acționa și ce vom putea face.

Pentru a face acest lucru, creați o pagină pe site cu următorul cod:
&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=&response_type=token&v=5.37">Apăsați butonul
$client_id- de fapt, ID-ul aplicației noastre de la punctul 1.

$scop- o listă de drepturi pe care le putem face în numele utilizatorului nostru. Concret, acesta este exact ceea ce este potrivit pentru sarcina noastră: posibilitatea de a accesa în orice moment (offline) și acces la mesaje. Dacă aveți nevoie de mai multe, o listă completă. Puteți seta fie o mască de biți, fie să enumerați numele.

Pe lângă punct acces la informații generale, toate celelalte elemente vor corespunde listei de permisiuni care au fost transmise domeniului. Faceți clic pe următorul și vedeți următoarele:

Acces_token-ul este evidențiat cu roșu, pentru care a fost scris întregul al doilea paragraf.

3. Folosind cereri HTTP, trecând parametri prin POST, trimitem mesaje sau folosim oricare altele metode API

Pentru cei nerăbdători, puteți verifica dacă totul funcționează astfel:

Înlocuiește zerourile de la sfârșit cu ale noastre acces_tokenși urmați acest link în browser.
https://api.vk.com/method/messages.send?user_id=6269901&message=habrahabr&v=5.37&access_token=000000
Ce se va întâmpla:
Mesaj cu text de la parametru mesaj va fi trimis utilizatorului cu specificat ID-ul de utilizator. (Dacă îl lași așa cum este, îmi va veni. Nu mă voi supăra).

Parametrii destinatarului:
  • ID-ul de utilizator- ID utilizator destinatar
  • domeniu- în loc de user_id, puteți specifica numele paginii destinatarului (ce este în url după vk.com)
  • chat_id- mesajul va merge la chat. Pentru a prelua ID-ul de chat, accesați chat-ul dorit, adresa URL va arăta ca vk.com/im?peers=000000&sel=c888. Chat_id-ul nostru va fi 888 (! nu c888)

1C Mesaj pentru utilizator afișează un mesaj utilizatorului (după finalizarea procesării) sau îl salvează într-o coadă dacă mesajul nu poate fi afișat „în acest moment”, de exemplu:
Mesaj = New MessageToUser();
Message.Text = „Bună, lume!”;
Message.Message();

În multe cazuri, mesajele sunt generate în vrac în timpul anumitor procesări. De exemplu, atunci când verificați un tabel mare, multe mesaje de eroare pot apărea în diferite rânduri ale tabelului. Sau la procesarea unei tranzacții. În acest caz, procesarea poate fi efectuată pe server sau într-o sarcină de rutină și este dificil să afișați aceste mesaje.

1C Mesaj pentru utilizator scrie mesaje în coada „unei” și, după finalizarea procesării, le afișează utilizatorului, dacă este posibil. În caz contrar, întreaga listă de mesaje poate fi obținută folosind metoda GetMessagesToUser().

Pentru a afișa un mesaj utilizatorului folosind 1C Message to User într-o formă specifică, deja deschisă, mai trebuie să setați identificatorul formularului:
Message.DestinationIdentifier = Form.UniqueIdentifier;

Pentru ca mesajul 1C Mesaj către utilizator să fie afișat într-o fereastră pop-up lângă un câmp specific al formularului în care este executat codul în modul, trebuie să specificați „calea” către acesta:
Message.Field = „Nume”; //unde Nume este un atribut al formularului
Message.Field = "Object.Name"; //unde Nume este atributul obiectului (adică directorul a cărui formă este editată)
Message.Field = „Produse.Preț”; //unde Produse este partea tabelară a formularului, Prețul este coloana acestei părți tabelare

Pentru a face același lucru, dar într-un modul al altui obiect (modul general), trebuie să specificați suplimentar obiectul (DirectoryObject, DocumentObject etc.):
Message.Field = „Nume”; //unde Nume este atributul DirectoryObject
Message.SetData(DirectoryObject);
//Când dați dublu clic pe un mesaj, formularul obiect se va deschide cu un mesaj pop-up pentru câmpul necesar

O altă modalitate de a asocia un mesaj 1C unui mesaj utilizator cu datele obiectului:
//pentru o carte de referință, document..
Message.DataKey = DirectoryLink;
Message.DataPath = „Obiect”;

//pentru înregistrări
Message.DataKey = RegisterRecordManager.InitialRecordKey; //de obicei, principalul atribut al formei asociat registrului
Message.DataPath = „Înregistrare”;

În configurațiile tipice ale formularelor gestionate pentru un client subțire, de exemplu, „Trade Management, Edition 11” și „Accounting, Edition 3”, modulul General PurposeClientServer conține funcția NotifyUser(), care „universalizează” lucrul cu acest obiect . Sintaxa funcțiilor în diferite configurații este diferită.

Deoarece 1C Message to User generează o listă de mesaje, pentru a o reseta (de exemplu, înainte de a efectua o procesare complexă), puteți apela funcția:
GetMessagesUser(True);

Astăzi vă voi spune despre o nouă funcție interesantă „Mesaje pentru comunitatea VKontakte”. Cu ajutorul acestuia, orice utilizator poate scrie un mesaj administratorului comunității prin mesaje private, iar administratorul, la rândul său, va răspunde în numele comunității.

Pentru a-l activa, accesați „Community Management”. Apoi, setați comutatorul din blocul „Mesaje comunitare” la „Activat”. În plus, puteți adăuga un link separat în coloana din stânga a meniului dvs. VKontakte bifând caseta de selectare „Adăugați în meniul din stânga”. Pentru a salva modificările, faceți clic pe butonul „Salvați” de mai jos.

Acum, după ce ai intrat în comunitate, butonul „Trimite mesaj” ar trebui să apară în coloana din dreapta. Cu ajutorul acestuia, orice utilizator poate trimite un mesaj comunității.

Toate mesajele primite în acest fel vor fi afișate în comunitate și în coloana din stânga.

În viitor, comunicarea are loc cu utilizatorul prin „Mesaje private”, iar cu comunitatea prin „Mesaje comunitare”.

Când treceți cu mouse-ul peste un dialog, corespondența poate fi adăugată la important sau ștearsă complet. Puteți face un mesaj important și în cadrul unei corespondențe.

La ștergere, puteți marca mesajul ca spam sau puteți bloca utilizatorul.

O altă caracteristică importantă este capacitatea de a marca mesajele ca răspuns. Să ne imaginăm o situație în care un utilizator ți-a scris, dar nu poți da un răspuns momentan. Este în regulă, comunitatea are 4 file de mesaje pentru asta.

  • Important - acele mesaje pe care le-ați marcat în dialoguri sau în corespondență;
  • Fără răspuns - acele mesaje care au fost citite, dar din anumite motive nu ați dat niciun răspuns;
  • Necitite - mesaje noi care nu au fost încă citite.

Puteți răspunde la un mesaj în cadrul unei conversații folosind o pictogramă specială deasupra dialogului. Aici puteți adăuga un mesaj la „Important”.

Asta e tot. Sper că această oportunitate vă va fi de folos.

În această lecție vă voi arăta cum descărcați muzică de pe VKontakte folosind extensia de browser de la savefrom.net. Primul pas este instalarea " Asistentul Savefrom.net". Urmați linkul și urmați instrucțiunile pentru a instala extensia pentru browserul dvs. Nu acordați atenție la ceea ce vă spun instrucțiunile despre YouTube. Sarcina noastră este pur și simplu să instalăm asistentul.

În această lecție vă voi spune cum să anulați un vot în VK dacă îl puneți accidental într-un sondaj. Dacă ți-ai dat seama că ai făcut o greșeală și ai dori să revotezi, atunci există mai multe modalități de a rezolva această problemă - folosind site-ul web VKontakte în sine sau folosind un serviciu terță parte. Aceste metode sunt despre care vom vorbi astăzi.

În această lecție vă voi spune cum să puneți o emoticon în starea VKontakte.

Toată lumea face greșeli. Erorile apar și atunci când oamenii interacționează cu interfețele utilizator. Uneori apar din cauza unei erori umane, iar uneori motivul constă în aplicația în sine. Indiferent de motiv, erorile și modul în care le tratați au un impact imens asupra experienței utilizatorului. Mesajele de eroare inutile pot provoca frustrarea utilizatorului și pot găsi un înlocuitor pentru aplicația dvs.

În acest articol, vom analiza cum puteți optimiza pentru a evita erorile utilizatorilor și cum să creați mesaje de eroare eficiente.

Ce este un mesaj de eroare?

Un mesaj de eroare este un ecran care apare atunci când ceva nu merge bine, care împiedică utilizatorul să finalizeze o acțiune dorită. Acesta poate fi orice: operațiuni incompatibile, introducerea incorectă a datelor, incapacitatea aplicației de a se conecta la server etc.

Fiecare eroare, indiferent de motiv, devine o piatră de poticnire pentru utilizatorii dvs. și îi împiedică să interacționeze în continuare cu aplicația. Din fericire, abordarea corectă a problemelor care apar poate ajuta la reducerea acestui obstacol.

Este mai ușor să previi decât să repari

Dacă dezvoltați o aplicație, ar trebui să fiți conștienți de cele mai frecvente interacțiuni care pot duce la erori. De exemplu, este obișnuit să vi se pară dificilă completarea unui formular la prima încercare sau imposibilitatea de sincronizare a datelor din cauza unei conexiuni slabe la rețea. Aceste cazuri trebuie luate în considerare pentru a minimiza erorile. Cu alte cuvinte, este mai bine să le preveniți oferind sfaturi utilizatorului și fiind flexibil.

De exemplu, dacă oferiți un serviciu de căutare și rezervare la hoteluri, ce rost are să faceți datele anterioare disponibile pentru selecție și apoi să afișați un mesaj de eroare?

O soluție înțeleaptă în acest caz este oferită de Booking.com: selectorul lor de interval de date vă permite să selectați doar datele curente sau ulterioare și, prin urmare, nu există nicio modalitate ca o persoană să greșească.

Mesaje de eroare despre introducerea incorectă a datelor

Validarea formularului este necesară pentru a informa utilizatorul despre eventualele inexactități ale datelor pe care le-a introdus. Validarea bună a formularelor conține patru elemente importante:

1. Timpul corect (validare încorporată)

Utilizatorilor chiar nu le place să piardă timpul completând un formular lung și apoi află doar la sfârșit că au făcut o greșeală undeva.

Validarea ar trebui să informeze imediat utilizatorii că informațiile introduse sunt corecte. Principiul principal al validării bunei forme este acesta: Vorbește cu utilizatorii! Spune-le ce nu se întâmplă! Acest lucru îi va ajuta să reducă timpul necesar pentru a corecta erorile.

2. Locul potrivit

Mesajele dvs. trebuie plasate întotdeauna în contextul acțiunii. Dacă doriți să informați utilizatorul că a apărut o eroare într-un anumit câmp, afișați un mesaj lângă acel câmp - de preferință în dreapta acestuia sau, dacă acest lucru nu este posibil, chiar sub acesta.

Exemplu din stânga: informațiile introduse nu au fost verificate în timp util, mesajul de eroare este în afara contextului și nu oferă nicio îndrumare utilizatorului
Exemplu din dreapta: Mesajele informează utilizatorul despre anumite inexactități ale datelor pe care le-a introdus, prezentate în context și în timp real

3. Culoare potrivită (design intuitiv)

Culoarea este unul dintre cele mai bune instrumente atunci când proiectați mesaje de eroare, deoarece funcționează la nivel instinctiv. Utilizarea roșu pentru mesajele de eroare, galben pentru mesajele de avertizare și verde pentru mesajele de succes este incredibil de puternică. Cu toate acestea, asigurați-vă că culorile interfeței digitale sunt accesibile utilizatorilor. Acesta este un aspect important al unui design vizual bun.

4. Ștergeți mesajul

Mesajul dvs. de eroare ar trebui să spună clar utilizatorului ce este exact în neregulă și ce trebuie să remedieze. Adică, în loc să afișați mesajul „e-mail invalid”, ar trebui să clarificați exact ce este greșit: a fost o greșeală de tipar, acest e-mail este deja preluat etc. Apoi trebuie să oferiți opțiunile utilizatorului (autentificare sau recuperarea parolei).

Erori de aplicație

Acum vom vorbi despre erori care apar fără intervenția utilizatorului. De exemplu, atunci când conexiunea la Internet este pierdută, iar utilizatorul în acel moment se află pe un ecran care este disponibil doar în modul online. În aceste situații, trebuie să clarificați din nou ce s-a întâmplat și ce pași trebuie luați în continuare.

Nu ar trebui să afișați niciodată mesaje ca acesta:

1. Mesaj „Codificat”. Mesajele care conțin coduri interne de eroare ale aplicației sau abrevieri de neînțeles nu spun nimic utilizatorilor, ci doar îi sperie.

Acest mesaj de eroare a fost scris de un dezvoltator pentru un dezvoltator: „Operația nu a putut fi finalizată (WDGeneralNetworkError 500)”

2. Mesaj de blocare. Astfel de mesaje nu furnizează nicio informație utilă utilizatorilor.

3. Mesaj abstract. Mesajul din exemplul de mai jos oferă utilizatorilor exact aceeași cantitate de informații ca în cazul precedent. Nu este clar ce înseamnă și ce trebuie făcut în continuare.

Nu vă așteptați ca oamenii să înțeleagă contextul mesajului sau că sunt pricepuți din punct de vedere tehnic. Vorbește într-un limbaj simplu pentru ei, evitând jargonul.

Mesajul dvs. de eroare ar trebui să comunice clar într-un limbaj ușor de utilizat:

  • Ce a mers prost și din ce posibil motiv
  • Ce ar trebui să facă utilizatorul pentru a remedia această eroare?

Mesajele de eroare sunt o oportunitate excelentă de a folosi pictograme și ilustrații, deoarece oamenii răspund mai bine la informațiile vizuale decât la textul simplu. Aceasta este o modalitate bună de a vă umaniza aplicația și de a-i oferi o notă personală. În plus, umorul va ajuta la distragerea atenției utilizatorului de la disconfortul cauzat de eroare.

Când apare o eroare în aplicația Basecamp din cauza introducerii incorecte a informațiilor, eroul situat în partea stângă a ecranului apare cu o expresie surprinsă pe față:

În Gmail, atunci când creați un cont nou, este posibil să întâlniți acest mesaj de eroare.