Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Поле ввода, добавление обработчика события программно через расширение.

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

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

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

Кто-нибудь знает как программно это правильно сделать?
 
 
   youalex
 
1 - 05.12.18 - 13:34
покажи код в УстановитьДействие(), и объявление функции ПриИзменении()
   Darjeeling
 
2 - 05.12.18 - 14:17
(1)
Вот добавление реквизита и установка действия:
ДополнительныйРеквизит = Элементы.Вставить("ПРФ_НаименованиеПолное",Тип("ПолеФормы"),Элементы.ГруппаНаименованиеКод);
…
    
ДополнительныйРеквизит.УстановитьДействие("ПриИзменении","ПРФ_НаименованиеПолноеПриИзменении"); 


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



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

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


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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует