|   |   | 
| 
 | 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) ну, пусть экспериментирует, у меня пример работающего кода, не панацея от всех бед :)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |