Имя: Пароль:
1C
1С v8
Поле ввода, добавление обработчика события программно через расширение.
,
0 Darjeeling
 
05.12.18
13:21
Добрый день.

Ситуация: в типовой справочник добавлены реквизиты, я их вывожу на форму элемента через расширение, программно в процедуре ПриСозданииНаСервереПосле, перемещаю куда мне надо и устанавливаю действие «ПриИзменении» методом УстановитьДействие().
Выводятся они замечательно, но почему-то не отрабатывает действие «ПриИзменении».

Если я не программно вывожу, а прямо в конструкторе формы и потом добавляю там же обработчик события «ПриИзменении», так как это расширение он меня спрашивает как добавить «до, после или вместо», то при  таком способе все отрабатывает хорошо.

Кто-нибудь знает как программно это правильно сделать?
1 youalex
 
05.12.18
13:34
покажи код в УстановитьДействие(), и объявление функции ПриИзменении()
2 Darjeeling
 
05.12.18
14:17
(1)
Вот добавление реквизита и установка действия:

ДополнительныйРеквизит = Элементы.Вставить("ПРФ_НаименованиеПолное",Тип("ПолеФормы"),Элементы.ГруппаНаименованиеКод);

    
ДополнительныйРеквизит.УстановитьДействие("ПриИзменении","ПРФ_НаименованиеПолноеПриИзменении");


Вот объявление функции:

Процедура ПРФ_НаименованиеПолноеПриИзменении()
    Наименование = ПолучитьПоследнююЧастьНаименования(Объект.ПРФ_НаименованиеПолное);    
КонецПроцедуры



Но программа в эту процедуру не попадает
3 ildary
 
05.12.18
14:49
где объявлена ПРФ_НаименованиеПолноеПриИзменении()? В расширении или в расширяемой форме?
4 Darjeeling
 
05.12.18
14:56
(3) В расширении в модуле заимствованной формы.
5 ildary
 
05.12.18
15:28
(4) Когда я пробовал год назад подобное - у меня сложилось ощущение - что добавленная процедура не видна (и не работала).
6 Darjeeling
 
05.12.18
15:37
(5) Ну обычно в таких случаях программа ругается, что не может найти указанную процедуру. У меня складывается ощущение как-будто она не видит установленное действие потому что нет какого дополнения "до", "после" или "вместо" как принято в расширении

А как ты вышел из ситуации?
7 ildary
 
05.12.18
16:14
(6) я тогда вписал процедуру в модуль формы. Точнее она там уже была, в расширение вынес программное создание кнопки.
8 Darjeeling
 
05.12.18
16:25
(7) Не хочется снимать форму с поддержки.
9 AlvlSpb
 
05.12.18
16:42
(2) На всякий уточните, Процедура ПРФ_НаименованиеПолноеПриИзменении() это только здесь такой синтаксис, а в базе
&НаКлиенте
Процедура.....?
10 youalex
 
05.12.18
16:49
(2) ПРФ_НаименованиеПолноеПриИзменении(Элемент)
11 youalex
 
05.12.18
16:49
Количество параметров должно совпадать, емнип
12 Вафель
 
05.12.18
16:50
(11) если не будет совпадать, то поругается
13 youalex
 
05.12.18
16:57
не, попробовал, пофик на параметры
Может, и правда (9)
14 Darjeeling
 
05.12.18
17:10
(9) Да, я чувствовала, что я где-то туплю, но не знала, что жестко.
Я забыла директиву компиляции &НаКлиенте

Спасибо за помощь!

P.S. Наличие/отсутствие параметра (Элемент) не влияет, проверено.