|
УФ. модальная форма перед записью документа |
☑ |
0
Stim
01.02.19
✎
15:57
|
Перед записью документа нужно пользователю показать форму, в которой он введет связанные значения и потом документ запишется/не запишется в зависимости от введенных значений.
делаю в расширении:
&НаКлиенте
Процедура РасшПередЗаписьюПосле(Отказ, ПараметрыЗаписи)
ОбработчикОповещения = Новый ОписаниеОповещения("ПослеОткрытияФормыПодтвержденияСМПКонтрагента", ЭтотОбъект);
Режим = РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс;
ОткрытьФорму("Документ.КакойтоМойДокумент.Форма.ФормаПодтвержденияТипаСМПКонтрагента",Новый Структура("Контрагент",Объект.Контрагент), УникальныйИдентификатор,,,, ОбработчикОповещения, Режим);
КонецПроцедуры
&НаКлиенте
Процедура ПослеОткрытияФормыПодтвержденияСМПКонтрагента(РезультатОткрытияФормы, ДополнительныеПараметры) Экспорт
Если НЕ РезультатОткрытияФормы = Неопределено И ТипЗнч(РезультатОткрытияФормы) = Тип("Структура") Тогда
РезультатПроверкиКонтрагента = РезультатОткрытияФормы.Результат;
Сообщить(РезультатПроверкиКонтрагента);
КонецЕсли;
КОнецПроцедуры
выскакивает новая форма, интерфейс блокируется, все как надо.
Но документ не ждет обработки оповещения, а спокойно записывается, пока открывается форма "ФормаПодтвержденияТипаСМПКонтрагента"
как не записывать документ, пока открывается вторая форма?
|
|
1
Stim
01.02.19
✎
15:58
|
+ если писать
Процедура РасшПередЗаписьюПосле(Отказ, ПараметрыЗаписи)
Отказ = ИСТИНА;
то расширение ругается "Запрещено изменение параметра, отменяющего действие"
|
|
2
bolobol
01.02.19
✎
16:01
|
ПередЗаписью()
Отказ= истина;
ПроблемныйЭлементИнтерфейса= ПолеВводаНужныхДанных;
ПроблемныйЭлементИнтерфейса.СообщениеОбОшибке= "Сюда данные введите, иначе ой"
Как-то так это делается.
|
|
3
bolobol
01.02.19
✎
16:02
|
А почему После?
Перед же надо проверять, не?
|
|
4
Сияющий в темноте
01.02.19
✎
16:08
|
(1)если расширение не дает менять такие параметры,то в топку всю модель расширений и править конфигурацию.
Наверное,проще написать ПередЗаписьюВместо и перенести в нее стандартный код,т.к.после того,как дочерняя форма закроется,то основная должна записаться и выполнить стандартный код.
|
|
5
Stim
04.02.19
✎
11:12
|
(4) расширение не причем.
тот же код не отрабатывает как надо и напрямую в форме документа.
&НаКлиенте
Процедура ПередЗаписью(Отказ,ПараметрыЗаписи)
ОбработчикОповещения = Новый ОписаниеОповещения("ПроцедураОповещения", ЭтотОбъект);
Режим = РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс;
ОткрытьФорму("Документ.КакойтоМойДокумент.Форма.ФормаПроверки",Новый Структура("Контрагент",Объект.Контрагент), УникальныйИдентификатор,,,, ОбработчикОповещения, Режим);
КонецПроцедуры
&НаКлиенте
Процедура ПроцедураОповещения(РезультатОткрытияФормы, ДополнительныеПараметры) Экспорт
//сюда документ приходит уже записанный
КонецПроцедуры
|
|