Имя: Пароль:
1C
1С v8
Открыть форму нового документа и проконтроллировать его проведение
0 RizONE
 
17.11.22
21:56
Доброе!
Соственно сабж. имеем в 1с8.2
МояФорма = ПолучитьФорму("Документ.Анкета.Форма.ФормаДокумента");
МояФорма.Объект.Респондент = ВасяПупкин;
МояФорма.Открыть();
Как программно узнать провелся документ или нет?
1 RizONE
 
17.11.22
21:59
Нужно после проведение этого документа по условию автоматом провести другой док.
Или лучше проведение второго документа прописать в Процедура ОбработкаПроведения(Отказ, РежимПроведения) первого документа?
2 RizONE
 
17.11.22
22:00
как лучше это сделать?
3 vicof
 
17.11.22
22:09
А при чем здесь форма?
4 RizONE
 
17.11.22
22:20
(3) При том что через МояФорма.Открыть(); открывается форма документа для заполнения. Дальше нужно проконтролировать нажал оператор Ок или просто закрыл форму документа не проводя.
Если же он провел документ то при выполнении определенного условия другой документ должен быть проведен не показывая формы.
5 vicof
 
17.11.22
22:29
Есть подписки на события.
Есть бизнес-процессы.

Пользователь может и групповое проведение сделать, не открывая формы.
6 RizONE
 
17.11.22
22:31
(5) О, точно, подписка. Сенкс.
Попробую
7 RizONE
 
17.11.22
23:43
ДокументОснование имеет составной тип. как назначить ему конкретный тип?
так не работает :(

Док.ДокументОснование.ТипЗначения = Новый ОписаниеТипов("ДокументСсылка.Анкета");
Док.ДокументОснование = Источник; //Источник конкретный док из 3х возможных типов
8 Остап Ибрагимович
 
18.11.22
03:29
(7) а просто присвоить, предварительно проверив ТипЗнч(Источник) если надо - не?
9 Ryzeman
 
18.11.22
08:22
(0) >>МояФорма.Открыть();
>>Как программно узнать провелся документ или нет?

Твой код его и не проводит. Для проведения документа форма тебе вообще не нужна. Если тебе нужно показать форму пользователю, лучше сперва создай и проведи, потом показывай, ИМХО (бывают исключения в виде хитровыдрюченной логики на самой форме, но это простительно только в случае адового легаси, когда переделывать сильно дольше)

(2) Лучше всего управляемые блокировки. Но оно тебе не надо, создай один, проведи, создай второй, запиши ссылку первого на реквизит второго, проведи. Код будет выполняться последовательно, если ошибок не было он не может не выполниться. Если же опасаешься отказа, то банальная проверка запросом или по полю Проведен
10 lodger
 
18.11.22
09:54
в ОФ можно открыть форму модально и ждать код возврата, в подчиненную форму на закрытие поставить оповещение или передавать в Закрыть(свой параметр)
11 RizONE
 
19.11.22
18:42
(8) просто Док.ДокументОснование = Источник; после проведения показывает значение Док.ДокументОснование как неопределено. По этому и решил что нужно привести к нужному типа. Хотя в табличной части так и достаточно для составного типа - просто присвоить нужный тип. А с реквизитом документа так не получается.

(10) да, тоже хорошо как решение проблемы. Не просто открывать, а модально с отслеживанием результата
12 RizONE
 
19.11.22
19:05
Док.ДокументОснование = Источник.Ссылка; сработало