|
Создание документа программно | ☑ | ||
---|---|---|---|---|
0
PinkiBosh
13.04.15
✎
09:36
|
Подскажите, пожалуйста, как при создании документа сделать так, чтобы данные по умолчанию были заполнены. Имеется в виду те данные, которые заполняются, когда в пользовательском режиме нажимают на кнопку "Создать"?
Я создаю документ "ЗаказПокупателя". Так вот, если создавать в пользовательском режиме, то обязательными полями для заполнения являются: "Контрагент", "Дата отгрузки" да и всё вроде. А если программно создавать, так там требуется заполнить ещё и дату, и номер счета и в итоге он вообще не создается. Я так понимаю, что все данные заполняются в процедуре "ПриСозданииНаСервере", а она вызывается при открытии формы, а мне не надо чтобы форма открывалась. |
|||
1
чувак
13.04.15
✎
09:38
|
Есть у объекта событие призаполнении()
|
|||
2
PinkiBosh
13.04.15
✎
12:54
|
А можно кусок кода, а то я что-то не нашел призаполнении().
Вот мой неработающий: ДокЗаказ = Документы.ЗаказПокупателя.СоздатьДокумент(); НовНоменклатура = ДокЗаказ.Запасы.Добавить(); НовНоменклатура.Цена = 3; ДокЗаказ.ДатаОтгрузки = ТекущаяДата(); ДокЗаказ.Дата = ТекущаяДата(); ДокЗаказ.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Покупатель1"); ДокЗаказ.Записать(); Причем, ошибки не выдает. |
|||
3
Kupogun
13.04.15
✎
13:31
|
в модуле объекта событие: ОбработкаЗаполнения
|
|||
4
Kupogun
13.04.15
✎
13:32
|
посмотри как в типовых сделано
|
|||
5
krunm
13.04.15
✎
15:17
|
нет ошибки, возможно документ создается, но в списке у тебя стоит отбор (например по организации), вот и не показывает
|
|||
6
PinkiBosh
15.04.15
✎
15:46
|
Помимо прочих нашел такое решение:
&НаКлиенте Процедура СоздатьМойДокумент(Команда) Форма = ПолучитьФорму("Документ.ЗаказПокупателя.ФормаОбъекта"); ДанныеФормы = Форма.Объект; // Получаем объект формы в переменную ЗаполнитьДокументНаСервере(ДанныеФормы); // Заполняем документ на сервере КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // копируем наш объект в объект формы и далее открываем ее форма.Записать(); //Форма.Открыть(); // если нужно открыть форму, убираем коммент КонецПроцедуры &НаСервереБезКонтекста Процедура ЗаполнитьДокументНаСервере(ДанныеФормы); Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ЗаказПокупателя")); // Получаем объект из данных формы ИЛИ Док = Документы.ЗаказПокупателя.СоздатьДокумент(); // Заполняем реквизиты объекта или другие действия: Док.ВидОперации = Перечисления.ВидыОперацийЗаказПокупателя.ЗаказНаПродажу; Док.Дата = ТекущаяДата(); Док.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("ИмяПокупателя"); НовНоменклатура = Док.Запасы.Добавить(); НовНоменклатура.Цена = 1; ЗначениеВДанныеФормы(Док,ДанныеФормы); // Кладем обратно в объект формы уже созданный документ КонецПроцедуры |
|||
7
ЧеловекДуши
15.04.15
✎
15:50
|
(6) Не сработает, должен сругаеться "Попытка передачи на сервер мутабельного типу" :)
|
|||
8
ЧеловекДуши
15.04.15
✎
15:51
|
+(6) Ты хоть его запусти, прежде чем постить :)
|
|||
9
kortun
15.04.15
✎
15:52
|
Попробуй так
НовыйДокумент = Документы.ЗаказПокупателя.СоздатьДокумент(); НовыйДокумент.ОбработкаЗаполнения(Неопределено, Истина); // тут заполняешь сам чего надо НовыйДокумент.Записать(); |
|||
10
PinkiBosh
15.04.15
✎
16:53
|
(8) Конечно же я его запустил, прежде чем постить!!
|
|||
11
Адский плющ
15.04.15
✎
17:28
|
ДокОбъект.Заполнить(Неопределено);
|
|||
12
PinkiBosh
16.04.15
✎
13:33
|
(9) проходит всё без ошибок, но потом в форме списка документа "ЗаказПокупателя" не появляется новый (только что созданный) документ!!
|
|||
13
PinkiBosh
16.04.15
✎
13:33
|
(11) Работает! То что надо!!)
|
|||
14
PinkiBosh
16.04.15
✎
13:34
|
Спасибо, всем!!)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |