Имя: Пароль:
1C
1С v8
ОткрытьФорму() открывает 2 раза (?)
0 Makar47
 
04.10.14
13:34
1С 8.3.5.1119
В справочнике1:

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

Соответственно в ДОкументе.Заказ:

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

Все работает как и ожидается - форма открывается с нужным параметром 1 раз.

Справочник2:

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

На РегистрСведений.ГруппыАналогов:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("ТекущийUUID") Тогда
        ЭтаФорма.Запись.ИдентификаторГруппы = Параметры.ТекущийUUID;
    КонецЕсли;
КонецПроцедуры

форма регистра открывается 2 раза. В чем подвох?
1 ОбычныйЧеловек
 
04.10.14
13:37
Даже читать не стал, попробуй поставить СтандартнаяОбработка)=ложь;
2 ОбычныйЧеловек
 
04.10.14
13:38
без скобочки разумеется.
3 Makar47
 
04.10.14
13:38
(1) - В ПриСозданииНаСервере на регистре? Ставил, эффекта 0. Почему тогда в 1 варианте все работает и без СтандартнаяОбработка)=ложь; ?
4 ОбычныйЧеловек
 
04.10.14
13:45
(3) поставь в той процедуре в которой делаешь "открытьформу "
5 Makar47
 
04.10.14
13:59
(4) простите, как это?
&НаКлиенте
Процедура Реквизит1ПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
    ПараметрыФормы = Новый Структура("ТекущийUUID", ПолучитьИД(Объект.Ссылка));
    СтандартнаяОбработка = Ложь;
    ОткрытьФорму("РегистрСведений.ГруппыАналогов.ФормаСписка", ПараметрыФормы);
КонецПроцедуры

И чего это будет? (естественно не работает)
6 ОбычныйЧеловек
 
04.10.14
14:47
(5)  если в эту процедуру решил поставить то тогда ставь
Отказ=Истина;
7 Makar47
 
04.10.14
14:53
(6) Спасибо, помогло! Только почему в 1 варианте все работает без "отказа"?...
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс