программно назначить обработчик события 1с

1. Arvend 23 16.07.15 14:15 Сейчас в теме
Доброго времени суток, Уважаемые. Возникла проблема с назначением обработчика события на программно созданный элемент формы (упр формы).

Код выполняется на сервере. Всю процедуру не стал писать.

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

&НаСервере
Процедура ВыполнитьДействиеПриИзмененииДанных()

	Сообщить("Тест");

КонецПроцедуры // ВыполнитьДействиеПриИзмененииДанных()
Показать



ОШИБКА


Тип не определен (Действие)
Элемент.УстановитьДействие("ПриИзменении", Новый <<?>>Действие("ВыполнитьДействиеПриИзмененииДанных")); (Проверка: Сервер)

В справке написано что доступность на Действие есть на сервере. В чем проблема?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 302 16.07.15 14:19 Сейчас в теме
(1) Arven, там же вроде тип строка в действии.
Действие ты и так назначаешь.
Попробуй просто через запятую в кавычках имя действия указать.
Элемент.УстановитьДействие("ПриИзменении", "ВыполнитьДействиеПриИзмененииДанных");
Yan_Malyakov; unknown181538; Xershi; teplova_ok; SadrA; гвость; Valerianich; user659168_xec8787; Sejix; Mi4man; Oxygraphis; romulanin; awp234; ybatiaev; Necytij; chemezov; GonziK_KIV; RomanKod; egorcheg1; rpgshnik; ediks; SmArtist; adhocprog; klinval; IvanBoychuk123; +25 Ответить
4. Arvend 23 16.07.15 15:29 Сейчас в теме
(2) Boneman, Я уже назначал, но обработчик не подхватывает.
8. Boneman 302 16.07.15 15:51 Сейчас в теме
(4) Arven, к тому же ты используешь Сообщить(" ").
Кому сообщать собираешься, серверу ? Переделай на &НаКлиенте и параметр там надо сделать, по типу как стандартный обработчик выглядит.
гвость; +1 Ответить
3. IvanBoychuk123 10 16.07.15 14:20 Сейчас в теме
(1) Arven, Соглашусь с предыдущий комментарием. Второй параметр должен иметь тип "Строка"
5. Arvend 23 16.07.15 15:32 Сейчас в теме
http://www.forum.mista.ru/topic.php?id=469096, это одна из ссылок, где указано, что надо использовать Новый Действие. Мне просто непонятно, почему ругается на неопределение типа.
6. Boneman 302 16.07.15 15:48 Сейчас в теме
(5) Arven,
да это примеры для обычных форм,
а у тебя управляемая.
Тут должна быть строка.
А почему не подхватывает, х.з. разбираться надо.
Процедуру на клиенте размести,
оно не может так вот просто от элемента формы в серверную попадать.
гвость; +1 Ответить
9. Arvend 23 16.07.15 17:12 Сейчас в теме
(6) Boneman, Процедуру на клиенте размести, отработало, спс. Чет думал не смогу с сервера к клиенту обратиться.
10. ben19791010 17.07.15 04:40 Сейчас в теме
(9) Arven, эх...где же наш старый добрый метод тыка.... :)
7. Serginio 941 16.07.15 15:48 Сейчас в теме
Наверное сигнатура процедуры должна иметь вид

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


&НаСервере
Процедура ТоварыПриИзмененииНаСервере()
	// Вставить содержимое обработчика.
КонецПроцедуры
Показать
Tatyana_012345; vx_gas; Merkalov; rpgshnik; va582; SmArtist; +6 Ответить
11. arteast 100 20.08.20 23:00 Сейчас в теме
вот так отрабатывает
Элемент.УстановитьДействие("ПриИзменении", Новый Действие("ВыполнитьДействиеПриИзмененииДанных"));
12. user625107_barabambler1s 07.12.20 14:21 Сейчас в теме
Элемент.УстановитьДействие("ПриИзменении", "ВыполнитьДействиеПриИзмененииДанных");

&НаКлиенте
Процедура ВыполнитьДействиеПриИзмененииДанных(Элемент)
    ВыполнитьДействиеПриИзмененииДанныхНаСервере();
КонецПроцедуры


&НаСервере
Процедура ВыполнитьДействиеПриИзмененииДанныхНаСервере()
    // Вставить содержимое обработчика.
КонецПроцедуры
Показать
Tatyana_012345; keller; xanta; Mahinya; denis83; Xershi; maksa2005; user1835472; kondrp; romulanin; n_i_k1966; Progart; +12 Ответить
13. alnov2000 06.11.23 14:17 Сейчас в теме
(12) возможно кому-то пригодится: обязательно, чтобы элемент являлся гиперссылкой, если хотим обрабатывать нажатие на него!
Например:
КартинкаПортрета.Гиперссылка = Истина;
КартинкаПортрета.УстановитьДействие("Нажатие", "АдресКартинкиНажатие");
keller; denis83; Andgman; user1257311; umni4ka; +5 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот