1s 8.3 kako prikazati poruku svim korisnicima. Izvršite radnje na klik

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

1. Metoda Pokaži upozorenje.

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

Kada koristite ovaj dizajn, u središtu programskog sučelja pojavljuje se prozor s upozorenjem.

Opcije:

OpisObavijesti dovršeno(neobavezno)
Vrsta: Opis Upozorenja. Sadrži opis procedure koja će se pozvati nakon što se prozor s upozorenjem zatvori sa sljedećim parametrima: AdditionalParameters - vrijednost koja je navedena prilikom kreiranja objekta AlertDescription. Ako parametar nije naveden, po završetku neće biti pozvana nikakva procedura.

Tekstualna upozorenja(potreban)
Vrsta: Žica; Formatirani niz. Tekst upozorenja.

Istek (opcionalno)
Vrsta: Broj. Vremenski interval u sekundama tijekom kojeg će sustav čekati na odgovor korisnika. Kada interval istekne, prozor upozorenja će se zatvoriti. Ako parametar nije naveden, timeout je neograničen. Ako je parametar negativan, bit će izbačena iznimka. Zadana vrijednost: 0.

Naslov (izborno)
Vrsta: Žica. 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 s upozorenjem, tada se mora staviti u proceduru zasebnog modula i opisati u parametru.

2. Metoda upozorenja.

U središtu programskog sučelja pojavljuje se prozor s upozorenjem. Međutim, ako svojstvo konfiguracije ModeUseModality postavljeno na Ne koristi , tada metoda ne radi.

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

3. Metoda ShowAlertUser.

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

Kada koristite ovu metodu, u donjem desnom kutu sučelja pojavljuje se poruka.

Dostupnost: Thin Client, Web Client, Thick Client.

4. Metoda izvješća.

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

Dostupnost: Tanki klijent, web klijent, mobilni klijent, poslužitelj, debeli klijent, vanjska veza, mobilna aplikacija (klijent), mobilna aplikacija (poslužitelj).

5. Objekt MessageToUser.

Dizajniran za pohranu parametara poruke koji se trebaju prikazati korisniku. Ako poruka još nije prikazana korisniku (to može biti kada se izvodi na strani poslužitelja, u pozadinskom poslu, vanjskoj vezi ili web-uslugama), akumulirane poruke možete dobiti pomoću metode GetMessagesUser.

Svojstva: ID odredišta(ID cilja); Podatkovni ključ (DataKey); Polje (Polje); Putanja podataka (DataPath); Tekst.

Metode: Izvještaj (Poruka); InstallData(SetData).

Poruka se pojavljuje na dnu sučelja, u retku.

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

Tijekom sata smo: kreirali bazu podataka, kreirali obradu, kreirali obrazac.

Sada ćemo vam reći 5 načina poruka iz 1C "Zdravo svijet!"

Ne znaju svi za barem dvije metode 🙂

Kako i gdje napisati tekst programa?

Prijeđite na karticu prozora s obrascem "Modul". Pobrinut ć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
  • U tankom klijentu ste zaboravili dodati gumb, ponovite od početka.

Unutar teksta nalazi se red:

// Umetanje sadržaja rukovatelja

Vaš zadatak je izbrisati ovaj redak i umjesto toga unijeti tekst programa. Nakon toga, spremite obradu i otvorite je u poslovnom načinu.

Kada kliknete Pokreni, radnje koje ste unijeli sada će se izvršiti.

A sada prijeđimo na same metode!

Poruka u 1C, metoda 1 - najlakša

Stoga biste trebali umjesto teksta "// Umetnite sadržaj rukovatelja." napisati tekst programa.

alert("Zdravo svijet!");

Zapravo, to je sve 🙂

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

Ovo je najjednostavniji način i programeri ga vrlo široko koriste.

Poruka u 1C, metoda 2 - također jednostavna

alert("Zdravo svijet!");

Zapravo, to je sve 🙂

Poruka u Enterprise načinu u obje opcije klijenta bit će u skočnom prozoru.

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

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

Ova se metoda pojavila samo u 1C verziji 8.2. Ovo je skočni prozor u donjem desnom kutu zaslona koji s vremenom nestaje.

Poruka u 1C, metoda 4 - programer

Dobaci "Zdravo svijet!" Iznimka;

Prilikom izvršavanja bilo kojeg programa može doći do pogreške. Ponekad se ova pogreška može izračunati unaprijed (na primjer, trebate izračunati a = b/c i u vrijeme izvršenja programa postalo je poznato da je c jednako 0).

U ovom slučaju postoji način da se pogreška prijavi na ovaj način.

Poruka u 1C, metoda 5 - tehnološka, ​​samo za tipičnu konfiguraciju

Opće namjene.ReportError("Zdravo svijet!");

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

Početnici, kada pokušavaju dodati bilo koju tipičnu konfiguraciju, počinju iznova izmišljati kotač.

Evo sjajnog primjera. Ova je značajka prisutna u mnogim tipičnim konfiguracijama (samo za debele klijente!). Čini se da je rezultat jednak djelovanju metode 1.
Međutim, ne - u nekim se konfiguracijama (npr. SCP) poruke o pogrešci dupliciraju u zapisniku. Također, uz dodatnu prilagodbu, poruka izgleda potpuno drugačije.

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

To je ono što je 1C programiranje. Naravno, pravo programiranje je puno kompliciranije i zahtijeva puno znanja, ali sada imate opću ideju.

Sretno!

p.s. Snimke zaslona nalaze se u pdf verziji vodiča kako bi vam bilo lakše napraviti vlastito iskustvo.

P.P.S. Za lekciju je dano 5 videa s primjerima izrade baze za programiranje, kreiranja obrade, programiranja u debelom i tankom klijentu.

Implementirano u verziji 8.3.10.2168.

Poboljšali smo mehanizam obavijesti korisnika. Sada je jednako zgodno koristiti i u tankom klijentu i u web klijentu. Redizajnirali smo izgled upozorenja i dodali im niz novih značajki.

Prikaži više upozorenja

U staroj implementaciji na ekranu se istovremeno prikazivala samo jedna obavijest. Novo upozorenje preklapalo se s prethodnim. Dakle, ako je nekoliko obavijesti prikazano zaredom, postoji velika vjerojatnost da korisnik neće imati vremena pročitati prethodnu obavijest, jer bi je blokirala sljedeća.

Sada se u većini slučajeva mogu istovremeno prikazati do tri upozorenja:

To vrijedi za tanki klijent, debeli klijent i web klijent koji se izvodi u preglednicima. Internet Explorer i Google Chrome. Preglednici safari i Mozilla Firefox omogućuju prikaz neograničenog broja upozorenja i preglednika Microsoft Edge pokazuje jedno posljednje upozorenje, ali ima Akcijski centar, gdje su sve obavijesti duplicirane.

Prikaz upozorenja kada je prozor aplikacije neaktivan

Prije je web-klijent samo prikazivao upozorenja u aktivnom prozoru preglednika. Ako se korisnik prebacio na drugi prozor ili drugu aplikaciju, nije vidio upozorenje. Sada, kada koristite web klijent, obavijesti se prikazuju na zaslonu čak i kada je prozor aplikacije minimiziran ili neaktivan.

Prvi put kada se metoda poziva ShowUserAlert() u web klijentu Google Chrome, Mozilla Firefox i safari preglednik će od korisnika tražiti dopuštenje za korištenje upozorenja. Korisnik može dopustiti njihov izlaz za ovu aplikaciju ili zabraniti.

Ako korisnik onemogući obavijesti, tada će se koristiti nova vrsta obavijesti, ali će biti nacrtane unutar prozora preglednika.

Centar za upozorenje

Kako bismo spriječili da obavijesti zauvijek nestanu, implementirali smo centar za uzbunu. A za same obavijesti implementirali smo novo svojstvo - StatusAlertUser. Može imati dvije vrijednosti: Informacija i Važno.

Upozorenja o statusu Informacija se prikazuju na ekranu i nestaju nakon 10 sekundi (u pregledniku Microsoft Edge– nakon 4 sekunde). Upozorenja o statusu Važno ponašaju se potpuno isto, ali su pohranjeni u centru za upozorenje.

Centar za upozorenja dostupan je na alatnoj traci. Činjenica da postoje nova važna upozorenja signalizirana je narančastom točkom pored njene ikone.

Centar za upozorenje prikazuje važna upozorenja na koja korisnik još nije odgovorio zatvaranjem ili poduzimanjem radnje povezane s upozorenjem. Upozorenja su navedena redoslijedom kojim se pojavljuju, najnovija na vrhu. Dakle, čak i ako korisnik napusti računalo, neće propustiti važna upozorenja.

Obavijest se može ukloniti s popisa gumbom za brisanje. Ako je neka radnja povezana s obavijesti, tada će nakon klika na tekst obavijesti i ona nestati. Tim Izbriši upozorenja uklanja sva upozorenja s popisa. Istodobno, ako su radnje povezane s obavijestima, one se ne izvode.

Izvršite radnje na klik

U staroj implementaciji, jedina radnja koja se mogla izvesti kada se klikne na upozorenje bila je praćenje navigacijske veze. On je proslijeđen metodi kao drugi parametar.

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

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

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

Opis upozorenja označava postupak koji se treba izvesti kada se klikne na upozorenje.

Izgled

U tankom klijentu u varijanti sučelja Taksi stil obavijesti bit će što bliži stilu obavijesti preglednika Google Chrome korištenjem API za obavijesti.


Ako se koristi opcija sučelja Verzija 8.2, stil i ponašanje upozorenja ostaju isti.

U web klijentu izgled upozorenja određuje preglednik koji koristite. Uglavnom, upozorenja će izgledati isto kao u tankom klijentu, ali svaki preglednik ima svoje karakteristike. Na primjer, možete usporediti kako će se ista upozorenja prikazati Internet Explorer i Mozilla Firefox.


Osim toga, postoje i druge značajke. Na primjer, u pregledniku Internet Explorer Podržana su samo upozorenja koja se prikazuju unutar prozora aplikacije. I u pregledniku safari parametar Slika nije podržano i upozorenja se prikazuju na vrhu zaslona.

Razvoj je dizajniran tako da obavještava korisnike i selektivno i sve, također možete samo pisati poruke ili se dopisivati ​​između korisnika.

Razvoj je registar informacija i promjena u upravljanom ili redovnom aplikacijskom modulu.
Da biste pokrenuli upozorenje, morate dodati unos u registar informacija, korisnici će primati obavijesti u razdoblju navedenom između početka i kraja vremena obavijesti.

UPRAVLJANA APLIKACIJA

REDOVNA APLIKACIJA

Prikazan je prozor upozorenja u korisničkom programu blokira cijelo sučelje i korisnici koji trenutno rade u programu neće propustiti obavijest i pročitat će je u skladu s tim.

UPRAVLJANA APLIKACIJA

REDOVNA APLIKACIJA

Registrirajte popis

Na popisu obavijesti možete vidjeti tko je primio obavijest i tko ju je pročitao.

UPRAVLJANA APLIKACIJA

REDOVNA APLIKACIJA

Da biste implementirali razvoj u svoju konfiguraciju, morate:

  1. Postavite mogućnost uređivanja konfiguracije.
  2. Usporedite s konfiguracijom isporučenom u ovoj publikaciji. Ovo će dodati registar s informacijama o upozorenjima korisnika i unos u redovni ili upravljani modul aplikacije, ovisno o primarnom načinu pokretanja aplikacije.

    Unos modula obične ili upravljane aplikacije je drugačiji:

    UPRAVLJANA APLIKACIJA

SystemStartup Procedure() //Izmjena tipične konfiguracije za obavještavanje korisnika programa (slanje poruke bilo kojem korisniku) //Prikladno za sve konfiguracije ConnectWaitingHandler("modNotificationProcessingHandler", 60); EndProcedure // AtSystemStart() //Izmjena tipične konfiguracije za obavještavanje korisnika programa (slanje poruke bilo kojem korisniku) //Prikladno za sve konfiguracije //Pozivanje rukovatelja čekanja nastavlja se dok se obrazac ne zatvori //ili dok se metoda obrasca ne zatvori naziva se Mod procedureAlertProcessHandler( ) Izvoz MessageToUser = GetForm("InformationRegister.UserAlerts.Form.SendFormControl").GetNotificationProcessingMessages(); Ako nije MessageToUser = Undefined, onda Form = GetForm("InformationRegister.UserAlerts.Form.AlertControl"); Ako nije Form.Open() onda FillPropertyValues(Form,MessageToUser,"ViewOnly"); Obrazac.Otvori(); Inače Form.Activate(); Završi ako; Završi ako; Kraj procedure STANDARDNA APLIKACIJA SystemStartProcedure() //Izmijenite zadanu konfiguraciju kako biste obavijestili korisnike programa (pošaljite poruku bilo kojem korisniku) //Prikladno za sve konfiguracije ConnectWaitingHandler("modAlertProcessingHandler", 60); EndProcedure // AtSystemStart() //Izmjena tipične konfiguracije za obavještavanje korisnika programa (slanje poruke bilo kojem korisniku) //Prikladno za sve konfiguracije //Pozivanje rukovatelja čekanja nastavlja se dok se obrazac ne zatvori //ili dok se metoda obrasca ne zatvori naziva se Mod procedureAlertProcessHandler( ) Izvoz MessageToUser = RegistersInformation.AlertUser.GetMessageProcessingNotification(); Ako nije MessageToUser = Undefined, onda Form = GetForm("InformationRegister.UserAlerts.Form.AlertUsual"); Ako nije Form.Open() onda FillPropertyValues(Form,MessageToUser,"ViewOnly"); Form.OpenModal(); Inače Form.Activate(); Završi ako; Završi ako; EndProcedure

Implementacija razvoja je besplatna, u roku od 10 minuta.

Besplatna tehnička podrška 30 dana.
NA

Razvoj je namijenjen za platformu 8.3, razne standardne i nestandardne konfiguracije, u načinu rada tankog, debelog klijenta i web klijenta.

Moguće je samousavršavanje, kod je otvoren za uređivanje.

Razlozi za kupnju

Vrlo zgodna opcija za obavještavanje, obavještavanje korisnika 1C o tehničkom radu, poboljšanja konfiguracije, ažuriranja, mogućnost dopisivanja između 1C korisnika unutar 1. programa.

Prednosti

1) 100% isporuka upozorenja svim korisnicima, za razliku od analognih.
2) Mogućnost slanja slika.
3) Pregledajte aktivnost korisnika na popisu poruka (kome je dostavljena, tko ju je pročitao).
4) Mogućnost pisanja odgovora pošiljatelju obavijesti.
5) Ne utječe na druge objekte, prilikom ažuriranja konfiguracija, s instaliranom mogućnošću uređivanja.

Povrat novca zagarantovan

Infostart LLC Vam jamči 100% povrat novca ukoliko program ne odgovara deklariranoj funkcionalnosti iz opisa. Novac se može vratiti u cijelosti ako ga prijavite u roku od 14 dana od dana primitka novca na naš račun.

Program je toliko provjeren u radu da s punim povjerenjem možemo dati takvu garanciju. Želimo da svi naši kupci budu zadovoljni kupnjom.

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

U njemu ćemo razmotriti načine informiranja korisnika koji su prisutni na platformi 1C:Enterprise 8, a također ćemo usmjeriti vašu pozornost na neke značajke rada ovih mehanizama, te su značajke povezane s načinom korištenja modaliteta.

Primjenjivost

Članak govori o funkcionalnosti:

  • Sučelje u verziji "Verzija 8.2" za konfiguraciju razvijenu na platformi "1C:Enterprise" 8.2.19.130
  • Taksi sučelje za konfiguraciju razvijenu na platformi 1C:Enterprise 8.3.4.496 do 8.3.9+
  • Taksi sučelje za konfiguraciju razvijenu na platformi 1C:Enterprise 8.3.10-8.3.11

Kako prikazati poruku korisniku u 1C

Prikaz poruka u korisničkom načinu rješava niz problema:

  • odraz napretka trenutnog procesa (prikazivanje faze procesa; prikaz izračunatih vrijednosti dobivenih tijekom rada algoritma);
  • izdavanje grešaka korisniku radi njihovog eventualnog ispravljanja;
  • izdavanje preporuka;

Vrste poruka:

  • terminatori koji zaustavljaju izvođenje programa i onemogućuju njegov nastavak sve dok korisnik ne pročita ovu poruku i izvrši određene radnje. Na primjer, korisnik će na ekranu dobiti pitanje na koje će morati odgovoriti s Da ili Ne. Dok korisnik ne odgovori, program ne izvodi daljnje radnje;
  • uvodne poruke, koje se jednostavno prikazuju korisniku i omogućuju mu daljnji rad (tj. koriste se u načinu upozorenja).

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

Uvodne poruke imaju za cilj dati korisniku neke informacije.

Potrebno je da je korisnik pročita i, eventualno, poduzme neke radnje koje su opisane u ovoj poruci.

Vrlo je važno da korisnik zaista pročita te poruke, pa bi one trebale sadržavati samo važne informacije.

Poruke za testiranje i otklanjanje pogrešaka ne bi se smjele slati korisniku, jer prije ili kasnije počet će ignorirati apsolutno sve poruke.

U konceptu upravljanog sučelja, pristup izdavanju poruke donekle se promijenio. Sada je vezan uz oblik u kojem je nastao. Više se ne može zatvoriti tako da je tekst potpuno nevidljiv.

Ne možete otkvačiti okvir za poruku s obrasca.

Sintaksa funkcije:

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

Oni. prvi parametar je sam tekst.

Drugi parametar (status poruke) nije obavezan. Možete odrediti vrijednosti za status: Normalan, Važno, Jako važno itd.

Ova vrijednost određuje koja će se ikona postaviti pored poruke. Međutim, ovo funkcionira samo u normalnom sučelju.

U konceptu upravljanog sučelja, ikona je uvijek uskličnik i ne može se nadjačati.

Činjenica je da ako se poruka generira u trenutku pisanja elementa rječnika, može se dogoditi sljedeća situacija.

Korisnik klikne na gumb Napišite i zatvorite, u ovom slučaju poruka se prikazuje u odgovarajućem prozoru (desno od obrasca).

Ali obrazac se trenutno zatvara, a korisnik neće vidjeti da su mu prikazane neke informacije.

Stoga se u konceptu upravljane aplikacije preporuča prikazivanje informativnih poruka korištenjem tzv. obavijesti. Primjer netočne upotrebe funkcije Prijaviti prikazano na slici.

Međutim, funkcija Prijaviti može se koristiti za prikaz informacija o nekim pogreškama, na primjer, u trenutku objavljivanja dokumenta.

U tom slučaju sustav može reći sustavu da obrazac ne treba zatvarati, te 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 funkcionirat će (i u verziji datoteke i u verziji klijent-poslužitelj).

Ali također treba napomenuti da je funkcija Prijaviti postoji daljnji razvoj - ovo je klasa poruka korisniku, koja omogućuje, osim prikazivanja poruke, da je kontekstualno poveže s bilo kojim elementom obrasca.

Na primjer, elementu obrasca može se priložiti poruka o pogrešci, koja je vrlo vidljiva korisniku. Vratit ćemo se na ovo pitanje malo kasnije. Funkcija Prijaviti postoji zanimljiva značajka.

Dakle, programski kod u Platformi 8.3 može se izvršiti i na strani klijenta i na strani poslužitelja.

U ovom slučaju programski kod klijenta je odgovoran za interakciju s korisnikom, t.j. obrasci se otvaraju na strani klijenta, prikazuju se izvješća.

Različiti dijaloški dokumenti također se prikazuju samo na klijentu. Na poslužitelju se ne mogu izvršiti jer poslužitelj nema mogućnost interakcije s korisnicima.

Ali funkcija Prijaviti može se izvršiti i na strani klijenta i na strani poslužitelja. Međutim, korištenjem metode Prijaviti na poslužitelju uopće ne znači da će se poruka prikazati na poslužitelju, jednostavno ih nema gdje prikazati.

To znači da ako ovom metodom prikažemo poruku u poslužiteljskoj proceduri, ona će se akumulirati u nekom međuspremniku te će se prikazati na ekranu tek kada poslužiteljska procedura završi i vrati se klijentu.

U ovom trenutku, sustav će zatražiti podatke iz međuspremnika i prikazati ih na ekranu.

Ista značajka vrijedi i za razred MessageToUser. Na slici je prikazan primjer korištenja metode Prijaviti na strani poslužitelja.

Kao rezultat korištenja metode Prijaviti na strani poslužitelja, poruke su se prikazivale na ekranu na strani klijenta.

Mehanizam obavijesti potreban je kako bi se korisnik obavijestio da se u sustavu dogodilo “nešto” i da to “nešto” zahtijeva pažnju korisnika. Upozorenja se generiraju prema dva scenarija:

  1. Od strane same platforme kada interaktivno pišete ili mijenjate objekt
  2. Programer prilikom pozivanja koda metode .

Sama obavijest je mali prozorčić koji se u pravilu pojavljuje u donjem desnom kutu i izvještava o poduzetoj radnji. U roku od nekoliko sekundi postupno se gasi i nestaje. Istodobno, ako pomaknete pokazivač miša preko obavijesti, ona se ne gasi i možete je pažljivo pročitati.

Osim toga, obavijestima se može pristupiti u odgovarajućem području informacijske ploče (gumb “Povijest” u donjem lijevom kutu obrasca za prijavu u opciji sučelja “Verzija 8.2”).

Da biste stvorili vlastita upozorenja, morate koristiti metodu globalnog konteksta ShowUserAlert(). Njegova sintaksa prije revizije 8.3.10 je sljedeća:

Prikaži upozorenje korisnika (<Текст>, <НавигационнаяССылка>, <Пояснение>, <Картинка>)

Prvi parametar je tekst koji će biti prikazan u upozorenju.

Nadalje, kao drugi parametar, možete proslijediti neku navigacijsku vezu na bilo koji element infobaze (element koji odgovara tekstu naše poruke). Kada korisnik klikne na upozorenje, bit će preusmjeren na tu vezu.

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

Također možete dodijeliti sliku koja prikazuje status obavijesti.

Imajte na umu da svi ovi parametri nisu obavezni. Ispod je primjer korištenja ove metode (u konfiguratoru i u korisničkom načinu u opciji sučelja "Verzija 8.2").

U verziji 8.3.10.216 platforme za sučelje u verziji "Taxi" značajno je poboljšan mehanizam obavijesti kako bi se poboljšala upotrebljivost i tankih i web klijenata. Zbog toga su se parametri proslijeđeni metodi također promijenili. ShowUserAlert(). Sada sintaksa izgleda ovako:

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

Vidi se da je drugi parametar, prethodno nazvan Veza za navigaciju, dobio je novo ime ActionOnPress. To je zbog činjenice da mu je sada postalo moguće proslijediti ne samo niz s navigacijskom vezom, već i opis upozorenja. To je ilustrirano na snimci zaslona ispod:

Kao što možete vidjeti iz primjera, sada imamo mogućnost programskog upravljanja klikom na prozor s obavijesti, prema logici koja je potrebna.

Sljedeći parametar StatusAlertUser pojavio 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 obavijesti (više o tome u nastavku). U slučaju opcije Informacije, obavijest se briše bez pohrane u ovom centru. Prepišimo kod iz našeg primjera kao što je prikazano u nastavku:

Nakon izvršenja naredbe, dobivamo otprilike sljedeći prikaz prozora aplikacije:

Na alatnoj traci pojavio se gumb sa ikonom zvona koji poziva gore spomenuti centar za upozorenje. Akumulira nova važna upozorenja na koja korisnik još nije odgovorio.

Ako u Centru postoje neka upozorenja, tada se pored nje pojavljuje mala narančasta točka kako bi privukla pozornost korisnika. Korisnik može otvoriti Centar za upozorenje, pročitati tekst i po potrebi izvršiti neku radnju.

Obavijest se uklanja iz Centra klikom na gumb za brisanje, međutim, ako je neka radnja povezana s obavijesti, onda čim korisnik klikne na tekst poruke, ona će također nestati.

I na kraju, zadnji dodan parametar bio je Ključna jedinstvenost. Možete ga koristiti da pronađete upozorenje prikazano na zaslonu i promijenite ga. Ako nema obavijesti s ovim parametrom, prikazat će se nova obavijest.

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

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

Također nove značajke uključuju istovremeni prikaz do tri upozorenja na zaslonu.

Ovime završavamo naše upoznavanje s programskim generiranjem upozorenja. Međutim, imajte na umu da obavijesti ne generira samo programer programski, već i sama platforma u vrijeme interaktivnog pisanja ili promjene objekta. I često ova činjenica izaziva nesporazum, prije svega, među korisnicima početnicima: zašto su nam potrebna ova upozorenja o uslugama, koja se, usput, ne mogu isključiti?

Zamislimo tako jednostavnu situaciju: korisnik je postavio filtar na nekom popisu radi praktičnosti. Recimo da je to učinio u obliku popisa nomenklature. Zatim, nakon nekog vremena, odlučio sam uvesti novi element pod nazivom „Chair“, koji se ne podudara s prethodno postavljenim filterom. Unese ga, zapiše i ...? I ne vidi ga na popisu. Što će učiniti prosječan korisnik? Naravno, ući će u njega i drugi put, ali ga više neće vidjeti. Može uslijediti treći, četvrti, peti put. Kad mu dosadi ulaziti u isto, konačno će te pitati: kamo sve nestaje?

Zato platforma prikazuje ova servisna upozorenja, obavještavajući korisnika da je njegova radnja dovrš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 vam neće dopustiti rad dok korisnik ne izvrši određene radnje, t.j. dok ne obradi poruku.

O mogućnosti korištenja poruka o prekidu u Platformi 8.3 govorit ćemo nešto kasnije (u posljednje vrijeme pokušavaju ih ne koristiti, pa se razmatrani primjer više odnosi na Platformu 8.2).

Postoje dvije metode za izdavanje poruka o prekidu Upozorenje i Pitanje. Upozorenje razlikuje od pitanje jer ima jedan gumb u redu.

Pitanje može imati različite skupove opcija odgovora ( Ne baš, DaNeOdustani, u redu, OKOdustani, Ponovno pokušaj Odustani, PrekiniPonovni pokušajPreskoči), koji se postavljaju pomoću parametra.

Prikažimo neku vrstu upozorenja pomoću niza (na primjer, u modulu upravljane aplikacije):

Alert("Baza će sada biti otvorena");

Za otvaranje modula upravljane aplikacije odaberite objekt u stablu konfiguracije Konfiguracija, pozovite kontekstni izbornik i odaberite stavku Otvorite upravljani aplikacijski modul.

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

Funkcija radi na isti način. Pitanje.

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

Potrebna su samo prva dva parametra. Za drugi parametar, tip podataka je kompozitni ( Pitanje u načinu dijaloga ili Popis vrijednosti). Treći parametar ( <Таймаут> ) karakterizira vremenski interval u sekundama tijekom kojeg će sustav čekati na odgovor korisnika.

Kada interval istekne, prozor s pitanjem će se zatvoriti. Sličan parametar ( <Таймаут> ) funkcija također ima 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 poslužitelju. I to je logično, jer metode sučelja ne mogu se izvršiti na poslužitelju, gdje nema korisnika.

Značajke korištenja modalnih prozora u Platformi 8.3

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

U ovom slučaju, poruke o prekidu se ne mogu koristiti. Ako je potrebno koristiti prekidne poruke (funkcije Upozorenje i Pitanje) trebali biste promijeniti vrijednost svojstva konfiguracije na Koristiti.

Modalni prozor se prikazuje na samom vrhu i blokira rad s drugim prozorima dok se modalni prozor ne dovrši. Osim toga, izvršenje programskog koda se zaustavlja na mjestu gdje se ovaj prozor poziva. Izvršenje koda će se nastaviti tek nakon što se modalni prozor zatvori.

Prvo, problemi korištenja modalnih prozora nastaju za mobilnu aplikaciju. Drugo, u pregledniku se modalitet prozora implementira pomoću zasebnih skočnih prozora.

Skočni prozori često su onemogućeni u zadanim postavkama preglednika. Korisnik mora biti prisiljen postaviti dozvole za ove prozore.

Preglednici za tablete i telefone u većini slučajeva uopće ne podržavaju skočne prozore.

Za zamjenu funkcija Pitanje i Upozorenje razvijene su nove metode: ShowQuestion, Pokaži upozorenje.

Ove metode vam omogućuju pozivanje prozora, ali ne i zaustavljanje izvršavanja programskog koda. Tehnički, to se provodi formiranjem pseudo-prozora unutar roditeljskog prozora. Pseudo-prozor se ne preklapa s roditeljskim prozorom. Nakon otvaranja takvog prozora, kod se nastavlja izvršavati.

Primanje i obrada vrijednosti koje je unio korisnik provodi se u zasebnoj proceduri koja se poziva kada se dijaloški okvir zatvori.

Sintaksa funkcije Pokaži upozorenje:

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

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

Tip podataka: Opis upozorenja.

Sadrži opis postupka koji će biti pozvan nakon zatvaranja prozora upozorenja.

Sintaksa funkcije ShowQuestion:

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

Prva tri parametra su obavezna.

U nastavku je primjer korištenja funkcije.

Klasa MessageToUser

Glavna pogodnost klase poruka MessageToUser je da je ovo kontekstualna poruka (za razliku od metoda Upozorenje i Pitanje).

Poruke se mogu vezati uz određeni element zaslona. Ovaj objekt je također dostupan na poslužitelju.

Treba napomenuti da, prvo, ovaj objekt mora biti stvoren. Na primjer: Poruka = ​​New MessageToUser;

Stoga stvaramo instancu ovog objekta.

Drugo, trebate napisati tekst poruke u zasebnom svojstvu.

Treće, u posjedu Polje Možete odrediti kojem elementu obrasca dana poruka treba biti priložena.

Pažnja! Za vezanje na željeno polje obrasca obratite pozornost na inicijalizaciju svojstava Put do podataka i DataKey. Za dokument, kada postavljate kod u objektni modul, možete napisati:

Message.DataPath = "Objekt";
Message.DataKey = OvajObjekt.Referenca;

Za otvaranje modula dokumenta, u prozoru za uređivanje objekta (dokumenta), na kartici Ostalo kliknite na gumb Objektni modul.

Za eksperiment, postavimo kod u objektni modul bilo kojeg dokumenta.

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

Treba napomenuti da se poruke prikazuju pomoću novog objekta sustava MessageToUser općenito se ne prekidaju. Oni. sustav će omogućiti korisniku nastavak daljnjih radnji bez odgovaranja na prikazane poruke.

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

Sukladno tome, u trenutku otkrivanja pogrešaka, transakcija se poništava, t.j. zabranjeno je bilježenje elementa imenika ili je zabranjeno stavljanje dokumenta.

Tako se odvija svojevrsna emulacija poruke o prekidu. Budući da se radnja otkazuje dok korisnik ne odgovori na ulaznu poruku, neće biti moguće dovršiti radnju, kao što je prevlačenje dokumenta.

No, s druge strane, moguće je zatvoriti dokument bez držanja, a da na bilo koji način ne reagirate na poruku. 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<Пояснение>– neobavezno, vrsta – Crta.
Tekst se prikazuje na posebnoj statusnoj traci.
<Прогресс>parametar također nije obavezan, ali deskriptivan.
Tip: Broj. Vrijednost trake napretka (od 1 do 100).
<Картинка>također neobavezni parametar.
Prilikom obrade bilo kojeg događaja, mogu se koristiti periodični pozivi funkcija tipa:

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

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

Ako želite saznati više o mehanizmu obavijesti, odmah napravite pauzu i pročitajte naš novi članak Prikaz napretka dugotrajnih operacija u 8.3.10. Više ne objašnjava na početnoj razini sve suptilnosti i zamke rada ovog mehanizma.

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

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

  • na razini konfiguracije mora se postaviti postavka modaliteta "Ne koristiti".
  • kod mora koristiti metode asinkronog modela interakcije korisnika. Takve metode počinju riječima Pokazati ili Početi.

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