Имя: Пароль:
1C
1С v8
Как передать текущий документ в процедуру Заполнить другого документа
0 sidalexsandr
 
23.10.12
12:44
Есть Документ1  в его модуле формы создаю документ ТехническоеЗадание и вызываю Процедуры ОбработкаЗаполнения для документа ТехническоеЗадание. Передаю Обработке текущий документ с помощью ЭтотОбъект. В результате процедура ОбработкаЗаполнения не получает доступ к Документ1.
ТехЗадание = Документы.ТехническоеЗадание.СоздатьДокумент();
ТехЗадание.Заполнить(ЭтотОбъект);
1 1Страх
 
23.10.12
12:45
лучше ссылку, а как знаешь, что не получаешь?
2 sidalexsandr
 
23.10.12
12:45
Вопрос: Как передать в качестве параметра методу Заполнить() документ из которого я вызываю метод Заполнить();
3 sidalexsandr
 
23.10.12
12:47
(1) У меня дальше написанно в модуле ТехЗадание.ПолучитьФорму("Документ.ТехническоеЗадание.ФормаОбъекта").Открыть();

и открывается пустой документ.
4 1Страх
 
23.10.12
12:48
а что в обработке заполнения?
5 sidalexsandr
 
23.10.12
12:51
Заполняю реквизиты документа ТехническоеЗадание беря значения из док-та Документ1 (Дата,котрагент,....) .
6 Maxus43
 
23.10.12
12:52
ТехЗадание = Документы.ТехническоеЗадание.СоздатьДокумент();
ТехЗадание.Заполнить(Ссылка);

чо не работает то?
7 YF
 
23.10.12
12:52
(0) Документ1, на момент вызова создания технического задания Записан?
8 del123
 
23.10.12
12:53
Покажи ОбработкуЗаполнения в документе "Техническое задание"
9 sidalexsandr
 
23.10.12
12:54
Заработало, вот код:
Записать();
   ТехЗадание = Документы.ТехническоеЗадание.СоздатьДокумент();
   ТехЗадание.Заполнить(ЭтотОбъект.Ссылка);
   ТехЗадание.Дата = ТекущаяДата();
   ТехЗадание.УстановитьВремя();
   ТехЗадание.УстановитьНовыйНомер();
   ТехЗадание.Записать();
   ФормаДокумента = ТехЗадание.ПолучитьФорму("ФормаДокумента") ;
   Если Не ФормаДокумента.Открыта () Тогда
       ФормаДокумента.Открыть();
   КонецЕсли;
10 Maxus43
 
23.10.12
12:55
в книгу знаний ещё отправь
11 sidalexsandr
 
23.10.12
12:56
(10) Как в книгу знаний
12 Maxus43
 
23.10.12
12:57
(11) сори, табличку "сарказм" забыл дома)
13 1Страх
 
23.10.12
13:14
жесть

ФормаДокумента = ТехЗадание.ПолучитьФорму("ФормаДокумента") ;
   Если Не ФормаДокумента.Открыта () Тогда
       ФормаДокумента.Открыть();
   КонецЕсли;
14 Maxus43
 
23.10.12
13:15
(13) шо такое? даже в типовых так пишут
15 Reset
 
23.10.12
13:16
(14) Наверное, он имеет в виду, что документ только что создан и форма открыта быть не может
16 Maxus43
 
23.10.12
13:17
(15) с фигали? у нового объекта можно токрыть форму и показать, без записи дока
17 Reset
 
23.10.12
13:20
(16) см (9)
ТехЗадание = Документы.ТехническоеЗадание.СОЗДАТЬДОКУМЕНТ();

Если Не ФормаДокумента.Открыта () Тогда  // ??? кем, когда?
18 Reset
 
23.10.12
13:21
Не ну я допускаю что кто-то может изъ$%$уться и в обработке заполнения открывать форму
19 Maxus43
 
23.10.12
13:22
(17) я в (9) смотрю, там на первый взгляд чисто
20 Reset
 
23.10.12
13:23
(19) По другому. При каких условиях условие будет ложным?
Если Не ФормаДокумента.Открыта () Тогда
21 Reset
 
23.10.12
13:24
не при каких, если не допускать маразма из (18).
Значит, проверка тупо лишняя
22 Maxus43
 
23.10.12
13:25
(21) ааа, да, проверка излишняя. Я думал ты пишеш что форму вобще нельзя открыть у только созданного дока)
23 Reset
 
23.10.12
13:27
(22) Я только предположение высказал про то, о чем (13) :))
24 Reset
 
23.10.12
13:30
А, понял, двусмысленно в (15).
Правильно так:
только что создан и форма Открыта() быть не может
)
25 Maxus43
 
23.10.12
13:30
дада
26 sidalexsandr
 
23.10.12
13:54
(16) В окончательном варианте убрал строки:
ТехЗадание.Дата = ТекущаяДата();
   ТехЗадание.УстановитьВремя();
   ТехЗадание.УстановитьНовыйНомер();
   ТехЗадание.Записать();
27 del123
 
23.10.12
13:58
а зачем установитьВремя() и УстановитьНовыйНомер()?