Имя: Пароль:
1C
1С v8
Открытие упр формы
,
0 ARCorp
 
09.12.15
17:36
Добрый день!

в обычной форме документа есть такой код:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
        Контрагент = Справочники.Контрагенты.НайтиПоКоду(1);

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


Так вот, если открывается обычная форма, то реквизит контрагент на форме заполнен, если управляемая то нет! Не могу понят в чем причина и как победить, помогите плиз )
1 hhhh
 
09.12.15
17:38
(0) процедуры должны быть привязаны к событиям формы
2 ARCorp
 
09.12.15
17:42
А можно подробнее?
3 filipp
 
09.12.15
17:45
В управляемой форме

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Объект.Контрагент = Справочники.Контрагенты.НайтиПоКоду("000067");
КонецПроцедуры
4 aleks_default
 
09.12.15
17:47
(0)Такого извращения я еще не встречал...
5 ARCorp
 
09.12.15
17:47
Дело в том что заполнение контрагента я вставил для примера.
На самом деле у меня происходит обработка заполнения в модуле объкта.
6 Nuobu
 
09.12.15
17:48
(0) Ты код прописываешь в обычной форме, а не в управляемой.
В управляемой форме в процедуре "ПриСозданииНаСервере()" - пусто?
7 ARCorp
 
09.12.15
17:49
пусто, еще раз повторяю, что код для примера, заполнение происходит в объекте

Процедура ЗаполнитьНаОсновании(ДанныеЗаполнения) Экспорт  
    бюджет = ДанныеЗаполнения.бюджет;
    ВидЗРС = ДанныеЗаполнения.ВидЗРС;
КонецПроцедуры
8 Nuobu
 
09.12.15
17:51
(7) Так ты так и говори, что заполняешь, в какой ф-и, какими данными.
А то ты привёл код из обычной формы, а проблема-то как раз в формах.

Ты пользуешь "ОбработкуЗаполнения"?
9 aleks_default
 
09.12.15
17:52
(7) ЭтотОбъект в модуле объекта и Объект основной реквизит формы - это разные сущности.
10 ARCorp
 
09.12.15
17:52
(8) (9) использую обработку заполнения в модуле объекта
11 aleks_default
 
09.12.15
17:54
после вот этого
ЭтотОбъект.УстановитьСсылкуНового(ТекСсылка);

надо записать объект, тогда будет работать, но я вы никогда такого не стал делать
12 ARCorp
 
09.12.15
17:55
(11) без записи объекта никак? если пользовтель не хочет записывать, передумал?
13 aleks_default
 
09.12.15
17:57
(12) тока (3)
14 ARCorp
 
09.12.15
17:58
должен быть способ
15 Nuobu
 
09.12.15
17:59
(14) И он есть!
Создаешь в форме реквизит с типом "ССылка" и запоминаешь его при открытии, можешь даже передать из другой формы.
16 ARCorp
 
09.12.15
18:01
(15) можно краткий пример?
17 Nuobu
 
09.12.15
18:04
(16) Краткий - к сожалению - нет.
Можно не на основании создать, а открыть форму нового документа и параметром передать ссылкуНового.
18 Nuobu
 
09.12.15
18:04
Но лучше послушай (11) Я полностью к нему присоединяюсь.
19 ARCorp
 
09.12.15
18:05
(18) Создание на основании является важным условием
20 Nuobu
 
09.12.15
18:05
(19) И передачей туда новой ссылки?
21 ARCorp
 
09.12.15
18:06
Ну мне просто от того заполнен ли реквизит хоз операция надо открыть старую или упр форму, а в упр форме все должно быть заполено
22 Nuobu
 
09.12.15
18:08
(21) А при чем здесь "ПриОткрытии"? Делай эту проверку в том месте, откуда вызываешь свой документ. На крайняк, сделай команду.
23 ARCorp
 
09.12.15
18:10
Самое интересное, у меня в другом места такой код работает, с отличием в том доукмент уже записан (
24 Nuobu
 
09.12.15
18:13
(23)       Работает из-за этого:

Если ЭтоНовый() Тогда
            ТекСсылка = Документы.учДС_платежноеПоручениеИсходящее.ПолучитьСсылку(Новый УникальныйИдентификатор());            
            ЭтотОбъект.УстановитьСсылкуНового(ТекСсылка);

А то, что ты делаешь - не правильно. Сделай по-людски.
25 ARCorp
 
09.12.15
18:13
попробую через параметр