Сообщения пользователю

В 1С бывают 2 вида сообщений пользователю:

  1. Ознакомительные — просто выводят сообщение на экран.
  2. Терминирующие (модальные) — блокируют выполнение программы, пока пользователь не нажмет какую-то кнопку (устарели, раньше это были методы Вопрос() и Предупреждение()).

Сообщить()

Данный метод выводит сообщение на экран. Сообщение всегда привязывается к форме, в которой было вызвано. Если в этой форме нажать «Записать и закрыть» и в момент записи вывести сообщение, то пользователь не увидит его, потому что форма после записи сразу закроется.

Метод Сообщить() можно использовать как на клиенте, так и на сервере. При вызове на сервере все сообщения накапливаются в буфере и выводятся при возврате управления на клиента. Первым параметром можно передать текст сообщения.

ПоказатьОповещениеПользователя()

Данный метод выводит сообщение в правом нижнем углу экрана. Сообщение медленно затухает и закрывается через 10 секунд. Сообщение не привязано к форме. Одновременно можно вывести максимум 3 оповещения. Метод доступен только на клиенте.

Параметры метода:

  • Текст — текст сообщения
  • ДействиеПриНажатии — навигационная ссылка (например на элемент справочника) или описание оповещения для выполнения какого-либо действия при нажатии на сообщение. При нажатии на навигационную ссылку будет открыт элемент справочника. Описание оповещения — это указатель на процедуру, которая будет вызвана при нажатии.
  • Пояснение — дополнительное пояснение.
  • Картинка — тут все понятно.
  • СтатусОповещенияПользователя — системное перечисление «СтатусОповещенияПользователя». если «Важное», то сообщение сохраняется в центре оповещений. Чтобы посмотреть все оповещения в центре оповещений нужно нажать кнопку с колокольчиком в правом верхнем углу экрана:
  • КлючУникальности — если вызвать второй метод с таким же ключом, то не будет показано новое оповещение, а будет изменено текущее. Если параметр не указан, то сообщение считается уникальным.

Если нажать на гиперссылку «Пояснение к оповещению», то выведется сообщение (то что мы написали в методе «ОбработкаНажатия»):

По нажатию на оповещение откроется карточка предопределенного элемента:

При изменении объектов базы данных (например при записи элемента справочника) платформа автоматически генерирует оповещения пользователю.

ПоказатьПредупреждение()

Данный метод выводит предупреждение в отдельном окне с кнопкой «ОК». По нажатию на кнопку предупреждение закрывается. Можно указать процедуру, которая будет выполнена после нажатия на кнопку. Можно использовать только на клиенте.

Параметры метода:

  • ОписаниеОповещенияОЗавершении — описание оповещения, которое будет выполнено после нажатию на кнопку «ОК». Можно не указывать, тогда ничего не будет выполнено.
  • ТекстПредупреждения — само предупреждение.
  • Таймаут — время в секундах, после которого предупреждение будет автоматически закрыто.
  • Заголовок — заголовок окна с предупреждением.

После нажатия на «ОК» выйдет сообщение:

Описание оповещения будет вызвано даже если не нажимать «ОК», а подождать 5 секунд (именно 5 секунд мы указали в третьем параметре).

ПоказатьВопрос()

Данный метод выводит диалоговое окно с кнопками для ответа. Можно указать процедуру, которая будет выполнена после нажатия на кнопку. Используется только на клиенте.

Параметры метода:

  • ОписаниеОповещенияОЗавершении — описание оповещения, которое будет выполнено после нажатию на кнопку. Результат нажатия передается первым параметром в процедуру. В зависимости от ответа пользователя можно выполнить различные действия.
  • ТекстВопроса — сам вопрос.
  • Кнопки — системное перечисление «РежимДиалогаВопрос» или список значений.
  • Таймаут — время в секундах, после которого окно с вопросом будет закрыто.
  • КнопкаПоУмолчанию — кнопка, на которой изначально будет фокус. Именно она будет считаться нажатой, если пройдет время указанное в параметре «Таймаут».
  • Заголовок — заголовок окна с вопросом.
  • КнопкаТаймаута — кнопка, на которой будет обратный отсчет секунд из параметра «Таймаут».

Вместо системного перечисления «КодВозвратаДиалога» можно использовать список значений со своими кнопками:

Класс СообщениеПользователю

Данный класс предоставляет возможность выводить на экран сообщения с привязкой к элементам формы. Без привязки к элементам формы сообщение ни чем не отличается от сообщения, выведенного методом Сообщить(). Можно использовать так на клиенте, так и на сервере. По умолчанию сообщение выводится в текущую активную форму.

Свойства:

  • ИдентификаторНазначения — идентификатор формы, к которой нужно привязать сообщение.
  • КлючДанных — ссылка на объект базы данных.
  • Поле — путь к реквизиту формы, если реквизит объекта, то «Объект.ИмяРеквизита», если реквизит формы то просто «ИмяРеквизита».
  • ПутьКДанным — путь до объекта, связанного с сообщением (как правило «Объект»).
  • Текст — сообщение.

Методы:

  • Сообщить() — выводит сообщение на экран.
  • УстановитьДанные(<Объект>) — автоматически заполняет свойства КлючДанных (ссылка или регистратор) и ПутьКДанным. ПутьКДанным берется из имени основного реквизита формы, который был преобразован в прикладной объект, аналогично методу РеквизитФормыВЗначение(«Объект»);

Простое сообщение

Достаточно заполнить свойство Текст и вызвать метод Сообщить().

Сообщение с привязкой к реквизиту объекта

Нужно в свойстве Поле указать полный путь к данным для элемента формы, возле которого должно быть сообщение.

Привязанное сообщение всегда отображается с заголовком «Ошибка:», его нельзя изменить.

Сообщение с привязкой к реквизиту формы

Сообщение с привязкой к реквизиту табличной части

Так как индексация строк начинается с нуля, то для первой строки нужно указать индекс 0.

Сообщение из модуля объекта

Здесь нужно вызвать метод УстановитьДанные() и передать параметром прикладной объект (например, справочник объект). Данный метод автоматически заполнит свойства КлючДанных и ПутьКДанным.

Как открыть форму при двойном клике по сообщению

Достаточно заполнить свойство КлючДанных.

Изначально сообщение будет выведено на форме обработки. При двойном клике по нему будет открыта форма справочника Номенклатура и в ней тоже будет выведено сообщение.

Как привязать сообщение к другой форме

Нужно в свойстве ИдентификаторНазначения указать уникальный идентификатор формы, в которой должно быть выведено сообщение.

Сообщение будет выведено только в открытой форме:

ПолучитьСообщенияПользователю()

Так как на сервере нельзя вывести сообщение, то они накапливаются в специальном буфере сообщений. При возврате управления на клиент, сообщения будут выведены на экран. До возврата управления на клиент можно получить все сообщения, которые еще не были показаны пользователю. Для этого нужно использовать метод ПолучитьСообщенияПользователю(). Данный метод вернет фиксированный массив объектов типа СообщениеПользователю:

В переменной МассивСообщений будет 3 объекта СообщениеПользователю. После возврата управления на клиента они будут последовательно выведены на экран. Но если вызвать данный метод с параметром Истина:

то сообщения будут удалены из буфера и не будут показаны пользователю.

Состояние()

Данный метод выводит сообщение со шкалой прогресса в панель состояния.

Параметры метода:

  • ТекстСообщения — текст.
  • Прогресс — число от 0 до 100. Если указан, то выводится шкала прогресса.
  • Пояснение — пояснение к сообщению.
  • Картинка

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями: