Программно изменить поле формы с вызовом обработчика ПриИзменении

1. native-api 16.11.23 11:54 Сейчас в теме
В обработчике "ПриИзменении" поля УФ программно, на клиенте, изменяю другие поля, устанавливая "Объект.<Реквизит>":

&НаКлиенте
Процедура КартСО_ДатаВыпускаПриИзмененииПосле(Элемент)
	Перем СрокГодностиМесяцев;
	<...>
	Если СрокГодностиМесяцев = 0 Тогда
		Возврат;
	ИначеЕсли СрокГодностиМесяцев < 0 Тогда
		Объект.СрокГодности = Дата(1,1,1);
		Объект.СрокГодностиНеОграничен = Истина;
	Иначе
		Объект.СрокГодности = ДобавитьМесяц(Объект.ДатаВыпуска,СрокГодностиМесяцев);
		Объект.СрокГодностиНеОграничен = Ложь;
	КонецЕсли;
КонецПроцедуры
Показать


На поле флажка, отображающем Объект.СрокГодностиНеОграничен, также стоит обработчик ПриИзменении, и он при этом не вызывается.

Как это исправить? Крайне желательно, не закладываясь на то, у каких из изменяемых полей есть какие обработчики.

(Сам уже гуглил, нашел только https://infostart.ru/1c/articles/16985/ с непонятной актуальностью и применимостью.)
По теме из базы знаний
Найденные решения
2. soft_wind 16.11.23 12:24 Сейчас в теме
при программном изменении реквизитов и обработчики тоже нужно вызывать программно

пример

Объект.СрокГодностиНеОграничен = Истина;
ПриИзмененииСрокГодностиНеОграничен(0); //вызов обработчика
3. native-api 17.11.23 20:19 Сейчас в теме
(2) К счастью, в моем случае обработчик ПриИзменении измененного поля был написан хорошо:

&НаКлиенте
Процедура СрокГодностиНеОграниченПриИзменении(Элемент)
	ОбновитьВидимостьДоступность();
КонецПроцедуры


Так что вызвав "ОбновитьВидимостьДоступность()", я как раз могу "не закладываться на то, у каких из изменяемых полей есть какие обработчики".
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 16.11.23 12:24 Сейчас в теме
при программном изменении реквизитов и обработчики тоже нужно вызывать программно

пример

Объект.СрокГодностиНеОграничен = Истина;
ПриИзмененииСрокГодностиНеОграничен(0); //вызов обработчика
3. native-api 17.11.23 20:19 Сейчас в теме
(2) К счастью, в моем случае обработчик ПриИзменении измененного поля был написан хорошо:

&НаКлиенте
Процедура СрокГодностиНеОграниченПриИзменении(Элемент)
	ОбновитьВидимостьДоступность();
КонецПроцедуры


Так что вызвав "ОбновитьВидимостьДоступность()", я как раз могу "не закладываться на то, у каких из изменяемых полей есть какие обработчики".
4. inf012 18.04.24 19:42 Сейчас в теме
Вроде есть способ, смотрел в другом топике, но не могу заставить работать, чтобы щтатные обработчики сработали
5. user1880116 18.04.24 21:51 Сейчас в теме
(4) Взять любую ненужную форму, можно даже текущую. Запомнить ее владельца, установить ей владельцем нужный элемент, вызвать у выбраной формы ОповеститьОВыборе, вернуть старого владельца обратно.
native-api; +1 Ответить
Оставьте свое сообщение

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