Имя: Пароль:
1C
1С v8
Модуль команды документа. Как открыть форму документа?
0 мистер игрек
 
12.11.13
13:51
Вот код модуля команды документа:


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

&НаСервере
Функция СоздатьДокументНаОсновании(ПараметрКоманды)
    ДокСписание = Документы.Списание.СоздатьДокумент();
    ДокСписание.Дата = ТекущаяДата();
    Для каждого Док Из ПараметрКоманды Цикл
        Для Каждого СтрДок Из Док.Товары Цикл
            СтрТч = ДокСписание.Товары.Добавить();
            ЗаполнитьЗначенияСвойств(СтрТЧ,СтрДок);
        КонецЦикла;
    КонецЦикла;
    ДокСписание.Записать();
    Возврат ДокСписание.Ссылка;
КонецФункции



Здесь из сервера получается уже записанный документ и открывается форма. А как добится, чтоб без записи документа получить форму документа на клиенте?
1 Euguln
 
12.11.13
13:54
(0) не поверишь, так же, только без записи.
2 мистер игрек
 
12.11.13
13:55
(1) Не получается
3 Euguln
 
12.11.13
13:59
(2) да ладно. А что не получается? Открыть форму не записанного, но заполненного документа?
4 мистер игрек
 
12.11.13
14:00
да
5 Euguln
 
12.11.13
14:07
(4) почитай про ЗначенияЗаполнения
6 мистер игрек
 
12.11.13
14:15
но чем его заполнять? не могу в клиент забрать данные документа объекта из сервера
7 Euguln
 
12.11.13
14:19
(6) про ЗначенияЗаполнения почитал?
8 an-korot
 
12.11.13
14:28
ты получаешь ссылку на документ в чем проблема открыть ее, зачем эти параметры формы? о_О

ДокСписание = СоздатьДокументНаОсновании(ПараметрКоманды);
ДокСписание.ПолучитьФорму("ФормаДокумента").Открыть();
9 cw014
 
12.11.13
14:29
(0) Тебе в (4) и (6)... И не надо создавать документ, через значения заполнения открывай
10 cw014
 
12.11.13
14:29
(8) Тут УФ
11 Зойч
 
12.11.13
14:30
открыть документ, передав в параметр основание
12 an-korot
 
12.11.13
14:34
вот так...

(10) ПараметрыФормы = Новый Структура(ДокСписание);

или у тебя в форме документа еесть обработка параметра с именем "ключ"?  ;)
13 мистер игрек
 
12.11.13
14:39
(12) нету
14 an-korot
 
12.11.13
14:44
(13) раз нету обработки параметров значит просто ссылку пихай.
15 мистер игрек
 
12.11.13
14:53
Когда на сервере заполнякется документ объект, потом этот объект или его ссылку невозможно вернуть на клиент.
Можно вернуть ссылку только после записи документа.
Я мне надо вернут ссылку без записи документа
16 an-korot
 
12.11.13
15:04
(15) вот у себя в хелпе записан пример кода, его узал и все получилось:

&НаКлиенте
Процедура СоздатьДокумент(Команда)
Форма = ПолучитьФорму("Документ.Реализация.ФормаОбъекта");
ДанныеФормы = Форма.Объект;
ЗаполнитьДокументНаСервере(ДанныеФормы);
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
Форма.Открыть();
КонецПроцедуры

&НаСервере
Функция ЗаполнитьДокументНаСервере(ДанныеФормы);
Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.Реализация"));
Для каждого Стр Из ТЗ Цикл
СтрДок = Док.Товары.Добавить();
СтрДок.Количество = Стр.Количество;
СтрДок.Номенклатура = Стр.Номенклатура;
КонецЦикла;
ЗначениеВДанныеФормы(Док,ДанныеФормы);
КонецФункции
17 мистер игрек
 
12.11.13
15:14
(16) Спасибо, то что надо!
Ошибка? Это не ошибка, это системная функция.