Добрый день!

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

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

    РаботаСДиалогами.ДатаКакМесяцПодобратьДатуПоТексту(Элемент.Значение, ПериодРегистрации);
    Элемент.Значение = РаботаСДиалогами.ДатаКакМесяцПредставление(ПериодРегистрации);

    ОпределитьДатыПериодаНачисления();
    УстановитьЗаголовокФормыДокумента();

    УстановитьКнопкиИсправленияДокумента();

    ЗаполнитьСоответствиеДоходовИВычетов();

    КонецПроцедуры
```

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

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

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

    ОпределитьДатыПериодаНачисления();
    УстановитьЗаголовокФормыДокумента();

    УстановитьКнопкиИсправленияДокумента();

    ЗаполнитьСоответствиеДоходовИВычетов();

    КонецПроцедуры
```

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

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

Кто-нибудь может пояснить, почему именно так происходит, и зачем тогда в типовой присутствует процедура ПериодРегистрацииПриИзменении?
---
СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка
Запускается цепочка обработчиков. ПриИзменении вызывается после НачалоВыбораИзСписка (не сразу после, а еще несколько обработчиков между ними, но мы рассматриваем конкретные обработчики).
Так как в обработчике НачалоВыбораИзСписка отключается СтандартнаяОбработка, то она отключает и всю цепочку вызываемых в стандартном режиме последующих обработчиков. Соответственно ПриИзменении уже не вызывается.
ПриИзменении однако может вызываться, если пользователь изменит значение в поле ввода не прибегая к выбору из списка.
---
и зачем тогда в типовой присутствует процедура ПериодРегистрацииПриИзменении? Кроме присутствия процедуры необходимо еще и привязать эту процедуру к событию элемента. Простая копипаста не работает.
---
Процедура в типовой привязана разумеется
---
выбором из списка или стрелками регулирования) исполнение кода в процедуру ПриИзменении не попадает Возможно, из-за того, что СтандартнаяОбработка устанавливается в Ложь.
---
Вообще, у меня из процедуры события ПриИзменении должны были обновляться табличные поля формы
Но вопрос больше про саму типовую, почему ПриИзменении в типовой не отрабатывает ни при каком условии, а вместо нее отрабатывает НачалоВыбораИзСписка?
(4)СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка (процедура РаботаСДиалогами.НачалоВыбораИзСпискаПредставленияПериодаРегистрации)
---
СтандартнаяОбработка = Ложь только в событии НачалоВыбораИзСписка
Запускается цепочка обработчиков. ПриИзменении вызывается после НачалоВыбораИзСписка (не сразу после, а еще несколько обработчиков между ними, но мы рассматриваем конкретные обработчики).
Так как в обработчике НачалоВыбораИзСписка отключается СтандартнаяОбработка, то она отключает и всю цепочку вызываемых в стандартном режиме последующих обработчиков. Соответственно ПриИзменении уже не вызывается.
ПриИзменении однако может вызываться, если пользователь изменит значение в поле ввода не прибегая к выбору из списка.
---
Спасибо огромное!
Действительно, ПриИзменении срабатывает при вводе периода текстом с клавиатуры или через Ctrl+V
---
А порядок и набор вызываемых обработчиков где-то документирован или только отладчиком смотреть?
---
может и есть документация на это...
Но в данном случае можно и отладчиком посмотреть, там не так много событий на поле ввода.
---
Чего хотите добиться в событии ПриИзменении? Проверьте, совпадает ли вид элемента формы - поле ввода, поле выбора - с типовой.