|   |   | 
| 
 | Как на клиенте открыть форму нового документа, созданного на сервере | ☑ | ||
|---|---|---|---|---|
| 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) ну тебе же дали ссылку уже. Читай внимательно. Получаешь форму. Получаешь ее основной реквизит. Заполняешь этот реквизит на сервере так, как тебе надо. Передаешь уже заполненную структуру (именно структуру) в реквизит формы. Открываешь форму, наслаждаешься     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |