Событие ПриИзменении у Поля ввода с КнопкойВыбораИзСписка (ОФ)

1. soulriwer 01.09.21 13:05 Сейчас в теме
Добрый день!

У меня на форме документа есть поле ПериодРегистрации с кнпокой списка выбора и кнопкой регулирования (делаю по аналогии с типовой УПП)

В типовой (например, в форме документа Начисление з/п) для этого поля установлены события ПриИзменении
Процедура ПериодРегистрацииПриИзменении(Элемент)

и НачалоВыбораИзСписка

Процедура ПериодРегистрацииНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)

КнопкаВыбора у поля отсутствует (только КнопкаСпискаВыбора и КнопкаРегулирования).

В отладчике (форма типового док-та Начисление з/п) вижу, что при изменении значения данного поля (выбором из списка или стрелками регулирования) исполнение кода в процедуру ПриИзменении не попадает, вместо этого два раза срабатывает событие НачалоВыбораИзСписка (при выборе из списка) - один раз при формировании списка, второй раз при выборе элемента.

Кто-нибудь может пояснить, почему именно так происходит, и зачем тогда в типовой присутствует процедура ПериодРегистрацииПриИзменении?
Найденные решения
7. spacecraft 01.09.21 15:17 Сейчас в теме
(6)
СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка

Запускается цепочка обработчиков. ПриИзменении вызывается после НачалоВыбораИзСписка (не сразу после, а еще несколько обработчиков между ними, но мы рассматриваем конкретные обработчики).
Так как в обработчике НачалоВыбораИзСписка отключается СтандартнаяОбработка, то она отключает и всю цепочку вызываемых в стандартном режиме последующих обработчиков. Соответственно ПриИзменении уже не вызывается.
ПриИзменении однако может вызываться, если пользователь изменит значение в поле ввода не прибегая к выбору из списка.
Yan_Malyakov; soulriwer; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 01.09.21 13:08 Сейчас в теме
(1)
и зачем тогда в типовой присутствует процедура ПериодРегистрацииПриИзменении?
Кроме присутствия процедуры необходимо еще и привязать эту процедуру к событию элемента. Простая копипаста не работает.
3. soulriwer 01.09.21 13:11 Сейчас в теме
(2)Процедура в типовой привязана разумеется
4. SlavaKron 01.09.21 13:26 Сейчас в теме
(1)
выбором из списка или стрелками регулирования) исполнение кода в процедуру ПриИзменении не попадает
Возможно, из-за того, что СтандартнаяОбработка устанавливается в Ложь.
6. soulriwer 01.09.21 14:40 Сейчас в теме
(5)Вообще, у меня из процедуры события ПриИзменении должны были обновляться табличные поля формы
Но вопрос больше про саму типовую, почему ПриИзменении в типовой не отрабатывает ни при каком условии, а вместо нее отрабатывает НачалоВыбораИзСписка?
(4)СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка (процедура РаботаСДиалогами.НачалоВыбораИзСпискаПредставленияПериодаРегистрации)
7. spacecraft 01.09.21 15:17 Сейчас в теме
(6)
СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка

Запускается цепочка обработчиков. ПриИзменении вызывается после НачалоВыбораИзСписка (не сразу после, а еще несколько обработчиков между ними, но мы рассматриваем конкретные обработчики).
Так как в обработчике НачалоВыбораИзСписка отключается СтандартнаяОбработка, то она отключает и всю цепочку вызываемых в стандартном режиме последующих обработчиков. Соответственно ПриИзменении уже не вызывается.
ПриИзменении однако может вызываться, если пользователь изменит значение в поле ввода не прибегая к выбору из списка.
Yan_Malyakov; soulriwer; +2 Ответить
8. soulriwer 01.09.21 15:27 Сейчас в теме
(7)Спасибо огромное!
Действительно, ПриИзменении срабатывает при вводе периода текстом с клавиатуры или через Ctrl+V
9. soulriwer 02.09.21 01:01 Сейчас в теме
(7) А порядок и набор вызываемых обработчиков где-то документирован или только отладчиком смотреть?
10. spacecraft 02.09.21 09:40 Сейчас в теме
(9) может и есть документация на это...
Но в данном случае можно и отладчиком посмотреть, там не так много событий на поле ввода.
5. user925427 126 01.09.21 14:03 Сейчас в теме
Чего хотите добиться в событии ПриИзменении? Проверьте, совпадает ли вид элемента формы - поле ввода, поле выбора - с типовой.
Оставьте свое сообщение

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