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

Попытался расширением добавить в событии формы ПередЗаписью - но этот код не отрабатывает. ВызватьИсключение() пишет в центре, что документ не проводиться, что неправда.

Как выдать Предупреждение после проведения документа?
---
В модуле формы (СообщениеОбОшибке - строковый реквизит формы):

```1c
    &НаКлиенте
    Процедура ПослеЗаписи(ПараметрыЗаписи)
    Если ЗначениеЗаполнено(ЭтаФорма.СообщениеОбОшибке) Тогда
    пОписаниеОповещения = Новый ОписаниеОповещения("обработатьОшибкуПроведения", ЭтаФорма);
    ПоказатьПредупреждение(пОписаниеОповещения, ЭтаФорма.СообщениеОбОшибке, 0, нСтр("ru='При проведнии произошла фигня, не мешающая самому проведению'", "ru") )
    КонецЕсли;
    КонецПроцедуры

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

    &НаКлиенте
    Процедура обработатьОшибкуПроведения(ДопПараметры) Экспорт
    СообщениеОбОшибке = ";
    КонецПроцедуры
```

В модуле документа:

```1c
    Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    ЭтотОбъект.ДополнительныеСвойства.Вставить("Сообщение", "Привет");
    КонецПроцедуры
```

P.S.
Постарайтесь все проверки делать до проведения. Негоже это в транзакции делать.
---
В модуле формы (СообщениеОбОшибке - строковый реквизит формы):

```1c
    &НаКлиенте
    Процедура ПослеЗаписи(ПараметрыЗаписи)
    Если ЗначениеЗаполнено(ЭтаФорма.СообщениеОбОшибке) Тогда
    пОписаниеОповещения = Новый ОписаниеОповещения("обработатьОшибкуПроведения", ЭтаФорма);
    ПоказатьПредупреждение(пОписаниеОповещения, ЭтаФорма.СообщениеОбОшибке, 0, нСтр("ru='При проведнии произошла фигня, не мешающая самому проведению'", "ru") )
    КонецЕсли;
    КонецПроцедуры

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

    &НаКлиенте
    Процедура обработатьОшибкуПроведения(ДопПараметры) Экспорт
    СообщениеОбОшибке = ";
    КонецПроцедуры
```

В модуле документа:

```1c
    Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    ЭтотОбъект.ДополнительныеСвойства.Вставить("Сообщение", "Привет");
    КонецПроцедуры
```

P.S.
Постарайтесь все проверки делать до проведения. Негоже это в транзакции делать.
---
Да. забыл написать, что если напрягает работа с доп. свойствами, то можете просто на сервере вместо Сообщить, создать
СообщениеПользователю и перехваить их на форме в событии "ПослеЗаписиНаСервере":
рез = ПолучитьСообщенияПользователю(Истина);

По мне, так строк кода столько же, но 1-ом варианте не надо плодить лишний объект СообщениеПользователю.
Судя по тому, что он умеет - это всяко больше (на какие-то миллидоли, ага) напрягает систему.