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