|
УФ. модальная форма перед записью документа | ☑ | ||
---|---|---|---|---|
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) расширение не причем.
тот же код не отрабатывает как надо и напрямую в форме документа. &НаКлиенте Процедура ПередЗаписью(Отказ,ПараметрыЗаписи) ОбработчикОповещения = Новый ОписаниеОповещения("ПроцедураОповещения", ЭтотОбъект); Режим = РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс; ОткрытьФорму("Документ.КакойтоМойДокумент.Форма.ФормаПроверки",Новый Структура("Контрагент",Объект.Контрагент), УникальныйИдентификатор,,,, ОбработчикОповещения, Режим); КонецПроцедуры &НаКлиенте Процедура ПроцедураОповещения(РезультатОткрытияФормы, ДополнительныеПараметры) Экспорт //сюда документ приходит уже записанный КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |