|
Не получается записать документ при ВводеНаОсновании | ☑ | ||
---|---|---|---|---|
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 раза - не страшно. Записать(); Р.ДокОснование = ТекущийДокумент(); Р.Записать(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |