19 февр. 2016 г.

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

Понадобилось при разработке управляемой формы уведомить пользователя не только сообщением о ошибке, а и указать на поле где содержит ошибка? Для этих целей подойдет объект СообщениеПользователю.
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Обрати внимание!";
если на клиенте
Сообщение.Поле = "Объект.Контрагент";
Сообщение.Сообщить();
или
Сообщение.Поле = "Контрагент";
Сообщение.ПутьКДанным= "Объект";
Сообщение.Сообщить();
если на сервере
Сообщение.Поле = "Контрагент";
Сообщение.УстановитьДанные(РеквизитФормыВЗначение("Объект"));
Сообщение.Сообщить();
или
Сообщение.Поле = "Контрагент";
Сообщение.ПутьКДанным = "Объект"; // нюанс в том, что на сервере очень часто не известно, что такое "Объект" поэтому лучше использовать .УстановитьДанные()
Сообщение.Сообщить();
А вот пример где нужно указать на поле в Табличной части
Объект.Запасы – Табличная часть
Номенклатура – поле, на которое хочу установить активность
Индекс  - в данном случаи нужно обращаться по индексу, а не по Номеру строки
Для Каждого Строка Из Объект.Запасы Цикл 
  Сообщение = Новый СообщениеПользователю;
   Индекс = Объект.Запасы.Индекс(Строка);
   Сообщение.Текст = "Пользователь, обрати внимание "+Строка.Номенклатура+" на это поле";
   Сообщение.Поле = "Объект.Запасы["+Индекс+"-1].Номенклатура";
   Сообщение.Сообщить();
КонецЦикла;
 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07