|
Передача ссылки на объект в объект родитель | ☑ | ||
---|---|---|---|---|
0
fantomrik
24.01.15
✎
09:34
|
Добрый день!
Из одно полностью нетипового документа делаю возможность создавать другой типовой документ - "Событие". По кнопке, из первого документа, программно создается док.Событие и открывается его форма. Какие есть варианты вернуть в первый объект ссылку на созданное Событие, если событие будет записано? Событий мб создано много, поэтому эти ссылки буду хранить в ТЧ первого документа. Сам вижу как варианты: 1.Типовой механизм "Документ основание" 2.Модально открывать форму события при при создании из первого объекта и возвращать ссылку при закрытии формы. Но модальное окно не очень удобно. В типовом коде УПП нашел функцию платформенную ОповеститьОЗаписиНовогоОбъекта (Ссылка), но не совсем понимаю для чего она используется и как. Возможны еще какие то варианты? Спасибо! |
|||
1
Rie
24.01.15
✎
09:39
|
(0) Что именно непонятно с ОповеститьОЗаписиНовогоОбъекта()?
|
|||
2
ДенисЧ
24.01.15
✎
09:41
|
продам сп ))))
Там написано.... |
|||
3
fantomrik
24.01.15
✎
09:43
|
(1) НУ не понял я толком из описания, в моем случа можно использовать эту процедуру как то?
|
|||
4
Rie
24.01.15
✎
09:48
|
(3) Какая именно буква в описании непонятна?
Ну и наконец (или на конец), можно при помощи Оповестить() оповестить кого угодно о чём угодно. |
|||
5
fantomrik
24.01.15
✎
09:54
|
(4) Оповестить() а можно немного конкретнее для моего примера для "особо одаренных" ?)
|
|||
6
Rie
24.01.15
✎
09:55
|
(5) Немного конкретнее - сказано в документации. Если что непонятно (после прочтения документации) - о том и спроси.
Мне вот непонятно, зачем в (0) сначала создавать объект, а затем открывать его форму. Почему бы сразу не открыть эту форму и не мучиться? |
|||
7
fantomrik
24.01.15
✎
11:04
|
(6) Не понял вас...
&НаКлиенте Процедура СоздатьНовоеСобытие(Команда) ДокументСобытие = Документы.Событие.СоздатьДокумент(); ДокументСобытие.ТипСобытия = Перечисления.ВходящееИсходящееСобытие.Исходящее; ДокументСобытие.ПолучитьФорму().Открыть(); КонецПроцедуры Как я открою форму не создав объект? |
|||
8
Chameleon1980
24.01.15
✎
11:10
|
типа открытьформунового
|
|||
9
Rie
24.01.15
✎
11:16
|
(7) Например,
ОткрытьФорму("Справочник.Товары.ФормаЭлемента",,ЭтаФорма); |
|||
10
fantomrik
24.01.15
✎
11:52
|
Вобщем сделал скорее интуитивно чем разобрался в принципах работы функций Оповестить и ей подобных... Если кто то знает где о них можно почитать подробнее - поделитесь ссылкой пожалуйста!
Решил так задачу. в первом не типовом объекте: &НаКлиенте Процедура СоздатьЗапись(Команда) ДокументСобытие = Документы.Событие.СоздатьДокумент(); ДокументСобытие.ДополнительныеСвойства.Вставить("ВернутьСсылкуПриЗаписи", Истина); ДокументСобытие.ДополнительныеСвойства.Вставить("СсылкаНаТрафик", Объект.Ссылка); ДокументСобытие.ВидСобытия = Перечисления.ВидыСобытий.Запись; ДокументСобытие.ТипСобытия = Перечисления.ВходящееИсходящееСобытие.Исходящее; ФормаСобытия = ДокументСобытие.ПолучитьФорму(); ФормаСобытия.Открыть(); КонецПроцедуры В форме события дописал: Процедура ПриЗакрытии() Если мОбновлятьВладельца Тогда ОповеститьОЗаписиНовогоОбъекта(Ссылка); КонецЕсли; //+ fantomrik 2015-01-23 task#37403 Если ЭтотОбъект.ДополнительныеСвойства.Свойство("ВернутьСсылкуПриЗаписи") Тогда Оповестить("ПриЗакрытии", Ссылка , ЭтотОбъект.ДополнительныеСвойства.Свойство("СсылкаНаТрафик")); КонецЕсли; //- fantomrik 2015-01-23 task#37403 КонецПроцедуры ну и снова в форме первого нетипового документа встречаю событие: &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ИмяСобытия = "ПриЗакрытии" и ТипЗнч(Параметр) = Тип("ДокументСсылка.Событие") Тогда Попытка ОбъектСобытие = Параметр.ПолучитьОбъект(); СтрокаТЧСобытия = Объект.События.Добавить(); СтрокаТЧСобытия.Событие = Параметр; Исключение КонецПопытки; КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |