|
Как создать документ, заполнить из другого док-та и открыть форму не записывая | ☑ | ||
---|---|---|---|---|
0
yabes
03.05.17
✎
11:25
|
Добрый день. Подскажите как лучше сделать. По кнопке в документе необходимо создать точно такой же документ, заполнить его данными основного документа с небольшими изменениями, открыть его форму, но не записывать.
Не знаю как лучше делать: использовать ОткрытьФорму, ПолучитьФорму, в каком месте заполнять документ, как его открыть не записывая и не получая ссылки и т.д. Какая тут самая правильная схема? |
|||
1
Ц_У
03.05.17
✎
11:28
|
схема такая:
создать документ заполнить открыть |
|||
2
yabes
03.05.17
✎
11:31
|
(1) Как мне открыть документ, если нет Ключа, так как документ записывать нельзя. Если бы можно было записать документ, то тогда вопросов нет - есть ссылка, ее передаешь в параметр "Ключ" при открытии формы и все хорошо. А если ссылки нет, то как?
|
|||
3
yabes
03.05.17
✎
11:33
|
(1) Заполнил я на сервере документ. Есть у меня там ДокументОбъект. Что мне вернуть на клиент, чтобы передать в процедуру ОткрытьФорму() и открылся заполненный несохраненный документ
|
|||
4
SSSSS_AAAAA
03.05.17
✎
11:49
|
Для открытия формы нового документа НЕ НУЖЕН ключ. Ничего никуда не надо передавать
Надо открыть форму этого нового документа. Она у него уже есть. Ее только надо получить и открыть. ФормаДокумента = НовыйДокумент.ПолучитьФорму(); ФормаДОкумента.Открыть(); |
|||
5
yabes
03.05.17
✎
11:57
|
(4) А НовыйДокумент у тебя какого типа?) ДокументОбъект? На клиенте не будет работать. Только в Толстом клиенте.
|
|||
6
yabes
03.05.17
✎
11:58
|
Вот одно из решений:
&НаКлиенте Процедура СоздатьДокумент(Команда) Форма = ПолучитьФорму("Документ.Реализация.ФормаОбъекта"); ДанныеФормы = Форма.Объект; ЗаполнитьДокументНаСервере(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры &НаСервере Функция ЗаполнитьДокументНаСервере(ДанныеФормы); Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.Реализация")); Для каждого Стр Из ТЗ Цикл СтрДок = Док.Товары.Добавить(); СтрДок.Количество = Стр.Количество; СтрДок.Номенклатура = Стр.Номенклатура; КонецЦикла; ЗначениеВДанныеФормы(Док,ДанныеФормы); КонецФункции |
|||
7
Fedor-1971
03.05.17
✎
12:03
|
(5) Опять двадцать пять - не тащи логику ОФ в УФ.
Передай параметр "основание" (а не "ключ") = ссылке на текущий документ, в ОбработкаЗаполнения поймаешь и заполнишь свой (типа вводом на основании). На крайняк: заполни структуру и передай её в открываемую форму |
|||
8
DrShad
03.05.17
✎
12:04
|
(7) +1
|
|||
9
Buster007
03.05.17
✎
12:04
|
(7) а если типовой объект и его изменять крайней нежелательно?
|
|||
10
DrShad
03.05.17
✎
12:06
|
(9) [На крайняк: заполни структуру и передай её в открываемую форму]
|
|||
11
PiotrLoginov
03.05.17
✎
12:07
|
Не понимаю, в чем проблема. банальное создание копированием и открытие формы созданного.
|
|||
12
PiotrLoginov
03.05.17
✎
12:09
|
Записи созданного при этом никогда и не происходило. Вот открылась форма созданного, а там уж если пользователь пожелает - запишет/проведет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |