Программное создание документа, его заполнение и открытие его формы без записи (Как сделать?)

1. bestuzhev 679 12.12.12 14:18 Сейчас в теме
8.2 Упр. (Вернее даже 8.3, вдруг что-то изменилось в этом плане).
Как программно создать документ и заполнить его понятно.
Как отрыть форму чистого документа тоже понятно.
НО как программно создать документ, заполнить его и потом открыть форму этого документа, тут непонятно. Т.к. документ создается &НаСервере, а форма открывается &НаКлиенте.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VoDo 72 12.12.12 14:22 Сейчас в теме
записать и открыть ссылку?
3. bestuzhev 679 12.12.12 14:27 Сейчас в теме
(2) VoDo,

Создать новый документ.
Заполнить его реквизиты.
Открыть форму этого документа.
4. VoDo 72 12.12.12 14:28 Сейчас в теме
Ну так? Создай док, запиши его. передай ссылку на клиент и открой его
5. bestuzhev 679 12.12.12 14:31 Сейчас в теме
В том то и дело что записывать его нельзя, т.к. пользователь может отказаться от записи этого дока.
В общем мне нужно реализовать программное создание на основании.
6. Ягг 495 12.12.12 14:36 Сейчас в теме
(5) bestuzhev, На правах предположения

Открываем форму. У формы есть рекыизит "Объект" нужного типа. На сервере создаем новый объект, заполняем его (если ввод на основании то НашОбъект.Заполнить(...)). Затем в нашей форме в процедуре на сревере делаем

ЗначениеВРеквизитФормы(<наш заполненый объект>,"Объект")
12. bestuzhev 679 12.12.12 14:48 Сейчас в теме
(6) Ягг, С сервера на клиент объект как передать чтобы заполнить из него?
13. Ягг 495 12.12.12 14:49 Сейчас в теме
(12) bestuzhev, так команда форме на сервере ЗанчениеВРеквизитФормы() как раз и упакует твой объект для передачи на клиента.

Заполнение должно на сревер происходить
14. bestuzhev 679 12.12.12 14:51 Сейчас в теме
(13) Ягг, Не понял идеи, напиши примерчик плиз небольшой.
15. Ягг 495 12.12.12 14:54 Сейчас в теме
(14) bestuzhev, примерно так у нас есть команда контоая открывает форму и вызывает в ней экспортную процедуру (ЗаполнитьНаКлиенте)

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


В модуле нашей формы код

&НаКлиенте
Процедура ЗаполнитьНаКлиенте() экспорт
       Заполнить_Сервер()
КонецПроцедуры // ()

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


У меня работает

Тупо добавляею строку в список
serverstar; user621724_Dimav1979; Henistaromin; kan1; SmArtist; VAAngelov; SagittariusA; MishaG709; Lexx100; huzden; morgershtern; blich; topasha; Sinoptik_spb; Sveta_Point; bestuzhev; +16 Ответить
18. katya0702 28.07.13 23:41 Сейчас в теме
(15) Ягг, спасибо за пример решения)
19. YuraLu 21.11.13 07:29 Сейчас в теме
(15) Ягг,

Спасибо. Только что пригодилось!!!
22. PLAstic 295 21.10.19 09:36 Сейчас в теме
(15) Это работает только если изначально выполнение пляшет от формы. Если же какая-то серверная процедура выполняется, создаёт документ и не записывая его должна открыть его форму на клиенте, тут всё намного сложнее. Ответ в (21). Собственно, это и надо было топикстартеру в (3).
23. VAAngelov 366 19.12.19 21:54 Сейчас в теме
(15) Спасибо за пример! Только что пригодилось!
7. VoDo 72 12.12.12 14:38 Сейчас в теме
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
       
   ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.ФормаДокумента",
       Новый Структура("Основание, ВидОперацииЗаполнения",ПараметрКоманды, "Продукция"));
   
КонецПроцедуры


Не?
Anchoret; KAV2; +2 Ответить
10. bestuzhev 679 12.12.12 14:47 Сейчас в теме
(7) VoDo, А заполнять где? Мне надо заполненный документ открыть.
8. devs 12.12.12 14:42 Сейчас в теме
&НаКлиенте
Процедура ВыполнитьДействия(Команда)
МойДок = СоздатьНаСервере();
МойДок.ПолучитьФорму().Открыть();
КонецПроцедуры

&НаСервере
Функция СоздатьНаСервере()
МойДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
МойДок.Склад = //и т.д. заполняем как нам надо
Возврат МойДок;

КонецФункции
Henistaromin; kot26rus; +2 1 Ответить
11. Ягг 495 12.12.12 14:47 Сейчас в теме
(8) devs, так не получится.
G_103670112020548328512; FesenkoA; +2 Ответить
17. Sinoptik_spb 28.07.13 23:24 Сейчас в теме
(8) devs, метод ПолучитьФорму() у менеджера документов для толстого клиента, для тонкого метод не подходит!
(15) Спасибо за реализацию, долго бился над, казалось бы для 8.1, элементарной задачей!
9. bestuzhev 679 12.12.12 14:46 Сейчас в теме
С сервера на клиент передать объект нельзя!
16. bestuzhev 679 12.12.12 15:13 Сейчас в теме
Спасибо тебе человек, помог!
20. join2us 18 13.08.14 22:58 Сейчас в теме
А у меня албанский вопрос: если конфигурация не редактируется - такой вариант не прокатит? У меня нет возможности добавлять Код в модуль формы документов, можно юзать только внешние обработки... Что делать?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот