Имя: Пароль:
1C
 
Напомните как открыть форму нового документа и вернуть ссылку на него. (УФ т.к.)
,
0 RomaH
 
naïve
28.07.16
15:03
новый документ1
на форме надпись-гиперссылка
по гиперссылке открываю форму нового документа2
как получить ссылку на записанный документ2 после закрытия формы?

    ОписаниеОповещения = Новый ОписаниеОповещения("ЗакрытиеФормыПериметрии",ЭтаФорма);
    
    Если ЗначениеЗаполнено(Объект.ИсследованиеПериметрии) Тогда
        ОткрытьФорму("Документ.ИсследованиеПериметрии.Форма.ФормаДокумента",Новый Структура("Ключ",Объект.ИсследованиеПериметрии),ЭтаФорма,,,,ОписаниеОповещения,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);    
    Иначе
        ОткрытьФорму("Документ.ИсследованиеПериметрии.Форма.ФормаДокумента",Новый Структура("ЗначенияЗаполнения",Новый Структура("Пациент",Объект.Пациент)),ЭтаФорма,,,,ОписаниеОповещения,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);    
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ЗакрытиеФормыПериметрии(Результат,ДопПараметры) Экспорт

    
КонецПроцедуры
1 RomaH
 
naïve
28.07.16
15:04
т.к. - тонкий клиент
2 RomaH
 
naïve
28.07.16
15:23
а так что бы в форме Документа2 ничего нового не рисовать?
3 DmitrO
 
28.07.16
16:01
Ну, раз никто не пишет.. Можно сделать, например, так:

//переменная модуля
&НаКлиенте
Перем ФормаИсследованиеПериметрии;

&НаКлиенте
Процедура ...
    ФормаИсследованиеПериметрии = ОткрытьФорму("...
КонецПроцедуры

&НаКлиенте
Процедура ЗакрытиеФормыПериметрии(Результат,ДопПараметры) Экспорт
    Объект.ИсследованиеПериметрии = ФормаИсследованиеПериметрии.Объект.Ссылка;
    ФормаИсследованиеПериметрии = Неопределено;
КонецПроцедуры
4 Fragster
 
гуру
28.07.16
16:04
Если открыть форму нового в режиме выбора и с указанным владельцем, то при ее закрытии в событие "обработкавыбора" владельца прилетит нужная ссылка
5 DmitrO
 
28.07.16
16:10
А можно, например, наверно даже так:

&НаКлиенте
Процедура ...
    Форма = ОткрытьФорму("...
    Форма.ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ЗакрытиеФормыПериметрии",ЭтаФорма, Форма.Объект);
КонецПроцедуры

&НаКлиенте
Процедура ЗакрытиеФормыПериметрии(Результат,ДопПараметры) Экспорт
    Объект.ИсследованиеПериметрии = ДопПараметры.Ссылка;
КонецПроцедуры
6 Fragster
 
гуру
28.07.16
16:12
(5) так не работает
7 Fragster
 
гуру
28.07.16
16:13
(6) вернее работает, но это все равно через жопу и может вести к утечкам памяти
8 DmitrO
 
28.07.16
16:14
(7)почему?
9 DmitrO
 
28.07.16
16:15
утечка памяти будет если мы в доп. параметр саму форму передадим..
10 Fragster
 
гуру
28.07.16
16:19
(8)(9) да хз, вообще сомнительный способ. самый простой - это (4). У 1с вообще записано пожелание, чтобы при открытии формы в режиме выбора ссылка еще и в параметр закрытия передавалась (тогда в оповещении о закрытии ссылку можно отловить и не надо править открываемую форму), но это, наверное, никогда не случится.
11 RomaH
 
naïve
29.07.16
03:23
Если открыть форму нового в режиме выбора -
в режиме выбора ...?
12 Tateossian
 
29.07.16
04:01
ОткрытьЗначение(Ссылка) или при отказе от модальности НачатьОткрытиеЗначения(Ссылка) или там еще есть оповещение.
13 Fragster
 
гуру
29.07.16
10:54
(11) ПараметрыОткрываемойФормы = Новый Структура("РежимВыбора", Истина)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший