|
Не получается записать документ при ВводеНаОсновании
| ☑ |
0
Absurdus
16.03.15
✎
11:34
|
Из ЗаказаПоставщику делаю "Ввод на основании..." ПоступлениеТМЦ. Одновременно с этим на основании Поступления должна создасться Реализация, чтобы ее номер отображался в Поступлении.
Процедура ВводНаОсновании(ДокументОснование)
Записать();
ЕстьРеал = 0;
Д = СоздатьОбъект("Документ");
Д.ВыбратьПодчиненныеДокументы(,,ТекущийДокумент());
Пока Д.ПолучитьДокумент() = 1 Цикл
Если Д.Вид() = "РеализацияРозница" Тогда
ЕстьРеал = 1;
прервать;
КонецЕсли;
КонецЦикла;
Если ЕстьРеал = 0 Тогда
Р = СоздатьОбъект("Документ.РеализацияРозница");
Р.Новый();
Р.УстановитьНовыйНомер(СокрЛП(Константа.ПрефиксИБ) + СокрЛП(Фирма.Префикс));
Р.ДокОснование = ТекущийДокумент();
Р.Записать();
КонецЕсли;
ПоказатьНомерРеализации();
КонецПроцедуры
Записать();
{Документ.ПоступлениеТМЦ.Форма.Модуль(2421)}: Данная команда не может выполняться в формуле элемента диалога!
Как обойти?
|
|
1
asady
16.03.15
✎
11:36
|
(0) этот код у тебя в формуле элемента диалога записан?
|
|
2
Absurdus
16.03.15
✎
11:38
|
(1) В форме документа
|
|
3
asady
16.03.15
✎
11:47
|
(2) заполнять реализацию надо
|
|
4
Absurdus
16.03.15
✎
11:49
|
(3) Не надо
|
|
5
Absurdus
16.03.15
✎
11:50
|
(3) Не работает только в ВводеНаОсновании()
В процедуре ПриИзмененииОпреации() отрабатывается четко
|
|
6
Absurdus
16.03.15
✎
12:15
|
Up
|
|
7
Fedor-1971
16.03.15
✎
12:48
|
Записать() - что?
В предопределённой процедуре ты пытаешься нечто записать первой строкой, что должно быть записано в твоём понимании?
Раздели на 2:
ВводНаОсновании - проверка твоих условий и заполнение вводимого документа (всё, что хочешь сделать). Работает как и положено вводу на основании.
РеакцияНаКнопкуФормы() - Записать+ВвестиНаОсновании - работает только в твоей форме.
|
|
8
Absurdus
16.03.15
✎
12:59
|
Записать() записывает документ очевидно.
Я так понимаю, что при ВВодНаОсновании форма еще не открыта, поэтому ругается
|
|
9
Absurdus
16.03.15
✎
13:04
|
Всё, понял. Надо сунуть создание реализации не в ВводНаОсновании, а в ПриОткрытии().
|
|
10
Absurdus
16.03.15
✎
13:05
|
Всем спасибо, живите счастливо, до свидания
|
|
11
kudlach
16.03.15
✎
13:35
|
7-рочка )))
У тебя текущий документ еще не записан, а ты его уже присваиваешь. ВводНаОсновании - процедура формирования НОВОГО документа.
Сделай "Записать();" 2 раза - не страшно.
Записать();
Р.ДокОснование = ТекущийДокумент();
Р.Записать();
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой