имеется внешняя обработка заполнения объекта (заказ клиента)
в модуле обработки отрабатывает команда, идёт проверка на заполненность поля, если не заполнено - надо вывести сообщение, привязанное к соотв. полю
Если НЕ ЗначениеЗаполнено(ТекОбъект.Контрагент) Тогда
Сообщ=Новый СообщениеПользователю;
Сообщ.Текст="Не заполнено поле ""Контрагент""!";
Сообщ.КлючДанных=ТекОбъектСсылка;
Сообщ.ПутьКДанным="Контрагент";
Сообщ.Сообщить();
Возврат;
КонецЕсли;
а теперь - внимание, вопрос: почему сообщение не привязывается к открытой форме объекта?
Если НЕ ЗначениеЗаполнено(ТекОбъект.Контрагент) Тогда
Сообщ=Новый СообщениеПользователю;
Сообщ.Текст="Не заполнено поле ""Контрагент""!";
Сообщ.КлючДанных=ТекОбъектСсылка;
Сообщ.Поле="Контрагент";
Сообщ.Сообщить();
Возврат;
КонецЕсли;
короче, взлетело только так: заменил вызов на клиентский, там сначала определяю гуид формы документа, пихаю его в реквизит формы, затем делаю редирект в первоначальный серверный метод в модуле обработки, и там уже юзаю этот гуид, пихая его в атрибут ИдентификаторНазначения
(0) Если располагать в модуле объекта, например, в процедуре "ОбработкаПроверкиЗаполнения", то стоит написать так:
Если НЕ ЗначениеЗаполнено(ТекОбъект.Контрагент) Тогда
Сообщ=Новый СообщениеПользователю;
Сообщ.Текст="Не заполнено поле ""Контрагент""!";
Сообщ.УстановитьДанные(ТекОбъект);
Сообщ.Поле="Контрагент";
Сообщ.Сообщить();
Возврат;
КонецЕсли;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший