|
УФ: Как сформировать поступление из документа
| ☑ |
0
lisicin
25.11.16
✎
06:34
|
Здравствуйте, прошу помочь разобраться с управляемыми формами. Есть документ Закупка, по данным которого кнопкой на форме хочу создать Поступление.
&НаСервере
Процедура СформироватьПоступление(Команда)
Если Не ЗначениеЗаполнено(Объект.Поступление) ТОГДА
Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Иначе
Док = Объект.Поступление.ПолучитьОбъект();
Док.Товары.Очистить();
Док.Услуги.Очистить();
КонецЕсли;
Док.Дата = Объект.Дата;
ОбщегоНазначения.УстановитьНомерДокумента(Док);
Док.Организация = Объект.Организация;
...//указываю прочие реквизиты документа
Попытка
Док.Комментарий = "Заполнен на основании "+Объект.Ссылка;
Док.Записать();
Поступление = Док.Ссылка;
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Сообщить("Создано: "+Объект.Поступление);
Док.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры
При выполнении документ поступления не создается. Подозреваю, что возможно нужно разделить на процедуры &НаКлиенте и &НаСервере , но не могу вникнуть как именно это сделать.
|
|
1
GenAcid
25.11.16
✎
06:46
|
Подозреваю что документ создается.
Только вот тут чего-то не хватает:
Поступление = Док.Ссылка;
А еще почитай про Заполнить и ОбработкаЗаполнения
|
|
2
lisicin
25.11.16
✎
06:54
|
(1) Ну да, там Объект.Поступление = Док.Ссылка;
Должно быть.
Но сути не меняет - в Поступлениях нового документа не появляется.
|
|
3
Mankubus
25.11.16
✎
07:00
|
как понял что не создается?
|
|
4
h-sp
25.11.16
✎
07:05
|
(2) а &НаКлиенте где у тебя? Покажи.
|
|
5
h-sp
25.11.16
✎
07:15
|
(2) в свойствах команды какая процедура указана?
|
|
6
lisicin
25.11.16
✎
07:21
|
(3) Зашёл в Покупки->Поступление (акты, накладные) да посмотрел.
(4) Сильно не смейся, но нигде :) Я понимаю ещё, что
Сообщить("Создано: "+Объект.Поступление);
я не увижу, т.к. она не в процедуре &НаКлиенте, но в остальном, что ещё из этого надо бы перенести в процедуру на клиенте я не знаю.
|
|
7
lisicin
25.11.16
✎
07:24
|
(5) Приведённая в первом сообщении
|
|
8
h-sp
25.11.16
✎
07:24
|
(6) Сообщить работает на сервере, ты ее увидишь.
|
|
9
h-sp
25.11.16
✎
07:25
|
(7) ну так она не запускается вообще. Процедуда должна быть на клиенте.
|
|
10
lisicin
25.11.16
✎
07:30
|
(9) Я так понимаю тогда в свойствах команды надо указать процедуру типа:
&НаКлиенте
Процедура СформироватьПоступление(Команда)
СформироватьПоступлениеНаСервере();
КонецПроцедуры
А код из первого сообщения перенести в "СформироватьПоступлениеНаСервере"?
|
|
11
h-sp
25.11.16
✎
07:32
|
(10) ну, да. Просто надо посмотреть для примера соседние команды, там же таких кнопок и команд сотни.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший