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

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 364 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 15 13.08.14 22:58 Сейчас в теме
А у меня албанский вопрос: если конфигурация не редактируется - такой вариант не прокатит? У меня нет возможности добавлять Код в модуль формы документов, можно юзать только внешние обработки... Что делать?
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день