Событие ПриИзменении у Поля ввода с КнопкойВыбораИзСписка (ОФ)
Добрый день!
У меня на форме документа есть поле ПериодРегистрации с кнпокой списка выбора и кнопкой регулирования (делаю по аналогии с типовой УПП)
В типовой (например, в форме документа Начисление з/п) для этого поля установлены события ПриИзменении
и НачалоВыбораИзСписка
КнопкаВыбора у поля отсутствует (только КнопкаСпискаВыбора и КнопкаРегулирования).
В отладчике (форма типового док-та Начисление з/п) вижу, что при изменении значения данного поля (выбором из списка или стрелками регулирования) исполнение кода в процедуру ПриИзменении не попадает, вместо этого два раза срабатывает событие НачалоВыбораИзСписка (при выборе из списка) - один раз при формировании списка, второй раз при выборе элемента.
Кто-нибудь может пояснить, почему именно так происходит, и зачем тогда в типовой присутствует процедура ПериодРегистрацииПриИзменении?
У меня на форме документа есть поле ПериодРегистрации с кнпокой списка выбора и кнопкой регулирования (делаю по аналогии с типовой УПП)
В типовой (например, в форме документа Начисление з/п) для этого поля установлены события ПриИзменении
Процедура ПериодРегистрацииПриИзменении(Элемент) |
---|
Процедура ПериодРегистрацииПриИзменении(Элемент)
РаботаСДиалогами.ДатаКакМесяцПодобратьДатуПоТексту(Элемент.Значение, ПериодРегистрации);
Элемент.Значение = РаботаСДиалогами.ДатаКакМесяцПредставление(ПериодРегистрации);
ОпределитьДатыПериодаНачисления();
УстановитьЗаголовокФормыДокумента();
УстановитьКнопкиИсправленияДокумента();
ЗаполнитьСоответствиеДоходовИВычетов();
КонецПроцедуры Показать |
и НачалоВыбораИзСписка
Процедура ПериодРегистрацииНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) |
---|
Процедура ПериодРегистрацииНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
РаботаСДиалогами.НачалоВыбораИзСпискаПредставленияПериодаРегистрации(Элемент, СтандартнаяОбработка, ПериодРегистрации, ЭтаФорма);
ОпределитьДатыПериодаНачисления();
УстановитьЗаголовокФормыДокумента();
УстановитьКнопкиИсправленияДокумента();
ЗаполнитьСоответствиеДоходовИВычетов();
КонецПроцедуры Показать |
КнопкаВыбора у поля отсутствует (только КнопкаСпискаВыбора и КнопкаРегулирования).
В отладчике (форма типового док-та Начисление з/п) вижу, что при изменении значения данного поля (выбором из списка или стрелками регулирования) исполнение кода в процедуру ПриИзменении не попадает, вместо этого два раза срабатывает событие НачалоВыбораИзСписка (при выборе из списка) - один раз при формировании списка, второй раз при выборе элемента.
Кто-нибудь может пояснить, почему именно так происходит, и зачем тогда в типовой присутствует процедура ПериодРегистрацииПриИзменении?
Найденные решения
(6)
Запускается цепочка обработчиков. ПриИзменении вызывается после НачалоВыбораИзСписка (не сразу после, а еще несколько обработчиков между ними, но мы рассматриваем конкретные обработчики).
Так как в обработчике НачалоВыбораИзСписка отключается СтандартнаяОбработка, то она отключает и всю цепочку вызываемых в стандартном режиме последующих обработчиков. Соответственно ПриИзменении уже не вызывается.
ПриИзменении однако может вызываться, если пользователь изменит значение в поле ввода не прибегая к выбору из списка.
СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка
Запускается цепочка обработчиков. ПриИзменении вызывается после НачалоВыбораИзСписка (не сразу после, а еще несколько обработчиков между ними, но мы рассматриваем конкретные обработчики).
Так как в обработчике НачалоВыбораИзСписка отключается СтандартнаяОбработка, то она отключает и всю цепочку вызываемых в стандартном режиме последующих обработчиков. Соответственно ПриИзменении уже не вызывается.
ПриИзменении однако может вызываться, если пользователь изменит значение в поле ввода не прибегая к выбору из списка.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5)Вообще, у меня из процедуры события ПриИзменении должны были обновляться табличные поля формы
Но вопрос больше про саму типовую, почему ПриИзменении в типовой не отрабатывает ни при каком условии, а вместо нее отрабатывает НачалоВыбораИзСписка?
(4)СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка (процедура РаботаСДиалогами.НачалоВыбораИзСпискаПредставленияПериодаРегистрации)
Но вопрос больше про саму типовую, почему ПриИзменении в типовой не отрабатывает ни при каком условии, а вместо нее отрабатывает НачалоВыбораИзСписка?
(4)СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка (процедура РаботаСДиалогами.НачалоВыбораИзСпискаПредставленияПериодаРегистрации)
(6)
Запускается цепочка обработчиков. ПриИзменении вызывается после НачалоВыбораИзСписка (не сразу после, а еще несколько обработчиков между ними, но мы рассматриваем конкретные обработчики).
Так как в обработчике НачалоВыбораИзСписка отключается СтандартнаяОбработка, то она отключает и всю цепочку вызываемых в стандартном режиме последующих обработчиков. Соответственно ПриИзменении уже не вызывается.
ПриИзменении однако может вызываться, если пользователь изменит значение в поле ввода не прибегая к выбору из списка.
СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка
Запускается цепочка обработчиков. ПриИзменении вызывается после НачалоВыбораИзСписка (не сразу после, а еще несколько обработчиков между ними, но мы рассматриваем конкретные обработчики).
Так как в обработчике НачалоВыбораИзСписка отключается СтандартнаяОбработка, то она отключает и всю цепочку вызываемых в стандартном режиме последующих обработчиков. Соответственно ПриИзменении уже не вызывается.
ПриИзменении однако может вызываться, если пользователь изменит значение в поле ввода не прибегая к выбору из списка.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот