Оповіщення користувачів 1с. Відображення сповіщень при неактивному вікні програми

25.10.2019 Огляди

У програмах на платформі 1С:Підприємство повідомлення користувачу можна показати різними способами.

1. Метод ПоказатиПопередження.

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

При використанні цієї конструкції вікно із попередженням виникає у центрі інтерфейсу програми.

Параметри:

ОписОповіданняЗавершення(Необов'язковий)
Тип: Опис Оповіщення. Містить опис процедури, яка буде викликана після закриття вікна попередження з наступними параметрами: Додаткові параметри - значення, яке було вказано під час створення об'єкта Опис Оповіщення. Якщо параметр не вказано, то після завершення жодна процедура не буде викликана.

ТекстПопередження(обов'язковий)
Тип: Рядок; ФорматованийРядок. Текст попередження.

Таймаут (необов'язковий)
Тип: Число. Інтервал часу в секундах, протягом якого система чекатиме на відповідь користувача. Після закінчення інтервалу вікно попередження буде закрито. Якщо параметр не вказано, час очікування не обмежений. Якщо параметр має негативне значення, буде згенеровано виняток. Значення за промовчанням: 0.

Заголовок (необов'язковий)
Тип: Рядок. Містить заголовок вікна попередження. Опис: Виводить вікно попередження на екран, але не очікує його закриття.

Доступність: Тонкий клієнт, веб-клієнт, товстий клієнт, мобільний додаток (клієнт).

Примітка: Якщо після закриття користувачем вікна попередження повинен бути виконаний будь-який код, його потрібно розмістити в окремій процедурі модуля і описати її в параметрі.

2. Метод Попередження.

Вікно із попередженням з'являється у центрі інтерфейсу програми. Однак, якщо для конфігурації властивість РежимВикористання Модальностівстановлено в НеВикористовувати, то метод не працює.

Доступність: Тонкий клієнт, веб-клієнт, мобільний клієнт, товстий клієнт, мобільний додаток (клієнт).

3. Метод ПоказатиОповідьКористувача.

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

При використанні цього методу повідомлення з'являється в нижньому правому куті інтерфейсу.

Наявність: Тонкий клієнт, веб-клієнт, товстий клієнт.

4. Метод Повідомити.

Повідомити(< ТекстСообщения> , < Статус> )

Доступність: Тонкий клієнт, веб-клієнт, мобільний клієнт, сервер, товстий клієнт, зовнішнє з'єднання, мобільний додаток (клієнт), мобільний додаток (сервер).

5. Об'єкт ПовідомленняКористувачу.

Призначений для збереження параметрів повідомлення, які потрібно вивести користувачеві. Якщо повідомлення ще не було показано користувачеві (таке може бути під час роботи на стороні сервера, у фоновому заданні, зовнішньому з'єднанніабо Web-сервісах), можна отримати накопичені повідомлення методом Отримати ПовідомленняКористувачу.

Властивості: ІдентифікаторПризначення(TargetID); КлючДаних (DataKey); Поле (Field); ШляхКДанним (DataPath); Текст(Text).

Методи: Повідомити (Message); ВстановитиДані(SetData).

Повідомлення з'являється у нижній частині інтерфейсу, у рядку.

Повідомлення = Новий ПовідомленняКористувачеві() ; Повідомлення. Текст = "Не вистачає номенклатури"; Повідомлення. Поле = "Номенклатура.Кількість"; Повідомлення. Встановити Дані (Об'єкт Даних) ; Повідомлення. Повідомити() ;

Розробка призначена для сповіщення користувачів як вибірково так і всіх, так само можна просто писати повідомлення або листувати між користувачами.

Розробка являє собою регістр відомостей та зміну в модулі керованого або звичайної програми.
Для запуску оповіщення необхідно додати запис до регістра відомостей, користувачі будуть отримувати повідомлення в період, вказаний між початком і кінцем часу оповіщення.

КОДАНИЙ ДОДАТОК

ЗВИЧАЙНИЙ ДОДАТОК

Вікно оповіщення у програмі користувача блокує весь інтерфейс та користувачі працюючі в Наразіу програмі не пропустять сповіщення та відповідно прочитають.

КОДАНИЙ ДОДАТОК

ЗВИЧАЙНИЙ ДОДАТОК

Список регістру

У списку оповіщень можна переглянути кому доставлено сповіщення та хто прочитав.

КОДАНИЙ ДОДАТОК

ЗВИЧАЙНИЙ ДОДАТОК

Для застосування розробки у свою конфігурацію потрібно:

  1. Встановити можливість редагування конфігурації.
  2. Порівняти з конфігурацією, що поставляється в даній публікації. Буде додано регістр відомостей "Оповіщення Користувачів" та запис у модулі звичайної або керованої програми, залежно від основного режиму запуску програми.

    Запис модуля звичайної або керованої програми різняться:

    КОДАНИЙ ДОДАТОК

Процедура ПриПочаткуРоботиСистеми() //Модифікація типової конфігурації для оповіщення користувачів програми (надсилання повідомлення будь-якому користувачеві) //Підходити для всіх конфігурацій ПідключитиОбробникОчікування("modОброблювачОбробкиОповіщення", 60); КінецьПроцедури // ПриПочаткуРоботиСистеми() //Модифікація типової конфігурації для оповіщення користувачів програми (надсилання повідомлення будь-якому користувачеві) //Підходити для всіх конфігурацій //Виклик обробника очікування триває доки форма не буде закрита //або поки не буде викликаний метод форми Процедура modОбробка ) Експорт ПовідомленняКористувачу = ОтриматиФорму("РегістрВідомостей.ОповіданняКористувачів.Форма.ФормаВідправкиУпр").ОтриматиПовідомленняОбробкиОповідання(); Якщо Не ПовідомленняКористувачеві = Невизначено Тоді Форма = ОтриматиФорму("РегістрВідомостей.ОповіданняКористувачів.Форма.ОповіданняУпр"); Якщо не Форма.Відкрита() Тоді ЗаповнитиЗначенняВластивостей(Форма,Повідомлення Користувачеві,"ТількиПерегляд"); Форма.Відкрити(); Інакше Форма. Активізувати (); КінецьЯкщо; КінецьЯкщо; КінецьПроцедури ЗВИЧАЙНИЙ ДОДАТОК Процедура ПриПочаткуРоботиСистеми() //Модифікація типової конфігурації для оповіщення користувачів програми (надсилання повідомленню будь-якому користувачеві) //Підходити для всіх конфігурацій ПідключитиОбробникОчікування,"modОбробникОбробкиОпівки6" КінецьПроцедури // ПриПочаткуРоботиСистеми() //Модифікація типової конфігурації для оповіщення користувачів програми (надсилання повідомлення будь-якому користувачеві) //Підходити для всіх конфігурацій //Виклик обробника очікування триває доки форма не буде закрита //або поки не буде викликаний метод форми Процедура modОбробка ) Експорт ПовідомленняКористувачу = РеєстриДовідок.ОповіданняКористувачів.ОтриматиПовідомленняОбробкиОповідання(); Якщо Не ПовідомленняКористувачеві = Невизначено Тоді Форма = ОтриматиФорму("РегістрВідомостей.ОповіданняКористувачів.Форма.ОповіданняЗвичай"); Якщо не Форма.Відкрита() Тоді ЗаповнитиЗначенняВластивостей(Форма,Повідомлення Користувачеві,"ТількиПерегляд"); Форма.ОткрытьМодально(); Інакше Форма. Активізувати (); КінецьЯкщо; КінецьЯкщо; КінецьПроцедури

Впровадження розробки безкоштовно, проводитися протягом 10 хвилин.

Безкоштовна техпідтримка протягом 30 днів.
У

Розробка призначена для платформи 8.3, різних типових та нетипових конфігурацій, у режимі тонкого, товстого клієнта та веб-клієнта.

Можливе самостійне доопрацювання, код відкритий для редагування.

Причини купити

Дуже зручний варіант для оповіщення, сповіщення користувачів 1С про технічні роботи, доопрацюваннях конфігурацій, оновлення, можливість вести листування між користувачами 1С в рамках 1-ї програми.

Переваги

1) 100% доставка оповіщень всім користувачам, на відміну від аналогів.
2) Можливість відправлення картинок.
3) Перегляд активності користувачів у списку повідомлень (кому доставлено, хто прочитав).
4) Можливість написати відповідь відправив оповіщення.
5) Не впливає інші об'єкти, при оновленнях конфігурацій, з встановленою можливістю редагування.

Гарантія повернення грошей

ТОВ "Інфостарт" гарантує Вам 100% повернення оплати, якщо програма не відповідає заявленому функціоналу з опису. Гроші можна повернути в повному обсязі, якщо ви заявите про це протягом 14 днів з дня надходження грошей на наш рахунок.

Програма настільки перевірена в роботі, що ми цілком впевнено можемо дати таку гарантію. Ми хочемо, щоб усі наші покупці залишалися задоволені покупкою.

Стаття продовжує цикл статей "Перші кроки у розробці на 1С".

У ній ми розглянемо способи інформування користувача, які є у платформі «1С:Підприємство» 8, а також акцентуємо вашу увагу на деяких особливостях роботи цих механізмів, ці особливості пов'язані з режимом використання модальності.

Застосовність

У статті розглядається функціональність:

  • Інтерфейс у варіанті «Версії 8.2» для конфігурації, розробленої на платформі «1С:Підприємство» 8.2.19.130
  • Інтерфейсу «Таксі» для конфігурації, розробленої на платформі «1С:Підприємство» 8.3.4.496 до 8.3.9+
  • Інтерфейсу «Таксі» для конфігурації, розробленої на платформі «1С:Підприємство» 8.3.10-8.3.11

Як у 1С вивести повідомлення користувачу

Виведення повідомлень в режимі користувача вирішує ряд завдань:

  • відображення ходу виконання поточного процесу (показ стадії виконання процесу; показ розрахункових значень, отриманих під час роботи алгоритму);
  • видача помилок користувачеві для можливого їх виправлення;
  • видача рекомендацій;

Типи повідомлень:

  • терміни, які зупиняють виконання програми і не дають продовжити її, поки користувач не ознайомиться з цим повідомленням і не виконає певних дій. Наприклад, на екран користувачеві буде видано питання, на яке потрібно буде відповісти Так чи Ні. Поки користувач не відповість – програма не виконує подальші дії;
  • ознайомлювальні повідомлення, які просто виводяться для користувача та дозволяють працювати далі (тобто використовуються в режимі оповіщення).

Термінуючими повідомленнями повинні бути повідомлення про помилки, а ознайомлювальні: рекомендації, повідомлення про поточний етап процесу та показ розрахункових значень (налагоджувальний друк).

Ознайомчі повідомлення призначені для того, щоб надати користувачеві деяку інформацію.

Необхідно, щоб користувач з нею обов'язково ознайомився і, можливо, зробив якісь дії, описані в цьому повідомленні.

Дуже важливо, щоб користувач дійсно читав ці повідомлення, тому вони повинні містити лише важливу інформацію.

Тестові та налагоджувальні повідомлення видавати користувачеві не варто, т.к. рано чи пізно він почне ігнорувати всі повідомлення.

У концепції керованого інтерфейсу змінився підхід до видачі повідомлення. Воно тепер прив'язане до форми, де виникло. Його не можна закрити те щоб текст було зовсім невидно.

Відкріпити вікно з повідомленням від форми не можна.

Синтаксис функції:

Повідомити (<Текст сообщения>, <Статус>)

Тобто. Першим параметром є текст.

Другий параметр (статус повідомлення) є необов'язковим. Для статусу можна вказувати значення: Звичайне, Важливе, Дуже важливеі т.д.

Від даного значеннязалежить, який значок буде розташовано поряд із повідомленням. Однак це працює лише у звичайному інтерфейсі.

У концепції керованого інтерфейсу значок завжди у вигляді знака оклику, перевизначити його не можна.

Справа в тому, що якщо повідомлення буде формуватися в момент запису елемента довідника, може статися така ситуація.

Користувач натискає кнопку Записати та закрити, у разі повідомлення виводиться у відповідне вікно (право форми).

Але форма миттєво закривається, і користувач не побачить, що йому виводилася якась інформація.

Тому в концепції керованого додатка ознайомлювальні повідомлення рекомендується виводити за допомогою так званих оповіщень. Приклад неправильного використання функції Повідомитипредставлений малюнку.

Тим не менш, функція Повідомитиможе використовуватися для виведення інформації про деякі помилки, наприклад, у момент проведення документа.

У цьому випадку системі можна повідомити, що форму закривати не потрібно і показати користувачеві, які помилки виникають під час проведення документа.

Функція Повідомитиповністю підтримується у Платформі 8.3. Її можна використовувати і вона буде працювати (і у файловому варіанті, і в клієнт-серверному).

Але також слід зазначити, що функції Повідомитиє подальший розвиток - це клас повідомлення користувачу, який дозволяє крім того, що виводити повідомлення, прив'язувати його контекстно до будь-яких елементів форми.

Наприклад, повідомлення про помилку можна прив'язати до елементу форми, що дуже наочно для користувача. Дещо пізніше до розгляду цього питання ми повернемося. У функції Повідомитиє цікава особливість.

Так, програмний код Платформі 8.3 може бути виконаний як на стороні Клієнта, так і на стороні Сервера.

У цьому клієнтський програмний код відповідає взаємодію Космосу з користувачем, тобто. за клієнта відкриваються форми, виводяться звіти.

Різні діалогові документи також відображаються лише на клієнті. На сервері вони можуть бути виконані, оскільки сервер немає можливості взаємодії з користувачами.

Але функція Повідомитиможе бути виконана як на стороні Клієнта, так і на стороні Сервера. При цьому використання методу Повідомитина Сервері зовсім не означає, що повідомлення виводитиметься саме на Сервері, там їх просто нікуди виводити.

Це означає, що якщо ми в серверній процедурі виводитимемо повідомлення за допомогою цього методу, вони будуть накопичуватися в деякому буфері і виведуться вони на екран лише тоді, коли серверна процедура закінчиться і відбудеться повернення на Клієнта.

У цей момент система запитатиме дані з буфера і виведе їх на екран.

Ця ж особливість стосується і класу ПовідомленняКористувачу. На малюнку наведено приклад використання методу Повідомитина стороні Сервера.

В результаті використання методу Повідомитина стороні Сервера вивели повідомлення на екран на стороні Клієнта.

Механізм оповіщень потрібен, щоб інформувати користувача у тому, що у системі “щось” сталося і це “щось” вимагає уваги користувача. Оповіщення створюються двома сценаріями:

  1. Самою платформою при інтерактивному запису або зміні об'єкта
  2. Розробником під час виклику в коді методу .

Саме оповіщення є невеликим віконцем, яке з'являється, як правило, в нижньому правому кутку і повідомляє про досконалу дію. Протягом кількох секунд воно поступово гасне та пропадає. При цьому якщо навести на оповіщення курсор мишки, воно не гасне і можна уважно його прочитати.

Крім того, до оповіщень можна звернутися у відповідній області інформаційної панелі (кнопка "Історія" зліва внизу форми програми у варіанті інтерфейсу "Версії 8.2").

Щоб створювати власні оповіщення, необхідно використовувати метод глобального контексту ПоказатиОповідьКористувача(). Його синтаксис до редакції 8.3.10 подано нижче:

ПоказатиОповідання Користувача (<Текст>, <НавигационнаяССылка>, <Пояснение>, <Картинка>)

У першому параметрі передається текст, який виводитиметься в оповіщенні.

Далі другим параметром можна передати якесь навігаційне посилання на якийсь елемент інформаційної бази(Той елемент, який відповідає тексту нашого повідомлення). При натисканні користувачем на оповіщення буде виконано перехід за цим посиланням.

За допомогою третього параметра можна передати пояснення повідомлення, тобто. якийсь розширений опис.

Також можна надати картинку, що відображає статус оповіщення.

Слід зазначити, що ці параметри є необов'язковими для заповнення. Нижче наведено приклад використання даного методу(у конфігураторі та в режимі користувача у варіанті інтерфейсу «Версії 8.2»).

У редакції платформи 8.3.10.216 для інтерфейсу у варіанті «Таксі» механізм оповіщень був істотно доопрацьований з метою підвищення зручності роботи як у тонкому, так і веб-клієнті. З цієї причини змінилися і параметри, що передаються в метод ПоказатиОповідьКористувача(). Тепер синтаксис виглядають так:

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

Видно, що другий параметр, раніше званий НавігаційнеПосилання, отримав нове ім'я ДіяПри Натисканні. Це пов'язано з тим, що тепер у нього стало можливим передавати не лише рядок із навігаційним посиланням, а й опис оповіщення. Це проілюстровано скріншотом нижче:

Як видно з прикладу, у нас з'явилася можливість програмним чином обробляти натискання на вікно з оповіщенням згідно з логікою, яка необхідна.

Наступний параметр СтатусОповіданняКористувачаз'явився вперше. У ньому вказується статус оповіщення (Інформація чи Важливе).

У випадку варіанта Важливо, якщо користувач не відреагував на повідомлення, то після того, як воно буде приховано з екрана, його можна буде прочитати через Центр оповіщень (про нього нижче). У випадку варіанта Інформація, оповіщення видаляється без запам'ятовування в цьому центрі. Давайте перепишемо код нашого прикладу, як показано нижче:

Після виконання команди отримаємо приблизно такий вид вікна програми:

На панелі інструментів з'явилася кнопка з піктограмою дзвінка, за якою викликається згаданий вище Центр оповіщень. У ньому накопичуються нові важливі оповіщення, на які користувач поки що ніяк не відреагував.

Якщо в Центрі є якісь оповіщення, то поруч із ним з'являється маленька помаранчева точка, щоб привернути увагу користувача. Користувач може відкрити Центр оповіщень, прочитати текст і, якщо необхідно, виконати якісь дії.

З Центру оповіщення забирається натисканням на кнопку очищення, проте якщо з оповіщенням пов'язана якась дія, то, як користувач клацне мишею по тексту повідомлення, воно теж пропаде.

І, нарешті, останнім доданим параметром став КлючУнікальності. З його допомогою можна знайти відображене на екрані оповіщення та змінити його. Якщо оповіщення з таким параметром немає, то буде показано нове оповіщення.

Як бачимо, можливостей, які надаються відповідним методом, стало ще більше! Але це не всі зміни у механізмі сповіщень.

Як ви вже, напевно, встигли помітити, чи змінився їх зовнішній вигляд. Тепер оповіщення виглядають більш сучасно та ергономічно, але їх не можна переміщати по екрану та змінювати їх розмір. Зверніть увагу, в нашому прикладі, текст оповіщення просто не помістився повністю в самому вікні, і читати його повністю користувач зможе, тільки відкривши Центр Оповіщень. Тому не варто в тексті сповіщення писати велику кількість тексту.

Також до нових можливостей відноситься і одночасне відображення на екрані до трьох оповіщень.

На цьому завершимо наше знайомство із програмним формуванням оповіщень. Проте згадаємо, що оповіщення формуються як розробником програмно, а й самої платформою на момент інтерактивної запису чи зміни об'єкта. І часто цей факт викликає нерозуміння насамперед у користувачів-початківців: навіщо потрібні ці службові оповіщення, які, до речі, не можна відключити?

Давайте уявимо таку просту ситуацію: користувач встановив фільтр у якомусь списку для зручності. Допустимо, він зробив це у формі списку довідника Номенклатури. Потім, через якийсь час, вирішив запровадити новий елементз найменуванням “Стілець”, який відповідає встановленому раніше фільтру. Вводить його, записує та…? І не бачить його у списку. Що робитиме середньостатистичний користувач? Звісно, ​​введе його вдруге, але знову не побачить. Далі може бути третій, четвертий, вп'яте. Коли йому набридне вводити те саме, він, нарешті, запитає у вас: а куди все пропадає?

Саме тому платформа і відображає ці службові оповіщення, інформуючи користувача про те, що його дія виконана. У прикладі в момент інтерактивного запису користувач побачить таке оповіщення:

Термінуючі повідомлення

Термінуючі повідомлення – це повідомлення, які дозволять працювати, доки користувач не здійснить певні дії, тобто. доки він не опрацює повідомлення.

Про можливість використання термінуючих повідомлень у Платформі 8.3 ми поговоримо трохи пізніше (останнім часом їх намагаються не використати, тому розглянутий приклад більше стосується Платформи 8.2).

Існують два методи для видачі повідомлень, що термінують Попередженняі Питання. Попередженнявідрізняється від питаннятим, що має єдину кнопку ОК.

У питанні можуть визначатися різні набори варіантів відповідей ( Та ні, ДаНі Скасування, ОК, ОКОтмена, ПовторитиСкасувати, ПерерватиПовторитиПропустити), які задаються за допомогою параметра.

Виведемо якесь попередження за допомогою рядка (наприклад, у модулі керованого додатка):

Попередження (“Зараз буде відкрито базу”);

Щоб відкрити модуль керованої програми, слід у дереві конфігурації вибрати об'єкт Конфігурація, викликати контекстне менюта вибрати пункт Відкрити модуль керованої програми.

В даному випадку, при запуску програми буде виводитися вікно, яке є модальним. Модальне вікно перекриває всі вікна, які існують у додатку. Поки ми не обробимо це вікно, подальші дії неможливі.

Аналогічно працює і функція Питання.

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

Обов'язковими є лише перші два параметри. Для другого параметра тип даних складової ( РежимДіалогаПитанняабо СписокЗначень). Третій параметр ( <Таймаут> ) характеризує інтервал часу в секундах, протягом якого система чекатиме на відповідь користувача.

Після закінчення інтервалу вікно питання буде закрито. Аналогічний параметр ( <Таймаут> ) є і у функції Попередження.

Як приклад використання функції Питанняможна використовувати наступний код, записаний у модулі керованої програми:

Звертаю Вашу увагу, що ці методи ( Попередженняі Питання) не доступні на сервері. І це логічно, тому що інтерфейсні методи не можуть бути виконані на сервері, де немає користувача.

Особливості використання модальних вікону Платформі 8.3

У платформі 8.3 є режими роботи з використанням і без використання модальності. За замовчуванням стоїть параметр Не використовувати режим модальності.

У цьому випадку використання термінуючих повідомлень неможливе. У разі потреби використання термінуючих повідомлень (функції Попередженняі Питання) слід змінити значення якості конфігурації на Використати.

Модальне вікно виводиться на верх і блокує роботу з іншими вікнами до завершення дій з модальним вікном. Крім того, зупиняється виконання програмного коду на місці, де відбувається виклик цього вікна. Виконання коду продовжиться лише після закриття модального вікна.

По-перше, проблеми з використанням модальних вікон виникають для мобільного додатку. По-друге, у браузері модальність вікон реалізується за допомогою окремих вікон, що спливають.

У налаштуваннях браузера за замовчуванням спливаючі вікна часто заборонені. Користувача доводиться змушувати встановлювати дозвіл на вікна.

Браузери для планшетних комп'ютеріві для телефонів у більшості випадків взагалі не підтримують спливаючі вікна.

Для заміни функцій Питанняі Попередженнярозроблено нові методи: ПоказатиПитання, ПоказатиПопередження.

Ці методи дозволяють викликати вікно, але зупиняти виконання програмного коду. Технічно це реалізується формуванням псевдоокна усередині батьківського вікна. Псевдовікно не перекриває батьківське вікно. Після відкриття такого вікна код продовжує виконуватись.

Отримання та обробка введених користувачем значень здійснюється в окремій процедурі, що викликається під час закриття діалогового вікна.

Синтаксис функції ПоказатиПопередження:

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

Параметр <ОписаниеОповещенияОЗавершении> (Необов'язковий)

Тип даних: Опис Оповіщення.

Містить опис процедури, яка буде викликана після закриття вікна попередження.

Синтаксис функції ПоказатиПитання:

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

Обов'язковими є перші три параметри.

Нижче наведено приклад використання функції.

Клас ПовідомленняКористувачеві

Основна зручність класу повідомлень ПовідомленняКористувачуполягає в тому, що це контекстне повідомлення (на відміну від методів Попередженняі Питання).

Повідомлення можуть бути пов'язані з конкретним екранним елементом. Цей об'єкт доступний і на сервері.

Слід звернути увагу, що, по-перше, цей об'єкт потрібно створювати. Наприклад: Повідомлення = Новий ПовідомленняКористувачеві;

Таким чином, ми створюємо екземпляр даного об'єкта.

По-друге, потрібно прописувати текст повідомлення окремою властивістю.

По-третє, у властивості Полеможна вказати, до якого елементу форми це повідомлення має бути прив'язане.

Увага! Для прив'язки до потрібного поля форми зверніть увагу на ініціалізацію властивостей ШляхДанимі КлючДаних. Для документа при розміщенні коду в модулі об'єкта можна писати:

Повідомлення.ШляхКДаним = "Об'єкт";
Повідомлення.КлючДаних = ЦейОб'єкт.Посилання;

Щоб відкрити модуль документа, слід у вікні редагування об'єкта (документа) на закладці Іншенатиснути на кнопку Модуль об'єкту.

Для експерименту в модулі об'єкта документа розмістимо код.

Нижче представлений отриманий в режимі користувача результат для Платформи 8.3.

Слід зазначити, що повідомлення, які виводяться за допомогою нового об'єкта системи ПовідомленняКористувачуу випадку є термінирующими. Тобто. система дозволить користувачеві продовжити подальші дії не відреагувавши на повідомлення, що виводяться.

Але, по-перше, дані повідомлення досить помітні. По-друге, зазвичай повідомлення користувачеві виводяться на момент запису елементів довідників чи проведення документів, тобто, коли виконуються якісь перевірки. І якщо були виявлені помилки, то користувач побачить ці повідомлення.

Відповідно, на момент виявлення помилок скасовується транзакція, тобто. забороняється запис елемента довідника або забороняється проведення документа.

Таким чином, відбувається своєрідна емуляція термінуючого повідомлення. Тому що дія скасовується, поки користувач не відреагує на повідомлення, завершити дію, наприклад, провести документ, буде не можна.

Але, з іншого боку, можна закрити документ без проведення, ніяк не прореагувавши на повідомлення. Тому дані повідомлення користувачу не є такими, що термінують.

Повідомлення про стан процесу

Існує спеціальна функція, за допомогою якої можна відображати зразковий хід виконання будь-якого процесу.

Синтаксис: Стан(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
Параметри:<ТекстСообщения>і<Пояснение>– не обов'язкові, тип – Рядок.
Текст виводиться на спеціальну панель стану.
<Прогресс>параметр також необов'язковий, але наочний.
Тип: Число. Значення індикатора прогресу (від 1 до 100).
<Картинка>також необов'язковий параметр.
При обробці якоїсь події можуть використовуватися періодичні виклики функції типу:

При цьому можуть змінюватись написи, а можуть змінюватися значення параметра Прогрес.

Функція може викликатися як із однієї процедури (функції), і з кількох. Таким чином, можна відстежувати стан виконання процесу.

Якщо ви хочете ознайомитися з механізмом сповіщення більш детально, то зараз перервіться і прочитайте нашу нову статтю Відображення прогресу тривалих операцій в 8.3.10 . У ній вже не на рівні новачка пояснюються всі тонкощі та підводні каменіроботи цього механізму.

Ми завершуємо знайомство зі способами інформування користувача. Сподіваємося, що у вас склалося розуміння, у яких ситуаціях слід застосовувати той чи інший спосіб.

Хочеться ще раз наголосити на тому факті, що якщо ваша конфігурація (версії 8.3.3+) передбачає роботу за допомогою веб-клієнта, то:

  • на рівні конфігурації має бути встановлене налаштування режиму модальності «Не використовувати»
  • у коді мають використовуватися методи асинхронної моделі взаємодії з користувачем. Такі методи починаються зі слів Показатиабо Почати.

Більш детально про відмову від використання модальних вікон у платформі 1С:Підприємство 8.3 можна почитати у фінальній статті циклу. А ми йдемо далі і, нарешті, приступаємо до вивчення довгоочікуваного інтерфейсу «Таксі», який вже неодноразово згадувався у наших матеріалах.

Реалізовано у версії 8.3.10.2168.

Ми доопрацювали механізм оповіщень користувача. Тепер їм однаково зручно користуватися як у тонкому клієнту, так і у веб-клієнті. Ми змінили зовнішній вигляд оповіщень та додали їм низку нових можливостей.

Показ кількох оповіщень

У старій реалізації одночасно на екрані відображалося лише одне оповіщення. Нове оповіщення перекривало собою попереднє. Таким чином, якщо поспіль виводилося кілька оповіщень, то існувала велика ймовірність того, що користувач не встигне прочитати попереднє сповіщення, оскільки воно буде перекрито таким.

Тепер у більшості випадків одночасно може відображатися до трьох оповіщень:

Це вірно для тонкого клієнта, товстого клієнта, та для веб-клієнта, що працює у браузерах Internet Explorer і Google Chrome . Браузери Safariі Mozilla Firefox дозволяють відображати необмежену кількість оповіщень, а браузер Microsoft Edge показує одне останнє оповіщення, але в ньому є Action Center, в якому дублюються всі оповіщення.

Відображення сповіщень при неактивному вікні програми

Раніше у веб-клієнті оповіщення виводилися лише у активне вікно браузера. Якщо користувач переключався на інше вікно або іншу програму, він не бачив сповіщення. Тепер, використовуючи веб-клієнт, оповіщення відображаються на екрані навіть у тому випадку, коли вікно програми згорнуте або неактивне.

При першому виклику методу ПоказатиОповідьКористувача()у веб-клієнті в Google Chrome, Mozilla Firefoxі Safariбраузер буде запитувати користувача дозволу на використання оповіщень. Користувач може дозволити їх висновок для цього додаткуабо заборонити.

Якщо користувач заборонить виведення сповіщень, то будуть використовуватися оповіщення нового вигляду, але вони будуть відображатися всередині вікна браузера.

Центр оповіщень

Щоб сповіщення не пропадали назавжди, ми реалізували центр оповіщень. А у самих сповіщень ми реалізували нову властивість – СтатусОповіданняКористувача. Воно може набувати двох значень: Інформаціяі Важливе.

Оповіщення зі статусом Інформаціявідображаються на екрані, і через 10 секунд зникають (у браузері Microsoft Edge- Через 4 секунди). Оповіщення зі статусом Важливеповодяться так само, але при цьому вони зберігаються в центрі оповіщень.

Центр оповіщення доступний з панелі інструментів. Про те, що є нові важливі сповіщення, сигналізує помаранчева точка поруч із його іконкою.

У центрі оповіщень відображаються важливі оповіщення, на які користувач ще не відреагував - не закрив або не виконав пов'язану з оповіщенням дію. Оповіщення розташовуються в порядку їх появи, нові зверху. Таким чином, навіть якщо користувач відходив від комп'ютера, він не пропустить важливих оповіщень.

Оповіщення можна забрати зі списку кнопкою очищення. Якщо з оповіщенням пов'язана деяка дія, то після натискання мишею текст сповіщення воно також пропаде. Команда Очистити оповіщеннявидаляє зі списку всі оповіщення. При цьому, якщо з оповіщеннями були пов'язані дії, то вони не виконуються.

Виконання дій при натисканні

У старій реалізації єдина дія, яку можна було виконати при натисканні на оповіщення, це перехід за навігаційним засланням. Вона передавалася метод другим параметром.

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

Тепер ми розширили можливості оповіщень, і в другому параметрі ви можете передати не лише рядок з навігаційним посиланням, а й опис сповіщення.

ПоказатиОповідьКористувача(<Текст>, <ДействиеПриНажатии>, …

Опис оповіщення вказує на процедуру, яка має бути виконана при натисканні цього оповіщення.

Зовнішній вигляд

У тонкому клієнті у варіанті інтерфейсу Таксістиль сповіщень буде максимально близьким до стилю сповіщень браузера Google Chromeпри використанні Notifications API.


Якщо використовується варіант інтерфейсу Версія 8.2, то стиль і поведінка оповіщень залишаються незмінними.

У веб-клієнті зовнішній вигляд оповіщень визначається браузером. За великим рахунком оповіщення виглядатимуть так само, як у тонкому клієнті, але у кожного браузера є свої особливості. Наприклад, ви можете порівняти, як ті самі оповіщення покаже Internet Explorerі Mozilla Firefox.


Крім цього, є й інші особливості. Наприклад, у браузері Internet Explorerпідтримуються лише оповіщення, що відображаються у вікні програми. А у браузері Safariпараметр Картинкане підтримується, і оповіщення відображаються зверху екрана.