Имя: Пароль:
1C
1С v8
Как на клиенте открыть форму нового документа, созданного на сервере
0 bahtik
 
06.12.12
12:18
Здравствуйте!
Подскажите, пожалуйста, как мне на клиенте открыть форму нового документа, созданного на сервере:


&НаСервереБезКонтекста
Процедура СерверСформироватьЗаявкуНаЗакупку(Период, Склад)
   
   Док = Документы.ЗаявкаНаЗакупку.СоздатьДокумент();
   
   //Установка реквизитов документа
       ...


КонецПроцедуры // СформироватьЗаявкуНаЗакупку(Склад)


&НаКлиенте
Процедура СформироватьЗаявкуНаЗакупку(Команда)

   СерверСформироватьЗаявкуНаЗакупку(Период, Склад);
   
КонецПроцедуры
1 vicof
 
06.12.12
12:19
ОткрытьФорму()
и кури ее параметры
2 vicof
 
06.12.12
12:20
тока открывать надо на клиенте
3 vicof
 
06.12.12
12:20
ссылку с сервера вернуть
4 bahtik
 
06.12.12
12:21
То, что ОктрытьФорму(), я понимаю, а вот как именно того документа? Ссылки то у него еще нет...
5 vicof
 
06.12.12
12:22
(4) Документа тоже еще нет. И что ты открывать собрался?
6 bahtik
 
06.12.12
12:23
(5) Т.е. я не могу открыть форму нового, еще не записанного документа? Не верится что-то...
7 Водяной
 
06.12.12
12:24
Попробуй так:

&НаСервереБезКонтекста
Процедура СерверСформироватьЗаявкуНаЗакупку(Период, Склад,Док)
   
   Док = Документы.ЗаявкаНаЗакупку.СоздатьДокумент();
   
   //Установка реквизитов документа

       ...


КонецПроцедуры // СформироватьЗаявкуНаЗакупку(Склад)



&НаКлиенте
Процедура СформироватьЗаявкуНаЗакупку(Команда)
   Перем Док;    


   СерверСформироватьЗаявкуНаЗакупку(Период, Склад,Док);
   
   ОткрытьЗначение(док);
КонецПроцедуры
8 vicof
 
06.12.12
12:26
Давай сначал, нахрена тебе все это нужно?
9 bahtik
 
06.12.12
12:27
(7) "Док", как объект, не передашь на сервер и обратно. А ссылки еще нет.
10 bahtik
 
06.12.12
12:28
(8) Нужно просто сформировать новый документ и отобразить его форму на экране. Если это можно сделать как-то по другому, подскажите, как.
11 bahtik
 
06.12.12
12:30
Может я вообще не тем путем пошел? Может не нужно создавать объект, а просто окрыть форму и заполнить ее?
12 bahtik
 
06.12.12
12:30
...И все это на клиенте.
13 bahtik
 
06.12.12
12:30
Как правильно это делается, может кто-нибудь подсказать?
14 Водяной
 
06.12.12
12:31
(9) конечно, передается не объект а структура содержащая данные формы
15 ll13
 
06.12.12
12:32
16 К_Дач
 
06.12.12
12:33
Форма и документ-объект существуют отдельно. Если ты на сервере изменил объект, тебе нужно и форму тоже обновить. У формы есть главный реквезит (жирным выделен). Через него форма связана с данными на сервере. Передавай структуру и превращай ее в данные формы
17 К_Дач
 
06.12.12
12:34
(14) опредил))
18 yuch
 
06.12.12
12:36
Токо сейчас в логову пришло:

НачатьТранзакцию();
Ссылка = ФункцияВызывающаяНаСеререИЗаполняющаРеквизитыСЗаписать();

Параметр = Новый Структура("Ключ", Ссылка);
ОткрытьФорму("ФорманНашегоДокмента",Параметры);
ОтменитьТранзакцию();
19 vicof
 
06.12.12
12:36
(18) не логову, а в логово
20 bahtik
 
06.12.12
12:36
(16) "Через него форма связана с данными на сервере"

Как я понимаю, связана она через Объект.Ссылка. Вот в этом у меня загвоздка - ссылки нет, как мне их связать? Или в данном случае не нужно связывать? И тогда я на сервере создаю объект, заполняю его, потом передаю все заполненные данные на клиент, заполняю форму на клиенте, а потом при записи создается совершенно другой объект... Так?
21 yuch
 
06.12.12
12:37
(20) Не придирайтесь к очепяткам уважаемый.
Хоть и прикольно получилось)))
22 ll13
 
06.12.12
12:38
(20) Тебе в (15) все написал.
23 vicof
 
06.12.12
12:38
(20) СоздатьДокумент() создает объект в оперативной памяти, а записать помещает его в базу данных на жестком диске.
24 bahtik
 
06.12.12
12:38
(15) Все, почитал, все ясно. Спасибо!
25 bahtik
 
06.12.12
12:40
(23) Но в данном случае это все же не будет один и тот же объект, если я правильно понимаю...
26 К_Дач
 
06.12.12
12:42
(20) ну тебе же дали ссылку уже. Читай внимательно. Получаешь форму. Получаешь ее основной реквизит. Заполняешь этот реквизит на сервере так, как тебе надо. Передаешь уже заполненную структуру (именно структуру) в реквизит формы. Открываешь форму, наслаждаешься
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.