Особливості використання об'єкта сообщеніепользователю в керованому додатку 1с 8

На платформі 1С 8.2, для інформування користувачів, пропонується використовувати новий загальний об'єкт - СообщеніеПользователю. Об'єкт досить простий, але є кілька неочевидних особливостей його використання в керованих формах, які будуть розглянуті в даній статті.







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

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







2). Досить часто необхідно вивести повідомлення в обробці проведення документа, причому не тільки коли виникла помилка при проведенні, а й в тому випадку, коли документ успішно проведено. Проблема виникає коли користувач використовує команду "Провести і закрити". Повідомлення прив'язується до вікна містить форму поточного документа, яке в разі успішного проведення тут же закривається і користувач його не бачить. Вся справа в тому що метод Повідомити () об'єкта СообщеніеПользователю виводить повідомлення в АКТИВНА вікно, документ як правило відкривається в додатковому вікні, яке в даному випадку і є активним. Таким чином, щоб споживач міг прочитати повідомлення після закриття форми документа, необхідно перед використанням методу Повідомити () активізувати основне вікно керованого застосування. Один з варіантів - зробити це в подію форми ПередЗапісью (), наприклад так:

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

Передбачимо випадок, коли користувач скористався командою "Провести", а не "Провести і закрити", в цьому випадку форма документа залишається відкритою, але не активною, активізуємо її: