CodePilot1C EDT v0.1.7.20260714-1024 — Managed Form Event Handlers
CodePilot1C EDT — управляемые обработчики событий формы (Managed Form Event Handlers)
Сборка: 0.1.7.20260714-1024
Агент теперь умеет безопасно привязывать обработчики событий управляемых форм: устанавливает событие на EMF-модели формы И атомарно генерирует соответствующую процедуру-обработчик в модуле формы (Module.bsl) — как для базовой конфигурации, так и для форм 1С-расширений (расширения). Всё через существующий инструмент mutate_form_model (поток валидационного токена MUTATE_FORM_MODEL), без нового инструмента.
Привязка обработчиков событий
- Новые операции
add_event_handler/set_event_handler/remove_event_handlerинструментаmutate_form_model. - Полное покрытие событий: форма (жизненный цикл, семейство записи, серверные дифференциаторы,
ОбработкаВыбора/ОбработкаНавигационнойСсылки), поля, таблицы (включая семейство drag-and-drop). - Привязка на кнопке/группе отклоняется с подсказкой перейти на
add_command; при неизвестном событии возвращается список допустимых событий элемента. inspect_form_layoutпоказывает существующие обработчики событий по узлам формы.
Генерация BSL-стаба
- Директива (
&НаКлиенте/&НаСервере/&НаСервереБезКонтекста) выводится из окружения события (Event.getEnvironments()/isServerCallWithContextNotAllowed()), а не из эвристики по имени. - Сигнатура воспроизводит
ParamSetсобытия дословно (включая out-параметры вродеСтандартнаяОбработка); ключевые слова — поScriptVariantконфигурации (RU/EN). - Атомарность «оба или ничего»: при сбое записи стаба слот-обработчик откатывается компенсирующей транзакцией. Идемпотентность: повторная привязка не создаёт дубль процедуры и не перезаписывает непустое тело.
Поддержка расширений (расширения)
- На усыновлённых формах создаётся
EventHandlerExtensionсcall_type(ExtendedMethodCallType, значение по умолчаниюBEFORE). - Имя процедуры-обработчика не префиксуется именем расширения (префикс — только для имён метаданных верхнего уровня); определяется наличие базового обработчика.
- Целевой усыновлённый объект резолвится корректно через существующий путь формы (без лишних вызовов внешне-свойственного FQN).
Совместимость провайдеров
- Прайминг новых операций в поверхности инструментов — provider-neutral (без ветвления по семейству модели): поля
event/handler_name/target/call_type.
Проверка
- Полная сборка Tycho reactor:
mvn -DskipTests package(публикация p2 —mvn clean verify): BUILD SUCCESS. - Регрессия: 9 классов тестов обработчиков событий зелёные.
- Update site (GitHub Pages):
https://ondysss.github.io/codepilot1c-edt/. - Update site (локально):
repositories/com.codepilot1c.update/target/repository. - ZIP:
repositories/com.codepilot1c.update/target/com.codepilot1c.update-0.1.7-SNAPSHOT.zip. - Живой EDT-smoke на базовой и расширенной форме подтверждён пользователем.