1s 8.3 iskačuća poruka korisniku. Obavijest o statusu procesa

U programima na platformi 1C:Enterprise, poruka se može prikazati korisniku na različite načine.

1. Metoda ShowWarning.

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

Kada koristite ovaj dizajn, u centru sučelja programa pojavljuje se prozor upozorenja.

Opcije:

Opis Kompletna upozorenja(opciono)
Vrsta: Opis upozorenja. Sadrži opis procedure koja će biti pozvana nakon zatvaranja prozora upozorenja sa sljedećim parametrima: Dodatni parametri - vrijednost koja je navedena prilikom kreiranja objekta Opis upozorenja. Ako parametar nije specificiran, po završetku neće biti pozvana nijedna procedura.

Tekst upozorenja(obavezno)
Tip: String; FormattedString. Tekst upozorenja.

Istek (opcionalno)
Tip: Broj. Vremenski interval u sekundama tokom kojeg će sistem čekati na odgovor korisnika. Kada interval istekne, prozor upozorenja će se zatvoriti. Ako parametar nije naveden, tada je vrijeme čekanja neograničeno. Ako je parametar negativan, bit će izbačen izuzetak. Zadana vrijednost: 0.

Naslov (opcionalno)
Vrsta: String. Sadrži naslov prozora upozorenja. Opis: Prikazuje prozor upozorenja, ali ne čeka da se zatvori.

Dostupnost: Tanki klijent, web klijent, debeli klijent, mobilna aplikacija (klijent).

Napomena: Ako se bilo koji kod mora izvršiti nakon što korisnik zatvori prozor upozorenja, on se mora staviti u posebnu proceduru modula i opisati u parametru.

2. Metoda Upozorenje.

U centru programskog interfejsa pojavljuje se prozor upozorenja. Međutim, ako je konfiguracijsko svojstvo Način korištenjaModaliteta je postavljeno na Ne koristi , tada metoda ne radi.

Dostupnost: Tanki klijent, web klijent, mobilni klijent, debeli klijent, mobilna aplikacija (klijent).

3. Metoda ShowUserAlert.

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

Kada koristite ovu metodu, u donjem desnom uglu interfejsa pojavljuje se poruka.

Dostupnost: Tanki klijent, web klijent, debeli klijent.

4. Metoda izvještaja.

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

Dostupnost: Tanki klijent, web klijent, mobilni klijent, server, debeli klijent, eksterna veza, mobilna aplikacija (klijent), mobilna aplikacija (server).

5. Objekt Poruka korisniku.

Dizajniran za pohranjivanje parametara poruke koje je potrebno prikazati korisniku. Ako poruka još nije prikazana korisniku (ovo se može dogoditi kada radite na strani servera, u pozadinski posao, eksterna veza ili Web usluge), možete dobiti akumulirane poruke koristeći metodu Primanje poruka korisniku.

Svojstva: ID odredišta(TargetID); DataKey; Polje; DataPath(DataPath); Tekst.

Metode: Poruka; SetData(SetData).

Poruka se pojavljuje na dnu interfejsa, u liniji.

Poruka = ​​New MessageToUser(); Poruka. Tekst = "Nema dovoljno nomenklature"; Poruka. Polje = "Nomenklatura. Količina"; Poruka. SetData(DataObject) ; Poruka. Prijaviti() ;

Razvoj je dizajniran da obavještava korisnike, kako selektivno tako i sve, također možete jednostavno pisati poruke ili voditi prepisku između korisnika.

Razvoj je registar informacija i promjena u modulu upravljane ili redovne aplikacije.
Da biste pokrenuli upozorenje, morate dodati unos u registar informacija, korisnici će primati obavještenja tokom određenog perioda između početka i kraja vremena obavještenja.

MANAGED APPLICATION

REDOVNA PRIMJENA

Prikazan je prozor upozorenja u korisničkom programu blokira cijeli interfejs i korisnici koji rade u ovog trenutka program neće propustiti obavještenje i pročitat će ga u skladu s tim.

MANAGED APPLICATION

REDOVNA PRIMJENA

Registrirajte listu

Na listi obavještenja možete vidjeti ko je primio obavještenje i ko ga je pročitao.

MANAGED APPLICATION

REDOVNA PRIMJENA

Da biste implementirali razvoj u svoju konfiguraciju, morate:

  1. Postavite mogućnost uređivanja konfiguracije.
  2. Uporedite sa konfiguracijom datom u ovoj publikaciji. Dodat će se registar informacija "Upozorenja korisnika" i unos u redovni ili upravljani modul aplikacije, ovisno o primarnom načinu pokretanja aplikacije.

    Redovni ili upravljani unos modula aplikacije razlikuje se:

    MANAGED APPLICATION

Procedura kada se sistem pokrene() //Izmjena standardne konfiguracije za obavještavanje korisnika programa (slanje poruke bilo kojem korisniku) //Pogodno za sve konfiguracije ConnectWaitingHandler("modNotificationProcessingHandler", 60); Kraj procedure // Kada se sistem pokrene () // Modifikacija standardne konfiguracije za obavještavanje korisnika o programu (slanje poruke bilo kojem korisniku) // Pogodno za sve konfiguracije // Pozivanje rukovatelja čekanja nastavlja se dok se obrazac ne zatvori // ili dok se metoda obrasca ne pozove Procedure modNotificationProcessingHandler( ) Izvezi poruku u korisnika = GetForm("Informacijski registar.User Alerts.Form.ControlSubmissionForm").GetNotificationProcessingMessages(); Ako nije MessageToUser = Undefined, onda Form = GetForm("InformationRegister.User Alerts.Form.AlertControl"); Ako nije Form.Open() onda FillPropertyValues(Form,MessageToUser,"ViewOnly"); Form.Open(); Else Form.Activate(); endIf; endIf; Kraj procedure Procedura REDOVNE APLIKACIJE kada se sistem pokrene() //Izmjena standardne konfiguracije za obavještavanje korisnika programa (slanje poruke bilo kojem korisniku) //Pogodno za sve konfiguracije ConnectWaitingHandler("modNotificationProcessingHandler", 60); Kraj procedure // Kada se sistem pokrene () // Modifikacija standardne konfiguracije za obavještavanje korisnika o programu (slanje poruke bilo kojem korisniku) // Pogodno za sve konfiguracije // Pozivanje rukovatelja čekanja nastavlja se dok se obrazac ne zatvori // ili dok se metoda forme ne pozove Procedura modNotificationProcessingHandler( ) Izvezi poruku korisniku = Information Registers.User Alerts.GetNotificationProcessingMessages(); Ako nije MessageToUser = Undefined, onda Form = GetForm("InformationRegister.User Alerts.Form.AlertUsual"); Ako nije Form.Open() onda FillPropertyValues(Form,MessageToUser,"ViewOnly"); Form.OpenModal(); Else Form.Activate(); endIf; endIf; Kraj procedure

Implementacija razvoja je besplatna i završava se u roku od 10 minuta.

Besplatna tehnička podrška 30 dana.
IN

Razvoj je namijenjen za platformu 8.3, različite standardne i nestandardne konfiguracije, u modovima tankog, debelog klijenta i web klijenta.

Moguća je samostalna modifikacija, kod je otvoren za uređivanje.

Razlozi za kupovinu

Vrlo zgodna opcija za upozorenje, obavještavanje korisnika 1C o tome tehnički rad, modifikacije konfiguracija, ažuriranja, mogućnost korespondencije između 1C korisnika u okviru 1. programa.

Prednosti

1) 100% isporuka upozorenja svim korisnicima, za razliku od analognih.
2) Mogućnost slanja slika.
3) Pogledajte aktivnosti korisnika u listi poruka (ko je dostavljen, ko je pročitao).
4) Mogućnost pisanja odgovora osobi koja je poslala obavještenje.
5) Ne utiče na druge objekte prilikom ažuriranja konfiguracija sa instaliranom opcijom za uređivanje.

Garancija povrata novca

Infostart LLC Vam garantuje 100% povrat novca ukoliko program ne odgovara deklariranoj funkcionalnosti iz opisa. Novac se može vratiti u cijelosti ako to zatražite u roku od 14 dana od dana prijema novca na naš račun.

Program je toliko dokazano funkcionira da možemo dati takvu garanciju s potpunim povjerenjem. Želimo da svi naši kupci budu zadovoljni kupovinom.

Tokom lekcije smo: kreirali bazu, kreirali obradu, kreirali formu.

Sada ćemo vam reći 5 metoda poruka od 1C "Zdravo, svijet!"

Ne znaju svi za barem dvije metode :)

Kako i gdje napisati programski tekst?

Prebacite se na karticu prozora sa formom „Modul“. Uvjerit ćete se da tamo već imate neki tekst (“Procedura…”).

Ako nema teksta, onda:

  • U debelom klijentu ste pogrešno dodali obrazac u obradu, ponovite od početka
  • IN tanki klijent Zaboravili ste da dodate dugme, pokušajte ponovo od početka.

Unutar teksta nalazi se red:

// Ubacite sadržaj rukovaoca

Vaš zadatak je da obrišete ovu liniju i na njeno mjesto unesete tekst programa. Nakon toga, sačuvajte obradu i otvorite je u režimu preduzeća.

Kada kliknete na Izvrši, radnje koje ste unijeli će se sada izvršiti.

Sada pređimo na same metode!

Poruka u 1C, metod 1 - najlakši

Stoga biste trebali umjesto teksta “// Umetnite sadržaj rukovaoca.” napisati tekst programa.

Report("Zdravo svijet!");

Zapravo to je sve :)

Poruka u Enterprise modu u debelom klijentu bit će na dnu prozora 1C, u tankom klijentu - desno u prozoru za obradu.

Ovo je najjednostavniji metod, koji programeri vrlo široko koriste.

Poruka u 1C, metod 2 - također jednostavan

Alert("Zdravo svijet!");

Zapravo to je sve :)

Poruka u Enterprise modu u obje klijentske opcije bit će u iskačućem prozoru.

Poruka u 1C, metod 3 - pojavila se samo u 1C verziji 8.2

ShowUserAlert("Zdravo, svijet!","Zdravo zaista!");

Ova metoda se pojavila samo u 1C verziji 8.2. Ovo je iskačući prozor u donjem desnom uglu ekrana koji vremenom nestaje.

Poruka u 1C, metod 4 - programer

Dobaci izuzetak "Zdravo, svet!";

Može doći do greške prilikom izvršavanja bilo kojeg programa. Ponekad se ova greška može izračunati unaprijed (na primjer, potrebno je izračunati a = b/c i u trenutku izvršavanja programa postaje poznato da je c jednako 0).

U ovom slučaju postoji način da se greška prijavi pomoću ove metode.

Poruka u 1C, metod 5 - tehnološki napredan, samo za standardnu ​​konfiguraciju

General Purpose.ReportError("Zdravo, svijet!");

1C programer mora poznavati ne samo one metode programiranja koje su u 1C platformi, već i one koje su u tipične konfiguracije.

Početnici, kada pokušavaju da dodaju bilo koju standardnu ​​konfiguraciju, počinju ponovo izmišljati točak.

Evo savršenog primjera. Ova funkcija je prisutna u mnogim standardnim konfiguracijama (samo debeli klijent!). Čini se da je rezultat jednak djelovanju metode 1.
Međutim, ne - u nekim konfiguracijama (na primjer soft starter), poruke o greškama se dupliraju u dnevniku. Takođe kada dodatna podešavanja poruka izgleda potpuno drugačije.

Dakle, sada se možete osjećati kao pravi programer!

To je upravo ono što je 1C programiranje. Naravno, pravo programiranje je mnogo složenije i zahtijeva puno znanja, ali sada imate opštu ideju.

Sretno!

P.S. IN pdf verzije Lekcija sadrži snimke ekrana kako bi vam bilo lakše napraviti vlastito iskustvo.

P.P.S. Lekcija uključuje 5 videa sa primjerima kreiranja baze za programiranje, kreiranja obrade, programiranja u debelom i tankom klijentu.

Implementirano u verziji 8.3.10.2168.

Poboljšali smo mehanizam obavještavanja korisnika. Sada je podjednako zgodno koristiti i u tankom i u web klijentu. Promenili smo se izgled obavještenja i dodao im niz novih funkcija.

Prikaži više upozorenja

U staroj implementaciji, samo jedno upozorenje je bilo prikazano na ekranu istovremeno. Novo upozorenje se preklapalo s prethodnim. Dakle, ako bi se u nizu prikazalo nekoliko upozorenja, postojala je velika vjerovatnoća da korisnik neće imati vremena pročitati prethodno upozorenje, jer bi ono bilo pokriveno sljedećim.

Sada, u većini slučajeva, do tri upozorenja mogu biti prikazana istovremeno:

Ovo vrijedi za tanki klijent, debeli klijent i web klijent koji se izvodi u pretraživačima Internet Explorer I google chrome . Pregledači Safari I Mozilla Firefox omogućavaju vam da prikažete neograničen broj upozorenja i pretraživač Microsoft Edge prikazuje jedno posljednje upozorenje, ali sadrži Akcioni centar, u koji se dupliraju sva upozorenja.

Prikaz upozorenja kada je prozor aplikacije neaktivan

Ranije, u web klijentu, upozorenja su se prikazivala samo u aktivnom prozoru pretraživača. Ako je korisnik prešao na drugi prozor ili drugu aplikaciju, nije vidio upozorenje. Sada, kada koristite web klijent, obavijesti se prikazuju na ekranu čak i kada je prozor aplikacije minimiziran ili neaktivan.

Kada se metoda prvi put pozove ShowUserAlert() u web klijentu google chrome, Mozilla Firefox I Safari Pregledač će od korisnika tražiti dozvolu za korištenje obavještenja. Korisnik može dozvoliti njihov izlaz za ovu aplikaciju, ili zabraniti.

Ako korisnik onemogući prikaz obavještenja, tada će se koristiti novi tip obavještenja, ali će se prikazivati ​​unutar prozora pretraživača.

Centar za upozorenje

Kako bismo spriječili da obavijesti zauvijek nestanu, implementirali smo centar za uzbunu. A za sama upozorenja implementirali smo novo svojstvo - Status upozorenja korisnika. Može imati dva značenja: Informacije I Bitan.

Upozorenja sa statusom Informacije se prikazuju na ekranu i nestaju nakon 10 sekundi (u pretraživaču Microsoft Edge– nakon 4 sekunde). Upozorenja sa statusom Bitan ponašaju se potpuno isto, ali se čuvaju u centru za upozorenje.

Centru za upozorenje se može pristupiti sa trake sa alatkama. Činjenica da postoje nova važna upozorenja označena je narandžastom tačkom pored njene ikone.

Centar za upozorenje prikazuje važna upozorenja na koja korisnik još nije odgovorio zatvaranjem ili poduzimanjem radnje u vezi s upozorenjem. Upozorenja su navedena redoslijedom kojim se pojavljuju, s najnovijim na vrhu. Na ovaj način, čak i ako korisnik napusti računar, neće propustiti važna obavještenja.

Upozorenje se može ukloniti sa liste pomoću dugmeta za brisanje. Ako postoji neka radnja povezana s upozorenjem, nakon klika na tekst upozorenja, ona će također nestati. Tim Obriši upozorenja uklanja sva upozorenja sa liste. Međutim, ako su akcije povezane s upozorenjima, one se ne izvršavaju.

Izvršite radnje kada se pritisne

U staroj implementaciji, jedina radnja koju ste mogli izvršiti kada kliknete na upozorenje je klik na vezu za navigaciju. On je proslijeđen metodi kao drugi parametar.

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

Sada smo proširili mogućnosti upozorenja, a u drugom parametru možete proslijediti ne samo string sa navigacijskom vezom, već i opis upozorenja.

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

Opis upozorenja ukazuje na proceduru koju treba izvršiti kada se klikne na upozorenje.

Izgled

U tankom klijentu u opciji interfejsa Taksi stil obavještenja će biti što je moguće bliži stilu obavještenja pretraživača google chrome koristeći API za obavijesti.


Ako se koristi opcija interfejsa Verzija 8.2, tada stil upozorenja i ponašanje ostaju isti.

U web klijentu izgled upozorenja određuje pretraživač koji se koristi. Uglavnom, upozorenja će izgledati isto kao u tankom klijentu, ali svaki pretraživač ima svoje karakteristike. Na primjer, možete uporediti kako će se ista upozorenja prikazivati Internet Explorer I Mozilla Firefox.


Osim ove, postoje i druge karakteristike. Na primjer, u pretraživaču Internet Explorer Podržana su samo upozorenja koja se prikazuju unutar prozora aplikacije. I u pretraživaču Safari parametar Slika nije podržano i upozorenja se prikazuju na vrhu ekrana.

Članak nastavlja seriju članaka "Prvi koraci u razvoju na 1C".

U njemu ćemo se osvrnuti na metode informiranja korisnika koji su prisutni na platformi 1C:Enterprise 8, a također ćemo vam usmjeriti pažnju na neke karakteristike rada ovih mehanizama; ove karakteristike se odnose na način korištenja modaliteta .

Primjenjivost

U članku se govori o funkcionalnosti:

  • Interfejs u verziji "Verzija 8.2" za konfiguraciju razvijenu na platformi 1C:Enterprise 8.2.19.130
  • Taksi interfejs za konfiguraciju razvijen na platformi 1C:Enterprise 8.3.4.496 do 8.3.9+
  • Taksi interfejs za konfiguraciju razvijenu na platformi 1C:Enterprise 8.3.10-8.3.11

Kako prikazati poruku korisniku u 1C

Prikazivanje poruka u korisničkom načinu rješava brojne probleme:

  • odraz napretka trenutnog procesa (prikazivanje faze izvršenja procesa; prikaz izračunatih vrednosti ​​dobijenih tokom rada algoritma);
  • prikazivanje grešaka korisniku radi eventualnog ispravljanja;
  • izdavanje preporuka;

Vrste poruka:

  • Terminatori, koji zaustavljaju izvršavanje programa i ne dozvoljavaju mu da se nastavi dok korisnik ne pročita ovu poruku i izvrši određene radnje. Na primjer, korisniku će se na ekranu prikazati pitanje na koje će trebati odgovoriti da ili ne. Dok korisnik ne odgovori, program se ne izvršava dalje radnje;
  • uvodne poruke koje se jednostavno prikazuju korisniku i omogućavaju dalji rad (tj. koriste se u režimu upozorenja).

Završne poruke trebaju biti poruke o grešci, a uvodne poruke: preporuke, poruke o trenutnoj fazi procesa i prikaz izračunatih vrijednosti (debug print).

Uvodne poruke imaju za cilj da pruže korisniku neke informacije.

Neophodno je da se korisnik upozna sa tim i, eventualno, preduzme neke radnje koje su opisane u ovoj poruci.

Veoma je važno da korisnik zaista pročita ove poruke, tako da one treba da sadrže samo važne informacije.

Poruke za testiranje i otklanjanje grešaka ne bi trebalo da se izdaju korisniku, jer prije ili kasnije će početi da ignoriše apsolutno sve poruke.

U konceptu upravljanog interfejsa, pristup izdavanju poruke se donekle promenio. Sada je vezan za oblik u kojem je nastao. Više se ne može zatvoriti tako da je tekst potpuno nevidljiv.

Ne možete otkačiti okvir za poruku sa obrasca.

Sintaksa funkcije:

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

One. prvi parametar je sam tekst.

Drugi parametar (status poruke) nije obavezan. Možete odrediti vrijednosti za status: Normalno, Bitan, Veoma važno itd.

Od datu vrijednost zavisi od toga koja će se ikona nalaziti pored poruke. Međutim, ovo radi samo u normalnom interfejsu.

U konceptu upravljanog interfejsa, ikona je uvek u formi uzvičnik, ne može se redefinisati.

Činjenica je da ako se poruka generira u vrijeme pisanja elementa direktorija, može doći do sljedeće situacije.

Korisnik klikne na dugme Sačuvaj i zatvori, u ovom slučaju poruka se prikazuje u odgovarajućem prozoru (desno na obrascu).

Ali obrazac se trenutno zatvara i korisnik neće vidjeti da su mu prikazane nikakve informacije.

Stoga se u konceptu upravljane aplikacije preporučuje prikazivanje uvodnih poruka pomoću tzv. upozorenja. Primjer nepravilne upotrebe funkcije Prijaviti prikazano na slici.

Međutim, funkcija Prijaviti može se koristiti za prikaz informacija o određenim greškama, na primjer, u vrijeme objavljivanja dokumenta.

U tom slučaju sistem može biti obaviješten da obrazac ne treba zatvarati i pokazati korisniku koje greške se javljaju prilikom objavljivanja dokumenta.

Funkcija Prijaviti u potpunosti podržan u Platformi 8.3. Može se koristiti i radit će (i u verziji datoteke iu verziji klijent-server).

Ali također treba napomenuti da je funkcija Prijaviti Postoji daljnji razvoj - ovo je klasa poruka za korisnika, koja omogućava, osim prikazivanja poruke, da je kontekstualno veže za bilo koji element forme.

Na primjer, poruka o grešci može biti vezana za element obrasca, što je korisniku vrlo jasno. Vratit ćemo se na ovo pitanje malo kasnije. Funkcija Prijaviti postoji zanimljiva karakteristika.

Tako se programski kod u Platformi 8.3 može izvršiti i na strani klijenta i na strani servera.

U ovom slučaju, programski kod klijenta je odgovoran za interakciju sa korisnikom, tj. Na strani klijenta otvaraju se obrasci i prikazuju se izvještaji.

Različiti dijaloški dokumenti se također prikazuju samo na klijentu. Ne mogu se izvršiti na serveru jer server nema mogućnost interakcije s korisnicima.

Ali funkcija Prijaviti može se izvršiti i na strani klijenta i na strani servera. U ovom slučaju, upotreba metode Prijaviti na serveru uopšte ne znači da će poruka biti prikazana na serveru, jednostavno ih nema gde da se prikaže.

To znači da ako ovom metodom prikažemo poruku u serverskoj proceduri, one će se akumulirati u nekom baferu i biće prikazane na ekranu tek kada se serverska procedura završi i vrati klijentu.

U ovom trenutku, sistem će zatražiti podatke iz bafera i prikazati ih na ekranu.

Ista karakteristika vrijedi i za klasu Poruka korisniku. Na slici je prikazan primjer korištenja metode Prijaviti na strani servera.

Kao rezultat korištenja metode Prijaviti na strani servera, poruke su bile prikazane na ekranu na strani klijenta.

Potreban je mehanizam upozorenja kako bi se korisnik obavijestio da se „nešto“ dogodilo u sistemu i da „nešto“ zahtijeva pažnju korisnika. Upozorenja se generiraju prema dva scenarija:

  1. Sama platforma prilikom interaktivnog snimanja ili promjene objekta
  2. Od strane programera prilikom pozivanja metode u kodu .

Sama obavijest je mali prozor koji se po pravilu pojavljuje u donjem desnom kutu i obavještava o obavljenoj radnji. U roku od nekoliko sekundi postepeno nestaje i nestaje. U isto vrijeme, ako zadržite pokazivač miša iznad obavijesti, ona neće nestati i možete je pažljivo pročitati.

Osim toga, upozorenjima se može pristupiti u odgovarajućem području informativnog panela (dugme “History” u donjem lijevom dijelu obrasca za prijavu u opciji sučelja “Verzija 8.2”).

Da biste kreirali vlastita upozorenja, morate koristiti metodu globalnog konteksta ShowUserAlert(). Njegova sintaksa prije verzije 8.3.10 je predstavljena u nastavku:

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

Prvi parametar sadrži tekst koji će biti prikazan u obavijesti.

Zatim, kao drugi parametar, možete proslijediti određenu navigacijsku vezu elementu baza informacija(element koji odgovara tekstu naše poruke). Kada korisnik klikne na upozorenje, veza će biti praćena.

Pomoću trećeg parametra možete prenijeti objašnjenje za poruku, tj. neki prošireni opis.

Takođe možete dodeliti sliku koja prikazuje status obaveštenja.

Treba napomenuti da su svi ovi parametri opcioni. Ispod je primjer korištenja ovu metodu(u konfiguratoru iu korisničkom modu u opciji sučelja “Verzija 8.2”).

U verziji platforme 8.3.10.216 za „Taxi“ interfejs, mehanizam obaveštenja je značajno poboljšan kako bi se poboljšala upotrebljivost i tankih i web klijenata. Iz tog razloga, parametri proslijeđeni metodi su također promijenjeni ShowUserAlert(). Sada sintaksa izgleda ovako:

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

Može se vidjeti da je drugi parametar, prethodno pozvan Navigacijski link, dobio je novo ime ActionWhenClicked. To je zbog činjenice da je sada moguće poslati ne samo string sa vezom za navigaciju, već i opis upozorenja. Ovo je ilustrovano na slici ispod:

Kao što se može vidjeti iz primjera, sada imamo mogućnost programske obrade klika na prozor obavijesti, prema logici koja je neophodna.

Sljedeći parametar Status upozorenja korisnika pojavio po prvi put. Označava status upozorenja (Informacija ili Važno).

U slučaju opcije Važno, ako korisnik nije odgovorio na poruku, nakon što je skrivena sa ekrana, može se pročitati kroz Centar za obavještavanje (više o tome u nastavku). U slučaju opcije Informacije, obavještenje se briše bez pohranjivanja u ovom centru. Prepišimo kod iz našeg primjera kao u nastavku:

Nakon izvršenja naredbe, dobijamo otprilike ovakav prikaz prozora aplikacije:

Na traci sa alatkama se pojavilo dugme sa ikonicom zvona, koje poziva gore pomenuti centar za obaveštavanje. Akumulira nova važna upozorenja na koja korisnik još nije odgovorio.

Ako u Centru postoje neka upozorenja, pored nje se pojavljuje mala narandžasta tačka kako bi privukla pažnju korisnika. Korisnik može otvoriti Centar za obavještavanje, pročitati tekst i po potrebi poduzeti neke radnje.

Iz Centra, upozorenje se briše klikom na dugme za brisanje, ali ako postoji neka radnja povezana sa upozorenjem, onda čim korisnik klikne na tekst poruke, i ona će nestati.

I konačno, posljednji dodan parametar je bio Ključ jedinstvenosti. Možete ga koristiti da pronađete upozorenje prikazano na ekranu i promijenite ga. Ako nema upozorenja sa ovim parametrom, biće prikazano novo upozorenje.

Kao što vidite, mogućnosti koje pruža odgovarajuća metoda su postale još veće! Ali to nisu sve promjene u mehanizmu obavještavanja.

Kao što ste možda već primijetili, njihov izgled se promijenio. Upozorenja sada izgledaju modernije i ergonomskije, ali se ne mogu pomicati po ekranu ili mijenjati veličinu. Imajte na umu da u našem primjeru tekst obavijesti jednostavno nije stao u potpunosti u sam prozor, a korisnik će ga u cijelosti moći pročitati samo otvaranjem Centra za obavještenja. Stoga ne biste trebali pisati veliku količinu teksta u tekstu obavijesti.

Nove karakteristike takođe uključuju istovremeni prikaz do tri upozorenja na ekranu.

Ovim završavamo naše upoznavanje sa softverskim generisanjem upozorenja. Međutim, zapamtite da upozorenja ne generiše samo programer programski, već i sama platforma u vrijeme interaktivnog snimanja ili promjene objekta. I često ova činjenica izaziva nerazumijevanje prvenstveno među korisnicima početnicima: zašto su potrebna ova upozorenja usluge, koja se, inače, ne mogu onemogućiti?

Zamislimo ovu jednostavnu situaciju: korisnik je postavio filter na nekoj listi radi praktičnosti. Recimo da je to uradio u obliku liste u imeniku Nomenklature. Onda sam, nakon nekog vremena, odlučio da se predstavim novi element sa nazivom "Chair", koji ne odgovara prethodno instaliranom filteru. Unosi ga, zapisuje i...? I on to ne vidi na listi. Šta će učiniti prosječan korisnik? Naravno, ući će u njega po drugi put, ali ga više neće vidjeti. Nakon toga može uslijediti treći, četvrti, peti put. Kada mu dosadi da stalno iznova ulazi u istu stvar, konačno će vas pitati: kuda sve ide?

Upravo zbog toga platforma prikazuje ova servisna upozorenja, obavještavajući korisnika da je njihova radnja završena. U našem primjeru, u trenutku interaktivnog snimanja, korisnik će vidjeti sljedeću obavijest:

Poruke o prekidu

Poruke o prekidu su one poruke koje neće dozvoliti rad dok korisnik ne izvrši određene radnje, tj. dok ne obradi poruku.

O mogućnosti korištenja poruka o prekidu u Platformi 8.3 ćemo govoriti nešto kasnije (u U poslednje vreme Trude se da ih ne koriste, pa je razmatrani primjer relevantniji za Platformu 8.2).

Postoje dva načina za izdavanje poruka o prekidu Upozorenje I Pitanje. Upozorenje razlikuje se od Pitanje jer ima jedno dugme uredu.

Pitanje može specificirati različite skupove opcija odgovora ( Ne baš, DaNeOtkaži, uredu, OKCancel, RepeatCancel, AbortRepeatSkip), koji su specificirani pomoću parametra.

Prikažimo neko upozorenje pomoću linije (na primjer, u modulu upravljane aplikacije):

Upozorenje(“Baza će sada biti otvorena”);

Za otvaranje modula upravljane aplikacije, odaberite objekt u stablu konfiguracije Konfiguracija, pozovite kontekstni meni i izaberite stavku Otvorite modul upravljane aplikacije.

U tom slučaju, kada se aplikacija pokrene, prikazat će se modalni prozor. Modalni prozor preklapa sve prozore koji postoje u aplikaciji. Dok ne obradimo ovaj prozor, dalje radnje nisu moguće.

Funkcija radi na sličan način Pitanje.

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

Potrebna su samo prva dva parametra. Za drugi parametar, tip podataka je kompozitni ( Dialogue ModeQuestion ili ListValues). Treći parametar ( <Таймаут> ) karakteriše vremenski interval u sekundama tokom kojeg će sistem čekati na odgovor korisnika.

Kada interval istekne, prozor sa pitanjem će biti zatvoren. Sličan parametar ( <Таймаут> ) je također dostupan za funkciju Upozorenje.

Kao primjer korištenja funkcije Pitanje Možete koristiti sljedeći kod, napisan u modulu upravljane aplikacije:

Imajte na umu da ove metode ( Upozorenje I Pitanje) nisu dostupni na serveru. I to je logično, jer metode interfejsa ne mogu da se izvrše na serveru gde nema korisnika.

Karakteristike upotrebe modalni prozori u Platformi 8.3

U platformi 8.3 postoje načini rada sa i bez modaliteta. Podrazumevana postavka je Ne koristi modalitet.

U ovom slučaju korištenje poruka o prekidu je nemoguće. Ako je potrebno koristiti prekidne poruke (funkcije Upozorenje I Pitanje) trebali biste promijeniti vrijednost svojstva konfiguracije on Koristi.

Modalni prozor se prikazuje na samom vrhu i blokira rad s drugim prozorima dok se radnje s modalnim prozorom ne završe. Osim toga, izvršenje se zaustavlja programski kod na mjestu gdje se ovaj prozor zove. Izvršavanje koda će se nastaviti tek nakon što se modalni prozor zatvori.

Prvo, problemi s korištenjem modalnih prozora nastaju za mobilna aplikacija. Drugo, u pretraživaču se modalitet prozora implementira pomoću zasebnih iskačućih prozora.

Iskačući prozori su često onemogućeni zadanim postavkama pretraživača. Korisnik mora biti primoran da postavi dozvolu za ove prozore.

Pregledači za tablet računari a za telefone u većini slučajeva uopće ne podržavaju iskačuće prozore.

Za zamjenu funkcija Pitanje I Upozorenje razvijene su nove metode: ShowQuestion, ShowWarning.

Ove metode vam omogućavaju da pozovete prozor, ali ne zaustavljaju izvršavanje programskog koda. Tehnički, ovo se postiže formiranjem pseudo-prozora unutar roditeljskog prozora. Pseudo-prozor se ne preklapa sa roditeljskim prozorom. Nakon otvaranja takvog prozora, kod nastavlja da se izvršava.

Prijem i obrada vrijednosti koje je unio korisnik vrši se u posebnoj proceduri, koja se poziva kada se dijaloški okvir zatvori.

Sintaksa funkcije ShowWarning:

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

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

Vrsta podataka: DescriptionAlerts.

Sadrži opis procedure koja će biti pozvana nakon zatvaranja prozora upozorenja.

Sintaksa funkcije ShowQuestion:

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

Prva tri parametra su obavezna.

Ispod je primjer korištenja funkcije.

Class MessageToUser

Osnovna pogodnost klase poruka Poruka korisniku je da je ovo kontekstualna poruka (za razliku od metoda Upozorenje I Pitanje).

Poruke se mogu vezati za određeni element ekrana. Ovaj objekat je takođe dostupan na serveru.

Treba napomenuti da, kao prvo, ovaj objekat treba kreirati. Na primjer: Poruka = ​​New MessageToUser;

Tako kreiramo instancu ovog objekta.

Drugo, potrebno je da navedete tekst poruke u posebnom svojstvu.

Treće, u imanju Polje možete odrediti koji element forme ovu poruku mora biti vezan.

Pažnja! Da biste se povezali sa željenim poljem obrasca, obratite pažnju na inicijalizaciju svojstava PathToData I DataKey. Za dokument, kada postavljate kod u objektni modul, možete napisati:

Message.DataPath = “Objekat”;
Message.DataKey = ThisObject.Link;

Da biste otvorili modul dokumenta, u prozoru za uređivanje objekta (dokumenta) idite na karticu Ostalo pritisnite dugme Objektni modul.

Za eksperiment ćemo postaviti kod u objektni modul dokumenta.

Ispod je rezultat dobiven u korisničkom modu za Platformu 8.3.

Treba napomenuti da poruke izlaze koristeći novi sistemski objekt Poruka korisniku u opštem slučaju ne prestaju. One. sistem će omogućiti korisniku da nastavi dalje radnje bez odgovaranja na prikazane poruke.

Ali, kao prvo, ove poruke su prilično uočljive. Drugo, poruke se obično prikazuju korisniku u trenutku snimanja elemenata imenika ili knjiženja dokumenata, odnosno kada se vrše neke provjere. A ako su greške otkrivene, korisnik će vidjeti iste te poruke.

Shodno tome, kada se otkriju greške, transakcija se poništava, tj. zabranjeno je pisanje elementa direktorija ili postavljanje dokumenta.

Na taj način dolazi do svojevrsne emulacije završne poruke. Budući da se radnja poništava dok korisnik ne reagira na unesenu poruku, bit će nemoguće dovršiti radnju, na primjer, postavljanje dokumenta.

Ali, s druge strane, moguće je zatvoriti dokument bez sprovođenja, bez reagovanja na poruku na bilo koji način. Stoga se ove poruke korisniku ne završavaju.

Obavijest o statusu procesa

Postoji posebna funkcija pomoću koje možete prikazati približan napredak procesa.

sintaksa: država(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
Opcije:<ТекстСообщения>I<Пояснение>– opciono, tip – Linija.
Tekst se prikazuje na posebnoj statusnoj traci.
<Прогресс>Parametar je također opcionalan, ali vizualan.
Vrsta: Broj. Vrijednost indikatora napretka (od 1 do 100).
<Картинка>takođe opcioni parametar.
Prilikom obrade bilo kojeg događaja, periodični pozivi funkcije poput:

U tom slučaju mogu se promijeniti oznake, a mogu se promijeniti i vrijednosti parametra Progress.

Funkcija se može pozvati iz jedne procedure (funkcije) ili iz nekoliko. Na ovaj način možete pratiti status izvršenja procesa.

Ako želite detaljnije pogledati mehanizam obavijesti, zaustavite se odmah i pročitajte naš novi članak, Prikaz napretka dugotrajnih operacija u 8.3.10. Objašnjava, više ne na nivou početnika, sve suptilnosti i zamke rada ovog mehanizma.

Završavamo naše upoznavanje sa načinima informiranja korisnika. Nadamo se da imate razumijevanje u kojim situacijama treba koristiti jednu ili drugu metodu.

Želio bih još jednom skrenuti vašu pažnju na činjenicu da ako vaša konfiguracija (verzija 8.3.3+) uključuje rad pomoću web klijenta, tada:

  • na nivou konfiguracije postavka modaliteta mora biti postavljena na "Ne koristiti"
  • Kod mora koristiti metode asinkronog modela interakcije korisnika. Takve metode počinju riječima Pokaži ili Počni.

Više o odbijanju korištenja modalnih prozora na platformi 1C:Enterprise 8.3 možete pročitati u završnom članku serije. I idemo dalje i, konačno, počinjemo proučavati dugo očekivano Taxi sučelje, koje je već više puta spomenuto u našim materijalima.