Вход | Регистрация
 
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. Наличие/отсутствие параметра (Элемент) не влияет, проверено.

Список тем форума
  Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует