Открытие формы из обработки заполнения

1. Tailor_Made 04.12.20 12:05 Сейчас в теме
Здравствуйте. Есть документ1, на основании него создается документ2. Но хочу перед созданием документа2 открыть форму, где только поле выбора(для заполнения полей ТЧ документа2) и после того, как пользователь выберет значение на этой форме, то продолжить заполнение докуменат2 и открыть уже его форму. Не могу разобраться, открываю так:
ДополнительныеПараметры = Новый Структура;
ОписаниеОповещения = Новый ОписаниеОповещения("ПродолжитьЗаполнениеНаОснованииТребования", ЭтотОбъект, ДополнительныеПараметры);
ОткрытьФорму("Документ.ОприходованиеМатериаловИзПроизводства.Форма.МС_ФормаВыбораТипаСтоимости", , ЭтотОбъект, , , ,ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);


ПродолжитьЗаполнениеНаОснованииТребования - Экспортная процедура, которая находится в модуле объекта документа1
не понимаю как сделать, чтобы форма документа2 не открывалась и не продолжалось дальнейшее действие процедуры обработки проведения, пока не выполнится выбор на форме
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
21. spacecraft 04.12.20 13:35 Сейчас в теме +0.5 $m
(19)
Процедура ПриОткрытии()
	Если ПараметрОснование<>Неопределено Тогда
        ПодключитьОбработчикОжидания("ОткрытьФормаВыбораТипаСтоимости",0.1,Истина);
    КонецЕсли;
КонецПроцедуры

Процедура ОткрытьФормаВыбораТипаСтоимости() Экспорт
	ОткрытьФорму("Документ.ОприходованиеМатериаловИзПроизводства.Форма.МС_ФормаВыбораТипаСтоимости", , ЭтаФорма, , , ,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
Показать

Только еще нужно обработать результат выбора из формы.
Tailor_Made; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. spacecraft 04.12.20 12:18 Сейчас в теме
(1) стандартный механизм обработки заполнения не совсем подходит.
Понимаете, что создание на основании не требует открытия документ1. Ведь можно и из формы списка ввести на основании.
Как вариант:
1. добавляем на форму Документ1 команду.
2. по команде открывает форму Документ1 для выбора полей.
3. вызывать принудительно ввод на основании с передачей параметров
4. в обработке заполнения Документ2 проверять источник и параметры. И только по нужным производить заполнения. Остальное запретить (вызывать исключение, к примеру)
6. Tailor_Made 04.12.20 12:23 Сейчас в теме
(5)я понимаю, поэтому и хочу вызвать открытие формы выбора(она не является основной формой документа1) из ОбработкиЗаполнения
7. spacecraft 04.12.20 12:24 Сейчас в теме
(6) забудьте. Так не получится.
8. Tailor_Made 04.12.20 12:28 Сейчас в теме
(7)а после открытия формы созданного документа2 как сделатЬ?
9. spacecraft 04.12.20 12:31 Сейчас в теме
(8) а он уже открыт. Значит обработка заполнения уже отработала. Тогда только делать свою функцию по заполнению.
10. Tailor_Made 04.12.20 12:33 Сейчас в теме
(9)ну пусть будет так: форма документа2 открылась, он заполнился уже и потом выводится эта новая форма с полем выбора и одно поле перезаполняется. Как это правильно реализовать?
11. spacecraft 04.12.20 12:40 Сейчас в теме
(10) я уже и не помню обычные формы. ПриОткрытии вызываете нужную форму.
2. SlavaKron 04.12.20 12:12 Сейчас в теме
ПродолжитьЗаполнениеНаОснованииТребования – должна быть клиентская процедура.
3. HAMAZ 7 04.12.20 12:13 Сейчас в теме
для начала формы какие? Управляемые ? Обычные?
4. Tailor_Made 04.12.20 12:15 Сейчас в теме
Сори, забыл указать. Обычные формы, УПП
12. platonov.e 158 04.12.20 12:42 Сейчас в теме
А что мешает, после открытия формы, сделать эти действия выбора, как в обычные реквизиты?
13. Tailor_Made 04.12.20 12:46 Сейчас в теме
(12)может и так лучше, я просто не знаю
а как это сделать после открытия? чтобы открылась эта форма, выбрали значение и перезаполнилась ТЧ?
15. platonov.e 158 04.12.20 12:59 Сейчас в теме
(13) Я контекст просто не понимаю. Но если отвечать на ваш вопрос - то в процедуре ПослеОткрытия вызвать нужную форму и получить значение
16. Tailor_Made 04.12.20 13:07 Сейчас в теме
(15)контекст таков: при создании документа2 на основании документа1, нужно вывести форму, в которой есть только поле выбора(для заполнения реквизита ТЧ документа2). На этой форме выберут значение, нажмут "ОК", она должна закрыться и выбранным значением должен заполниться реквизит строк ТЧ.

нету процедуры ПослеОткрытия. Обычные формы, УПП
18. platonov.e 158 04.12.20 13:14 Сейчас в теме
(16) Если там выбрать один реквизит, тогда зачем открывать форму? Добавьте реквизит на форму, при его изменении заполняйте нужною колонку с этого реквизита.
14. Tailor_Made 04.12.20 12:52 Сейчас в теме
Думал, так сделать, в конфе процедуры формы ПриОткрытии
Если ПараметрОснование<>Неопределено Тогда
ОткрытьФорму("Документ.ОприходованиеМатериаловИзПроизводства.Форма.МС_ФормаВыбораТипаСтоимости", , ЭтотОбъект, , , ,, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);		
	КонецЕсли;


Но форма докуменат поверх этой формы открывается, а надо бы наоборот
17. spacecraft 04.12.20 13:12 Сейчас в теме
(14)
РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс

поменяйте на БлокироватьОкноВладельца. И ЭтотОбъект на ЭтаФорма
19. Tailor_Made 04.12.20 13:22 Сейчас в теме
(17)сделал так, но всё равно форма докуменат перекрывает эту форму. Видимо, что открытие формы документа в конец процедуры ПриОткрытии происходит. Не понимаю как сделать..
20. spacecraft 04.12.20 13:27 Сейчас в теме
(19) через ПодключитьОбработчикОжидания
21. spacecraft 04.12.20 13:35 Сейчас в теме +0.5 $m
(19)
Процедура ПриОткрытии()
	Если ПараметрОснование<>Неопределено Тогда
        ПодключитьОбработчикОжидания("ОткрытьФормаВыбораТипаСтоимости",0.1,Истина);
    КонецЕсли;
КонецПроцедуры

Процедура ОткрытьФормаВыбораТипаСтоимости() Экспорт
	ОткрытьФорму("Документ.ОприходованиеМатериаловИзПроизводства.Форма.МС_ФормаВыбораТипаСтоимости", , ЭтаФорма, , , ,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
Показать

Только еще нужно обработать результат выбора из формы.
Tailor_Made; +1 Ответить
22. Tailor_Made 04.12.20 13:37 Сейчас в теме
(21)спасибо вам огромное, это то, что нужно!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот