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

В этой статье рассмотрим один из способов вывода сообщения пользователю 1С – использование объекта СообщениеПользователю. С этим объектом можно работать на тонком, толстом, мобильном и веб-клиенте, а также в серверном контексте 1С 8.3.

Сообщение пользователю на управляемой форме 1С

Разберем, как при помощи этого метода вывести сообщение пользователю на управляемой форме в 1С. Самый простой вариант использования будет следующий:

&НаКлиенте
Процедура Заполнить(Команда)
	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = "Выберете контрагента";
	Сообщение.Сообщить();
КонецПроцедуры

В этом случае, просто внизу формы выйдет сообщение.

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

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

Например, у меня на форме документа имеется поле ввода Контрагент, которое связано с одноименным реквизитом документа. Этот реквизит формы Контрагент является подчиненным реквизитом основного реквизита  формы Объект.

Реквизиты управляемой формы 1С

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

&НаКлиенте
Процедура Заполнить(Команда)
	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = "Выберете контрагента";
	Сообщение.Поле = "Объект.Контрагент";
	Сообщение.Сообщить();	
КонецПроцедуры

В результате, плюсом к обычному сообщению внизу формы выйдет сообщение, которое будет привязано к элементу, связанному с этим реквизитом.

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

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

Реквизиты управляемой формы 1С

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

&НаКлиенте
Процедура Заполнить(Команда)	
	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = "Заполните комментарий";
	Сообщение.Поле = "Комментарий";
	Сообщение.Сообщить();	
КонецПроцедуры

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

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

Также, сообщение можно привязать к нужной колонке нужной строки табличной части на форме.  В моем примере есть табличная часть Товары с колонкой Количество.

Реквизиты управляемой формы 1С

Сделаем проверку на то, что значение в этой колонке пустое.

&НаКлиенте
Процедура Заполнить(Команда)
	Для Каждого стрТовар из Объект.Товары Цикл
		Если стрТовар.Количество = 0 Тогда
			Сообщение = Новый СообщениеПользователю;
			ИндексСтроки = стрТовар.НомерСтроки - 1;
			Сообщение.Поле = "Объект.Товары["+ИндексСтроки+"].Количество";
			Сообщение.Текст = "Количество не заполнено";
			Сообщение.Сообщить();
			Возврат
		КонецЕсли;
	КонецЦикла;	
КонецПроцедуры

В результате выйдет сообщение, привязанное к определенной строке нужной колонки.

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

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

Пойдем дальше! Иногда требуется выполнить проверку заполнения того или иного реквизита при проведении документа. В последних платформах 1С следует это делать в обработчике ОбработкаПроверкиЗаполнения, этот обработчик создается в модуле объекта, и срабатывает перед проведением документа.

В нем необходимо делать проверки на заполнение реквизитов документа.

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	Если Не ЗначениеЗаполнено(Контрагент) Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не заполнен контрагент";
		Сообщение.Поле = "Контрагент";
		Сообщение.ПутьКДанным = "Объект";
		Сообщение.КлючДанных = ЭтотОбъект.Ссылка;
		Сообщение.Сообщить();
		Отказ = Истина;
	КонецЕсли;
КонецПроцедуры

Если мы попробуем провести документ «Продажа товара» с пустым полем «Контрагент», то выйдет сообщение.

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

Можно сделать проще:

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	Если Не ЗначениеЗаполнено(Контрагент) Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не заполнен контрагент";
		Сообщение.Поле = "Контрагент";
		Сообщение.УстановитьДанные(ЭтотОбъект);
		Сообщение.Сообщить();
		Отказ = Истина;
	КонецЕсли;
КонецПроцедуры

Результат будет тот же самый. Что делает метод УстановитьДанные? Этот метод автоматически устанавливает свойства ПутьКДанным и КлючДанных на основании переданного в него объекта.  

Статья про вывод простых сообщений пользователям

Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»

Это изображение имеет пустой атрибут alt; его имя файла - 1C-в-желтом-цвете-3D-221x300.png

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Это изображение имеет пустой атрибут alt; его имя файла - 1_в-желтом-цвете-3D-маленькая-221x300.jpg

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

2 thoughts on “Сообщение пользователю в 1С

  1. А можно сообщение, привязанное к полю, выводить без заголовка «Ошибка»? Или с другим заголовком?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

четыре × пять =