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

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

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

Сообщить

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

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

Сообщить

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

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

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

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

Оповещение пользователя

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

Оповещение пользователя

Оповещение пользователя

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

Предопределенный элемент

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

Оповещение пользователя

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

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

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

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

Предупреждение

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

Предупреждение

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

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

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

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

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

Вопрос

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

Вопрос

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

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

Свойства:

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

Методы:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Состояние

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

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

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

Состояние

Подписывайтесь на группу ВКонтакте , где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С
Понравилась статья? Поделиться с друзьями:
Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok