Имя: Пароль:
1C
1С v8
8.2 УФ как передать параметр при закрытии модальной формы?
0 RomaH
 
naïve
13.10.11
14:15
Че-то не догоняю
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
   
   Если ЭтаФорма.МодальныйРежим Тогда
       //СтандартнаяОбработка = Ложь;
       Закрыть(Объект);
   КонецЕсли;
       
КонецПроцедуры


падает приложение на таком коде
1 RomaH
 
naïve
13.10.11
14:20
НовыйПациент = ОткрытьФормуМодально("Справочник.Пациенты.Форма.ФормаЭлемента",,ЭтаФорма);

как нового пациента получить?
2 Amra
 
13.10.11
14:22
Релиз платформы какой? Случаем не 14.528?
3 vmv
 
13.10.11
14:22
открой для себя СсылкаНового() и юзай.

можно проверять СсылкаНового() на существование записанного объекта, я так делаю и горя не знаю с сервером и клиентом
4 vmv
 
13.10.11
14:24
+(3) в том числе и на 14.528.

Дело не в глюках платформ, а в том что каждый новый релиз все жестче на самый попупулярный стиль написания клиен-секрверных приложений "абыкак"
5 acsent
 
13.10.11
14:28
Закрыть перед закрытием это сильно
6 RomaH
 
naïve
13.10.11
14:29
(5) вот я и спрашиваю - как передать параметр модальной формы?
7 RomaH
 
naïve
13.10.11
14:47
(3) можно поподробнее?

&Клиент
ПолучитьСсылкуНовгоНаСервере
ОткрытьФормуМодально("",Структура("Ключ",СсылкаНового"),ЭтаФорма)

Тут говорит что объект не найден
8 RomaH
 
naïve
14.10.11
13:00
так все-же?
не догоняю

Это в при открытии формы документа:

НовыйПациент = ПолучитьСсылкуНовгоПациента();
       
ОткрытьФорму("Справочник.Пациенты.Форма.ФормаЭлемента",Новый Структура("НовыйПациент",НовыйПациент),ЭтаФорма);

дальше
в форме справочника:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   Если Параметры.Свойство("НовыйПациент") Тогда
       НовыйПациент = РеквизитФормыВЗначение("Объект");
       НовыйПациент.УстановитьСсылкуНового(Параметры.НовыйПациент);
       ЗначениеВРеквизитФормы(НовыйПациент,"Объект");
   КонецЕсли;
   

как теперь вернуть записаный/или не записаный элемент справочника?
9 RomaH
 
naïve
14.10.11
13:38
в общем извратился так:

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
   
   Если ЭтаФорма.МодальныйРежим И Не ЗакрытьМодульнуюФорму Тогда
       СтандартнаяОбработка = Ложь;
       ЗакрытьМодульнуюФорму = Истина;
       Закрыть(Объект.Ссылка);
   КонецЕсли;
       
КонецПроцедуры

ЗакрытьМодульнуюФорму  - реквизит формы
Независимо от того, куда вы едете — это в гору и против ветра!