Как создать документ и открыть его форму?

27.05.2018

Теги: 1С:ПредприятиеДокументЗаполнитьЗаполнятьИзДанныхЗаполненияЗначениеЗаполненияОбработкаЗаполненияОткрытьЗначениеОткрытьФорму

Для этих целей существует два возможных сценария работы:

  • Открыть форму нового документа и предоставить пользователю самому интерактивно записать данные объекта в базу данных.
  • Создать новый документ программно, программно заполнить его данными и программно записать. Затем, если нужно, показать его пользователю.

В первом сценарии проще всего использовать метод глобального контекста ОткрытьФорму(). Это можно сделать на клиенте. При этом создается новый документ и открывается для редактирования основная форма этого документа.

ОткрытьФорму("Документ.ПриходнаяНакладная.ФормаОбъекта");

Если нужно какое-то предварительное заполнение документа начальными данными, то это можно сделать либо с помощью свойств реквизитов документа ЗначениеЗаполнения, ЗаполнятьИзДанныхЗаполнения либо в обработчике события документа ОбработкаЗаполнения.

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
                       
    Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
        Поставщик = ДанныеЗаполнения.Поставщик;
        Склад = ДанныеЗаполнения.Склад;
    ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.Поставщики") Тогда
        Поставщик = ДанныеЗаполнения.Ссылка;
    ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.Склады") Тогда
        Склад = ДанныеЗаполнения.Ссылка;
    КонецЕсли;

КонецПроцедуры

Во втором случае можно программно создать документ на сервере, заполнить данными (если это нужно) в обработчике события ОбработкаЗаполнения, записать, и передать ссылку на новый документ в метод глобального контекста ОткрытьЗначение(), который откроет форму этого документа. Например:

&НаКлиенте
Процедура СоздатьНовыйДокумент(Команда)

    СсылкаНаДокумент = СоздатьНовыйДокументНаСервере();
    ОткрытьЗначение(СсылкаНаДокумент);

КонецПроцедуры

&НаСервере
Функция СоздатьНовыйДокументНаСервере()

    НовыйДокумент = Документы.ПриходнаяНакладная.СоздатьДокумент();
    НовыйДокумент.Дата = ТекущаяДата();

    СсылкаНаПоставщика = Справочники.Поставщики.Основной;
    СсылкаНаСклад = Справочники.Склады.Основной;
    ЭлементыОтбора = Новый Структура(
        "Поставщик, Склад",
        СсылкаНаПоставщика,
        СсылкаНаСклад
    );
    НовыйДокумент.Заполнить(ЭлементыОтбора);

    НовыйДокумент.Записать();

    Возврат НовыйДокумент.Ссылка;

КонецФункции

Поиск: 1С:Предприятие • Документ • Заполнить • Заполнять из данных заполнения • Значение заполнения • Обработка заполнения • Открыть значение • Открыть форму

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.