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