|
v8: Вызов процедуры в Модуле Формы из Модуля Объекта | ☑ | ||
---|---|---|---|---|
0
selestos
03.07.13
✎
23:33
|
1.Вот что за код в модуле Объекта
&НаСервере процедура БлокированиеТовара() Экспорт Записать(); Движения.БлокировкаТовара.Очистить(); Для Каждого ТекСтрока Из Товары Цикл Движение=Движения.БлокировкаТовара.Добавить(); Движение.ВидДвижения=ВидДвиженияНакопления.Приход; Движение.Период=Дата; Движения.Номенклатура=ТекСтрока.Номенклатура; Движение.Количество=ТекСтрока.Количество; КонецЦикла; Движения.БлокировкаТовара.Записать(); КонецПроцедуры 2.После вызываю эту процедуру в Модуле Формы &НаКлиенте Процедура Заблокировать(Команда) БлокированиеТовара(); КонецПроцедуры 3.Выдает Ошибку что процедура не определена {Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(6,2)}: Процедура или функция с указанным именем не определена (БлокированиеТовара) <<?>>БлокированиеТовара(); (Проверка: Тонкий клиент) как я понял ошибка и за того что сначала нужно преобразовать с помощью процедуры ДанныеФормыВЗначение() Но как это делается никак не могу понять, сам я начинающий, если кто знает опишите подробно что нужно делать относительно моего задания |
|||
1
zak555
03.07.13
✎
23:36
|
&НаКлиенте
Процедура Заблокировать(Команда) БлокированиеТовараНаСервере(); КонецПроцедуры &НаСервере Процедура БлокированиеТовараНаСервере() ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); ОбъектДляСервера.БлокированиеТовара(); КонецПроцедуры |
|||
2
zak555
03.07.13
✎
23:37
|
кстати, что за объект ?
|
|||
3
selestos
03.07.13
✎
23:57
|
Это Документ <<РасходнаяНакладная>> делает Движение по Регистру накопления <<БлокировкаТовара>>
Смысл в том что процедура не называется <<обработкаЗаполнения>> ---тогда создается ситуация при который документ не проведен но движения у него есть Это важно в случае работы с большими документами, Пока пользователь заполняет такой документ, его коллеги могут перехватить товар. И при проведении документа может вдруг выяснится, что отпустить половину номенклатурных позиций уже невозможно.Они отданы другим покупателям именно поэтому еще на этапе заполнения документа полезно каким-то образом блокировать товар, причем в указанных в документе количествах |
|||
4
zak555
03.07.13
✎
23:59
|
(3) вынеси в модуль менеджера БлокированиеТовара
|
|||
5
zak555
04.07.13
✎
00:01
|
и из менеджера вызывай проведение документа
|
|||
6
selestos
04.07.13
✎
00:06
|
нет так не канает
в модуле менеджера уже не вдет табличную часть товары из которого заполняется регистр В задание указанно что Именно из модуля объекта должен быть вызов |
|||
7
zak555
04.07.13
✎
00:08
|
> уже не вдет табличную часть товары
переведи в каком задании ? |
|||
8
selestos
04.07.13
✎
00:09
|
ДанныеФормыВзначение ()
что-то в этом роде но как применить эту процедуру и преобразовать без понятия |
|||
9
zak555
04.07.13
✎
00:10
|
ты опиши сначала, что нужно сделать
|
|||
10
selestos
04.07.13
✎
00:12
|
Нужно вызвать эту процедуру из Модуля Объекта<<БлокированиеТовара()>> в Модуле Формы
|
|||
11
zak555
04.07.13
✎
00:14
|
&НаСервере
Процедура БлокированиеТовараНаСервере() ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); ОбъектДляСервера.БлокированиеТовара(); ОбъектДляСервера.Проведен = Истина; ОбъектДляСервера.Записать(); // =) КонецПроцедуры |
|||
12
zak555
04.07.13
✎
00:14
|
(10) зачем ?
|
|||
13
zak555
04.07.13
✎
00:14
|
нажми на кнопку провести
|
|||
14
selestos
04.07.13
✎
00:26
|
{Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(10)}: Ошибка при вызове метода контекста (РеквизитФормыВЗначение)
ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); по причине: Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)! |
|||
15
selestos
04.07.13
✎
00:26
|
просмотрел сейчас
извини что та долго |
|||
16
selestos
04.07.13
✎
00:28
|
да я понял
|
|||
17
selestos
04.07.13
✎
00:28
|
классно спасибо
|
|||
18
selestos
04.07.13
✎
18:00
|
Zak555 спасибо за наводку, я подправил теперь все работает
вот код который получился &НаСервере Процедура БлокированиеТовараНаСервере() ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); ОбъектДляСервера.БлокированиеТовара(); ЗначениеВРеквизитФормы(ОбъектДляСервера,"Объект"); КонецПроцедуры |
|||
19
zak555
04.07.13
✎
23:10
|
только неясно
зачем тебе делать движения по кнопке |
|||
20
zak555
04.07.13
✎
23:11
|
и ещё флаг выставлять
|
|||
21
selestos
05.07.13
✎
16:39
|
Это для непроведенных товаров, чтоб узнать разные данные Исходя из регистра НакопленияОстаток прежде чем принять решения распределения номенклатурв
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |