Имя: Пароль:
1C
1С v8
Создание документа и открытие фоормы
0 hawk1
 
29.12.14
17:16
Программно создаю документ и пытаюсь открыть его форму
    Извещение = Документы.ИзвещениеОПредставленииНедостающихДокументовИлиСведений.СоздатьДокумент();
    Извещение.Дата = ТекущаяДата();
    Извещение.Страхователь = Объект.Застрахованный.Страхователь;
    Извещение.Записать();
        ФормаИзв = Извещение.ПолучитьФорму("Документ.ИзвещениеОПредставленииНедостающихДокументовИлиСведений.ФормаДокумента");
        ФормаИзв.Открыть();

Но получаю ошибку Значение не является значением объектного типа (Открыть). Что не так?
1 vicof
 
29.12.14
17:17
ФормаИзв = Извещение.ПолучитьФорму("Документ.ИзвещениеОПредставленииНедостающихДокументовИлиСведений.Форма.ФормаДокумента");
2 Casey1984
 
29.12.14
17:17
А зачем так много в кавычках?
3 vicof
 
29.12.14
17:17
Только зачем тебе пустая форма, непонятно
4 Dmitriy_76
 
29.12.14
17:19
Уф ?  где структура с ключом ?
5 hawk1
 
29.12.14
17:26
(1) то же самое.
6 Dmitriy_76
 
29.12.14
17:29
(5) Управляемые формы ?
7 vicof
 
29.12.14
17:31
+ (1) ФормаОбъекта
8 hawk1
 
29.12.14
17:44
(7) то есть?
9 vicof
 
29.12.14
17:45
(8)
Глобальный контекст (Global context)
ПолучитьФорму (GetForm)
Синтаксис:

ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>)
Параметры:

<ИмяФормы> (обязательный)

Тип: Строка.
Имя формы. Образуется как полный путь к объекту метаданных Форма (например, "Справочник.Контрагенты.Форма.ФормаОбъекта", "ОбщаяФорма.ФормаСохраненияФайла") или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, "Справочник.Товары.ФормаВыбора").
Имена форм по умолчанию:
ФормаОбъекта (ObjectForm) - форма объекта по умолчанию;
ФормаГруппы (FolderForm) - форма группы по умолчанию;
ФормаЗаписи (RecordForm) - форма записи регистра по умолчанию;
ФормаСписка (ListForm) - форма списка по умолчанию;
ФормаВыбора (ChoiceForm) - форма выбора по умолчанию;
ФормаВыбораГруппы (FolderChoiceForm) - форма выбора группы по умолчанию;
ФормаКонстант (ConstantsForm) - форма констант по умолчанию для обычного режима, установленная как форма констант для конфигурации;
Форма (Form) - форма константы, отчета и обработки по умолчанию;
ОбщаяФорма (CommonForm) - общая форма;
ФормаНастроек (SettingsForm) - форма настроек отчета по умолчанию;
ФормаЗагрузки (LoadForm) - форма загрузки настроек;
ФормаСохранения (SaveForm) - форма сохранения настроек;
ФормаВарианта (VariantForm) - форма редактирования варианта отчета;
ФормаЗагрузкиПользовательскихНастроекОтчетов (ReportUserSettingsLoadForm) - форма загрузки настроек отчета;
ФормаСохраненияПользовательскихНастроекОтчетов (ReportUserSettingsSaveForm) - форма сохранения настроек отчета;
ФормаЗагрузкиВариантовОтчетов (ReportVariantsLoadForm) - форма загрузки варианта отчета;
ФормаСохраненияВариантовОтчетов (ReportVariantsSaveForm) - форма сохранения варианта отчета;
ФормаЗагрузкиНастроекДанныхФорм (FormDataSettingsLoadForm) - форма загрузки настроек данных форм;
ФормаСохраненияНастроекДанныхФорм (FormDataSettingsSaveForm) - форма сохранения настроек данных форм.
Например, для получения общей формы "ОбщиеНастройки" следует в модуле написать код:
Форма = ПолучитьФорму("ОбщаяФорма.ОбщиеНастройки");


Имена ФормаЗагрузкиПользовательскихНастроекОтчетов, ФормаСохраненияПользовательскихНастроекОтчетов, ФормаЗагрузкиВариантовОтчетов, ФормаСохраненияВариантовОтчетов, ФормаЗагрузкиНастроекДанныхФорм и ФормаСохраненияНастроекДанныхФорм нужно использовать без имени объектов метаданных.
Для внешних отчетов и обработок имя формы задается следующим образом:
ВнешнийОтчет.<имя отчета>.Форма.<имя формы>;
ВнешнийОтчет.<имя отчета>.<имя стандартной формы>;
ВнешняяОбработка.<имя обработки>.Форма.<имя формы>;
ВнешняяОбработка.<имя обработки>.<имя стандартной формы>.
При этом внешний отчет или обработка должны быть предварительно зарегистрированы в системе.
<Параметры> (необязательный)

Тип: Структура.
Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
Форма.Открыть();


<Владелец> (необязательный)

Владелец формы - форма или элемент управления другой формы.
<Уникальность> (необязательный)

Тип: Произвольный.
В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма.
Ложь - искать форму с ключом уникальности по умолчанию, Истина - не искать форму вообще, любое другое значение устанавливает ключ уникальности, по которому будет произведен поиск.
Значение по умолчанию: Ложь
<Окно> (необязательный)

Тип: ОкноКлиентскогоПриложения; ВариантОткрытияОкна.
Окно приложения, в котором будет открыта форма.
Применимо только для управляемой формы. Окном может быть только основное окно приложения или вспомогательное окно формы.
Если указан тип ВариантОткрытияОкна, окно формы будет создано согласно выбранному варианту.
Возвращаемое значение:

Тип: Форма; УправляемаяФорма.

Описание:

Получает форму или управляемую форму. Перед получением осуществляется поиск уже открытой такой же формы.
Поиск осуществляется по типу формы, значениям ключевых параметров формы, владельцу формы, пользовательскому ключу уникальности.
Если в параметре <Уникальность> передано значение Истина, то поиск уже открытых форм не осуществляется.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Примечание:

В тонком и веб-клиенте получает только управляемую форму.
Обычные формы внешних обработок не поддерживаются.
Если при получении обычной формы в параметре <ИмяФормы> указано не стандартное имя формы, передаваемые параметры не обрабатываются.
В процессе выполнения может быть несколько обращений к серверу. Часть из них кэшируются. Как минимум одно обращение к серверу есть всегда и оно не кэшируется. Кэширование зависит от версии платформы и версии конфигурации в целом. Если установлена низкая скорость соединения и не указывается текущая строка, то кэшируется форма выбора. Очистка кэша осуществляется с периодичностью в 20 мин. Удаляются формы, которые не использовались в этот период времени.
См. также:

Глобальный контекст, метод ОткрытьФорму
Глобальный контекст, метод ОткрытьФормуМодально
Глобальный контекст, метод ПолучитьОбщуюФорму
10 karabas11
 
29.12.14
17:48
Иногда кажется, что большинство тру программистов 1с пишет одинэсный код в блокноте где нет отладчика, и поэтому не может понять что в значении переменной хранится
11 vicof
 
29.12.14
17:56
(10) Проще ж на мисту наколошматить, чем самому сесть и разобраться.
12 hawk1
 
29.12.14
18:27
Изв = Новый Структура("Ключ",Извещение.Ссылка);
        ФормаИзв = Извещение.ПолучитьФорму("Документ.ИзвещениеОПредставленииНедостающихДокументовИлиСведений.ФормаОбъекта",Изв);
        ФормаИзв.Открыть();

И ничего
13 Casey1984
 
29.12.14
18:32
(12) "Извещение." - точно нужно?
14 Casey1984
 
29.12.14
18:35
(12) Походу дела тут два режима работы путаются? ;)
15 Casey1984
 
29.12.14
18:36
16 Casey1984
 
29.12.14
18:37
(15) - для управляемого приложения.
17 hawk1
 
29.12.14
20:12
В общем вся проблема в том, что документ создается на сервере, а форма открывается на клиенте.
18 Остап Сулейманович
 
29.12.14
20:18
(17) И что? Бывают какие то другие варианты? Даже когда "не программно"?
19 Мимохожий Однако
 
29.12.14
20:21
(17)Для сервера есть как минимум метод СоздатьДокумент()
Независимо от того, куда вы едете — это в гору и против ветра!