|
УТ11: внеш.обраб.заполнения и Сообщить()
| ☑ |
0
andrewks
12.08.12
✎
13:35
|
имеется внешняя обработка заполнения объекта (заказ клиента)
в модуле обработки отрабатывает команда, идёт проверка на заполненность поля, если не заполнено - надо вывести сообщение, привязанное к соотв. полю
Если НЕ ЗначениеЗаполнено(ТекОбъект.Контрагент) Тогда
Сообщ=Новый СообщениеПользователю;
Сообщ.Текст="Не заполнено поле ""Контрагент""!";
Сообщ.КлючДанных=ТекОбъектСсылка;
Сообщ.ПутьКДанным="Контрагент";
Сообщ.Сообщить();
Возврат;
КонецЕсли;
а теперь - внимание, вопрос: почему сообщение не привязывается к открытой форме объекта?
|
|
1
andrewks
12.08.12
✎
13:59
|
^
|
|
2
lavryshev
12.08.12
✎
14:06
|
Контрагент - реквизит обработки?
|
|
3
andrewks
12.08.12
✎
14:12
|
(2) реквизит документа
|
|
4
lavryshev
12.08.12
✎
14:30
|
Если НЕ ЗначениеЗаполнено(ТекОбъект.Контрагент) Тогда
Сообщ=Новый СообщениеПользователю;
Сообщ.Текст="Не заполнено поле ""Контрагент""!";
Сообщ.КлючДанных=ТекОбъектСсылка;
Сообщ.Поле="Контрагент";
Сообщ.Сообщить();
Возврат;
КонецЕсли;
|
|
5
andrewks
12.08.12
✎
14:34
|
(4) так я тоже пробовал, эффект одинаковый.
сообщения прикрепляются к окошку "Команды заполнения объектов", и закрываются вместе с ним
|
|
6
andrewks
12.08.12
✎
23:05
|
короче, взлетело только так: заменил вызов на клиентский, там сначала определяю гуид формы документа, пихаю его в реквизит формы, затем делаю редирект в первоначальный серверный метод в модуле обработки, и там уже юзаю этот гуид, пихая его в атрибут ИдентификаторНазначения
|
|
7
эцп
12.08.12
✎
23:28
|
(0) Если располагать в модуле объекта, например, в процедуре "ОбработкаПроверкиЗаполнения", то стоит написать так:
Если НЕ ЗначениеЗаполнено(ТекОбъект.Контрагент) Тогда
Сообщ=Новый СообщениеПользователю;
Сообщ.Текст="Не заполнено поле ""Контрагент""!";
Сообщ.УстановитьДанные(ТекОбъект);
Сообщ.Поле="Контрагент";
Сообщ.Сообщить();
Возврат;
КонецЕсли;
|
|