Имя: Пароль:
1C
1С v8
Открыть форму документ-объекта
0 DirecTwiX
 
26.12.13
21:48
На сервере изменяю документ и хочу его открыть, не записывая.
ДокументОбъект на клиент передать нельзя, чтобы вызвать ОткрытьЗначение().
Как открыть форму этого документа?
1 Kvestin
 
26.12.13
21:49
(0) Я правильно понимаю, что вы хотите открыть НА СЕРВЕРЕ ФОРМУ документа?
2 DirecTwiX
 
26.12.13
21:57
(1) Нет, неправильно
3 DirecTwiX
 
26.12.13
21:57
(1) Говорю же, что пробовал передавать документОбъект на клиент
4 Kvestin
 
26.12.13
22:08
(3) Я так понимаю, что это УФ. Т.е. задача следующая:
На сервере получается объект некого документа, затем он изменяется но не записывается.
Необходимо открыть форму этого документа с данными не из базы а измененого объекта.

Не сталкивался с такой необходимостью, но допускаю что можно реализовать по следующему алгоритму:
- на сервере помещаете объект во временное хранилище
- адрес помещеного объекта возвращаете на клиента
- на клиенте открываете форму нового документа необходимого типа и передаете форме в качестве параметра адрес в хранилище
- при создании на сервере формы получаете из хранилища значения по адресу и делаете ЗначениеВРеквизитФормы
5 DirecTwiX
 
26.12.13
22:19
(4) Пожалуй, откажусь от этой затеи)
Спасибо

Мне кажется, что можно проще реализовать.. Посмотрим, может кто откликнется
6 Kvestin
 
26.12.13
22:25
(5) Всегда пожалуйста :)
7 Мимохожий Однако
 
26.12.13
22:31
Полуофф: у клиента есть глаза,уши, хвост, мышь и клавиатура, а на сервере только мозг без глаз, ушей и т.п.
8 Kvestin
 
26.12.13
22:33
(7) Не только мозг еще и БД под боком :)
9 Мимохожий Однако
 
26.12.13
22:34
Продолжаем: на клиенте -  ноги, руки, а на сервер тело с содержимым.
10 Kvestin
 
26.12.13
22:35
(9) Пошла анатомия.
11 Мимохожий Однако
 
26.12.13
22:38
...чего то я наклюкался...ик
12 Sasha_1CK
 
27.12.13
06:16
&НаКлиенте

ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("Ключ", Ссылка_Нн_Объект);
ПараметрыОткрытия.Вставить("Реквизит", ЗначениеРеквизита);
        
Форма = ПолучитьФорму("Документ.ИмяДокумента.Форма.ФормаДокумента", ПараметрыОткрытия);
Форма.Открыть();

Затем в процедуре формы
ПриЧтенииНаСервере
можете получить значение вашего реквизита
через Форма.Параметры.Реквизит и назначить нужному вами реквизиту.

То есть модуль формы документа придется задействовать в любом случае.

И изменение фактически происходит уже на клиенте, а не на сервере - то есть приведенная вами задача по идее не решаема  - передать с сервера на клиента измененный объект, без его сохранения нельзя.
13 Kvestin
 
27.12.13
09:34
(12) Можно. Именно так как я написал в (4). Даже проверил для интереса.
Для красоты еще необходимо написать в процедуре ПриСозданииНаСервере

Модифицированность = Истина;

В противном случае открывается измененный объект, а форма показывает, что он не изменен.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн