Имя: Пароль:
1C
1С v8
УстановитьДействие() управляемая форма.
0 a_alenkin
 
11.11.21
15:52
Собственно, что то туплю
В общем модуле клиент-сервер добавляю поле в табличную часть, создаю поле на форме но
не срабатывает установить действие, т.е. срабатывает, но действие не выполняется:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка, ЭтаФорма) Экспорт

    ДобавляемыеРеквизиты = Новый Массив;

    КЧ = Новый КвалификаторыЧисла(15,2);
    ТипРеквизита = Новый ОписаниеТипов("Число",,,КЧ);
    РеквизитФормы = Новый РеквизитФормы(
        "ЦенаСоСкидкой",
        ТипРеквизита,    
        "Объект.Товары",
        "Цена со скидкой");                                                      
    ДобавляемыеРеквизиты.Добавить(РеквизитФормы);

    ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
    
    НовыйЭлемент = ЭтаФорма.Элементы.Добавить("ТоварыЦенаСоСкидкой", Тип("ПолеФормы"), ЭтаФорма.Элементы.Товары);  
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ПутьКДанным = "Объект.Товары.ЦенаСоСкидкой";
    НовыйЭлемент.УстановитьДействие("ПриИзменении", "ТоварыЦенаСоСкидкойПриИзменении");
    
КонецПроцедуры    

&НаКлиенте
Процедура ТоварыЦенаСоСкидкойПриИзменении(Элемент) Экспорт

    Элемент.Родитель.ТекущиеДанные.Цена = Элемент.Родитель.ТекущиеДанные.ЦенаСоСкидкой;

КонецПроцедуры

Что может быть или где я туплю?
1 a_alenkin
 
11.11.21
15:53
И да - когда я все это выполняю в модуле формы - все работает
2 dubolom
 
11.11.21
15:58
(1) Так у тебя процедура определена в общем модуле, а надо, чтобы в форме была определена.
3 a_alenkin
 
11.11.21
15:59
(2) А как вот определить ее в общем модуле?
Может в
    НовыйЭлемент.УстановитьДействие("ПриИзменении", "ТоварыЦенаСоСкидкойПриИзменении");
добавить имя общего модуля?
4 Малыш Джон
 
11.11.21
16:00
Чтобы установить процедуру в событие для реквизита, процедура должна быть определена в модуле формы.
5 Малыш Джон
 
11.11.21
16:03
УстановитьДействие (SetAction)
Синтаксис:
УстановитьДействие(<ИмяСобытия>, <Действие>)
Параметры:
<ИмяСобытия> (обязательный)
Тип: Строка.
Имя события.
<Действие> (обязательный)
Тип: Действие, Неопределено.
Устанавливаемое действие.
В случае установки значения Неопределено при получении от элемента управления указанного события никакого действия выполнено не будет.
Описание:
Устанавливает новую процедуру-обработчик (действие) для указанного события.
Доступность:
Толстый клиент.
Примечание:
Процедура должна быть экспортируемой и располагаться в модуле формы, при этом количество параметров должно совпадать с необходимым количеством параметров события, инициирующего вызов действия.
6 Малыш Джон
 
11.11.21
16:04
Если это решит проблему: добавь в форму экспортную процедуру, которая вызывает твою процедуру из общего модуля