Repository navigation
Обработчики событий декораций и групп формы - #714
Conversation
Декорации (надпись, картинка) и группы формы не читали свои события: модели FormDecoration и FormGroup не реализовывали FormEventHandlerOwner, и разобранный <Events> (конфигуратор) или <handlers> (EDT, внутри extInfo) молча терялся. Так пропадали, например, Click и URLProcessing у надписей-гиперссылок и OnCurrentPageChange у группы страниц. Теперь у декорации и группы есть eventHandlers, как у кнопки и поля. В эталонах форм у всех декораций и групп появилось поле eventHandlers; у десяти декораций из фикстур БСП в нём настоящие обработчики, которые раньше терялись. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to The supplied evidence identifies no issue that needs to be fixed before merging. Pre-merge checks |
|
|
Test Results 570 files ± 0 570 suites ±0 16m 37s ⏱️ -57s Results for commit 9fb90c4. ± Comparison against base commit 2031e0b. This pull request removes 56 and adds 56 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |



Что сломано
Декорации (надпись, картинка) и группы формы не читали свои события.
FormDecorationиFormGroupне реализовывалиFormEventHandlerOwner, поэтому разобранный блок событий —<Events>в формате конфигуратора,<handlers>внутриextInfoв EDT — пропадал молча. Так терялись, например,ClickиURLProcessingу надписей-гиперссылок иOnCurrentPageChangeу группы страниц.Как это видно снаружи: BSL Language Server считает обработчик
Clickнадписи неиспользуемым методом. Пример — УПП,Documents/ПРС_ПланЦен/Forms/ФормаДокумента:Что сделано
У
FormDecorationиFormGroupпоявилось полеeventHandlersи интерфейсFormEventHandlerOwner, как уFormButtonиFormField. Ридер общий: значениеEvents/handlersи так раскладывалось в полеeventHandlers, а EDT-ридер разворачиваетextInfoв контекст элемента, так что менять чтение не пришлось.Проверка
ExternalReportTest.shouldReadDecorationAndGroupEventHandlersв обоих форматах: надписьПереходКВыбраннымПолямОтчета(Click → ПерейтиКОтчету, событие уже было в фикстуре) и группаСтраницыНастроек(OnCurrentPageChange, событие добавлено в фикстуру по образцу реальной формы УППCommonForms/ИнтеграцияС1СДокументооборотЗадачиИсполнителя). Без правки модели тест падает, с правкой проходит.GenerateFormDataFixtures: 56 файлов, только добавления. Это 629 пустых"eventHandlers": []у декораций и групп и 10 настоящих обработчиков декораций в фикстурах БСП (ПредметНажатие,АвторНажатие,ДекорацияПисьмоОснованиеОбработкаНавигационнойСсылкии др.), которые раньше терялись../gradlew check: 1447 тестов, 0 падений.После мержа BSL Language Server подхватит обработчики автоматически: их собирают со всех элементов, реализующих
FormEventHandlerOwner.🤖 Generated with Claude Code
Summary by CodeRabbit