Имя: Пароль:
1C
1С v8
УФ. Как вызвать процедуру модуля документа из его формы?
0 megabax
 
10.09.16
19:15
Добрый день. В модуле документа объявил процедуру:
Процедура РассчитатьСкидку() экспорт
    СуммаСкидки=Позиции.Итог("Всего")*ПроцентСкидки/100;
    СуммаСкидкиЗамена=Позиции.Итог("ВсегоЗамена")*ПроцентСкидки/100;
    СуммаПослеСкидки=Позиции.Итог("Всего")-СуммаСкидки;
    СуммаПослеСкидкиЗамена=Позиции.Итог("ВсегоЗамена")-СуммаСкидкиЗамена;
КонецПроцедуры

Вызываю ее из модуля формы, например, так:
&НаКлиенте
Процедура ПозицииПриИзменении(Элемент)
    Объект.РассчитатьСкидку();
КонецПроцедуры

И говорит:
"{Документ.шапИзменениеПозицийЗаявкиПокупателя.Форма.ФормаДокумента.Форма(468)}: Метод объекта не обнаружен (РассчитатьСкидку)
    Объект.РассчитатьСкидку();"
Подскажите пожалуйста, как лечить?
1 zak555
 
10.09.16
19:19
на сервере объектформывзеачение и вызывай
2 RomanYS
 
10.09.16
19:21
эээ... это УФ.
1. уходим на сервер
2. получаем объект (реквизитформывзначение)
3. вызываем процедуру
4. возвращаем изменения из объекта в данные формы (какая-то функция с похожим названием, но наоборот)
3 megabax
 
10.09.16
19:23
(1) Сделал так
&НаСервере
Процедура РассчитатьСкидку()
    Объект.РассчитатьСкидку();
КонецПроцедуры


&НаКлиенте
Процедура ПозицииПриИзменении(Элемент)
    РассчитатьСкидку();
КонецПроцедуры

тоже самое
4 megabax
 
10.09.16
19:24
(2) "2. получаем объект (реквизитформывзначение) " - это как?
5 RomanYS
 
10.09.16
19:26
(4) найди в СП, или поиском по любой типовой
6 megabax
 
10.09.16
19:29
(5) Это что то типа этого что ли:
"Функция ВыполнитьКомандуИзФормыВнешнегоОбъекта(ИдентификаторКоманды, ПараметрыКоманды, ЭтаФорма) Экспорт
    
    ВнешнийОбъект = ЭтаФорма.РеквизитФормыВЗначение("Объект");
    
    РезультатВыполнения = ВыполнитьКомандуВнешнегоОбъекта(ВнешнийОбъект, ИдентификаторКоманды, ПараметрыКоманды, Неопределено);
    
    Возврат РезультатВыполнения;
    
КонецФункции
"
То есть, сейчас в УФ нельзя нормально вызвать процедуры модуля объекта, только вот так извратившись???
7 Torquader
 
10.09.16
19:58
(4) Очень классное решение, особенно, если учесть, что модуль объекта при его создании каждый раз компиляется - и потом будут вопрос - а чего это всё так сильно тормозит.
8 Рэйв
 
10.09.16
20:00
(6)Чукча не читатель.Чукча писатель...:-)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.