|
v7: Как открыть форму не сохраненного документа ? | ☑ | ||
---|---|---|---|---|
0
Z_Z
28.04.15
✎
09:08
|
Добрый день. Подскажите как открыть форму не сохраненного документа?
Док = СоздатьОбъект("Документ.РасходнаяНакладная"); Док.Новый(); Док.ДатаДок = ДатаКонца; Док.МестоХранения = фСклад; И на открыть форму этого документа на просмотр перед сохранением. Код написан во внешней обработке. |
|||
1
butterbean
28.04.15
✎
09:14
|
вот это Док.Новый(); — нафиг
|
|||
2
PaulBC
28.04.15
✎
09:20
|
ОткрытьФорму(<?>,,)
OpenForm(<?>,,) Синтаксис: ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>,<ДокументОснование>) Назначение: Открывает визуальную форму ввода нового документа (в т.ч. в режиме ввода на основании). Возвращает: 1 - если действие выполнено, 0 - иначе. Параметры: <ОписательОбъекта> - строка-описатель документа вида: 'Документ.ХХХХХ', где ХХХХХХ - вид документа; <КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр. После исполнения данного метода система вернет в данную переменную контекст открытой формы (необязателен); <ДокументОснование> - документ-основание для открытия формы ввода нового документа в режиме ввода на основании (необязателен). Замечание: Пока форма открыта, тип значения параметра <КонтекстФормы> равен 100, когда закрыта - 0. |
|||
3
Z_Z
28.04.15
✎
09:20
|
(1)Новый();
Синтаксис: Новый() Назначение: Начать ввод нового документа. Замечание: Метод можно использовать только для объектов, созданных функцией СоздатьОбъект. |
|||
4
Z_Z
28.04.15
✎
09:20
|
(2) а применительно к моему примеру как будет выглядеть?
|
|||
5
PaulBC
28.04.15
✎
09:23
|
(4)
Перем Конт; ОткрытьФорму("Документ.РасходнаяНакладная", Конт); Конт.ДатаДок = ДатаКонца; Конт.МестоХранения = фСклад; |
|||
6
Serg_1960
28.04.15
✎
09:25
|
Ты какой-то не в тему алгоритм озвучил
|
|||
7
Z_Z
28.04.15
✎
09:27
|
(5) открывает форму нового пустого документа, не моего((
|
|||
8
Fedor-1971
28.04.15
✎
09:30
|
(7) док.открыть() - не подойдёт?
|
|||
9
Serg_1960
28.04.15
✎
09:34
|
||||
10
DomanM
28.04.15
✎
09:36
|
(7) а чьего? он старым должен быть?
|
|||
11
Z_Z
28.04.15
✎
09:38
|
(8)Поле агрегатного объекта не обнаружено (открыть)
|
|||
12
DomanM
28.04.15
✎
09:40
|
(11) что значит открывает форму не твоего и нового? какой это твой и как он должен быть не новым если он не сохранен?
|
|||
13
Z_Z
28.04.15
✎
09:43
|
заполнен моими реквизитами, а так он полностью пустой.
|
|||
14
DomanM
28.04.15
✎
09:44
|
(13) тебе нужно в открыть форму передать параметры, в которых будут твои реквизиты, и при создании на сервере этого дока из этих параметров взять эти значения и присвоить их реквизитам открывающегося дока
|
|||
15
Builder
28.04.15
✎
09:45
|
(13) Ты сначала открывай, а потом заполняй в самой форме. Реквизиты передавай через Контекст.
|
|||
16
DomanM
28.04.15
✎
09:46
|
(15) лаконичней, но не так подробно)
|
|||
17
Fedor-1971
28.04.15
✎
09:46
|
(13) Связка: ОткрытьФорму() и внутри предопределённая процедура ВводНового() - тут заполняй свои реквизиты.
В данном случае СоздатьОбъект - лишнее. |
|||
18
Builder
28.04.15
✎
09:47
|
(14) Только сервер тут не причем, это же 7.7
|
|||
19
DomanM
28.04.15
✎
09:48
|
(18) тогда ухожу от греха подальше
|
|||
20
Z_Z
28.04.15
✎
09:55
|
(14) а разве нельзя заполнить документ и потом его открыть не записывая? Я так делал, только забыл как((
|
|||
21
Drac0
28.04.15
✎
09:59
|
пФорма = ПолучитьФорму("Документ.РасходнаяНакладная", Конт);
//тут заполняй как хочешь пФОрма.Открыть(); |
|||
22
PaulBC
28.04.15
✎
10:00
|
(20) если ты про табличную часть, то либо как в (17), либо через внешнюю компоненту (например, формекс)
|
|||
23
Fedor-1971
28.04.15
✎
10:04
|
(20) можно, тебе в (2) написали ОткрытьФорму("ТвояФорма", Док)
Внутри формы: Форма.Параметр - и есть тобой созданный объект. Если сделаешь док.Записать() - то можешь передать в 3-й параметр. |
|||
24
Drac0
28.04.15
✎
10:05
|
+(21) ой, тут про семерку...
|
|||
26
Fedor-1971
28.04.15
✎
10:11
|
23+ про 3-й параметр загнул, это ввод на основании существующего, тебе не нужно, поскольку будет создан ещё один новый документ.
|
|||
27
aka AMIGO
28.04.15
✎
10:12
|
не нужен формекс..
+ Code Процедура СоздатьПеремещение() Док = СоздатьОбъект("Документ.Перемещение"); Док.Новый(); //... // создание ТЗТ для заполнения ТЧ.. Парам = СоздатьОбъект("СписокЗначений"); Парам.Установить("Команда","ИзВнешнейОбработки"); Парам.Установить("ВыбФирма", ВыбФирма); Парам.Установить("ВыбСклад",ВыбСклад); Парам.Установить("ВыбСкладПолучатель", ВыбСкладПолучатель); Парам.Установить("Пункт", Пункт); Парам.Установить("ФирмаПолучатель", ФирмаПолучатель); Парам.Установить("ТЗТ",ТЗТ); ОткрытьФорму("Документ.Перемещение",Парам); КонецЕсли; В самом документе: Процедура ПриОткрытии() Парам = Форма.Параметр; Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда Если ПустоеЗначение(Парам.Получить("Команда"))=1 Тогда Сообщить("В форму документа "+Вид()+" передан неверный параметр!","I"); СтатусВозврата(0);Возврат; КонецЕсли; Если Парам.Получить("Команда") = "ИзВнешнейОбработки" Тогда //чуть ниже Фирма = Парам.Получить("ВыбФирма"); Склад = Парам.Получить("ВыбСклад"); СкладПолучатель = Парам.Получить("ВыбСкладПолучатель"); ФирмаПолучатель = Парам.Получить("ФирмаПолучатель"); Пункт = Парам.Получить("Пункт"); //.. ну и т.д.. Всё, док открыт, не записан |
|||
28
aka AMIGO
28.04.15
✎
10:16
|
+ 27 вот это:
Док = СоздатьОбъект("Документ.Перемещение"); Док.Новый(); надо удалить, рудименты от битвы за рабочий код :) |
|||
29
Fedor-1971
28.04.15
✎
10:17
|
(27) ТС пытался сделать то же самое, но с объектом в качестве параметра.
|
|||
30
aka AMIGO
28.04.15
✎
10:19
|
(29) ну, пусть экспериментирует, у меня пример работающего кода, не панацея от всех бед :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |