Обработчик события ПриЗакрытииПосле для расширения

1. AlexeyIsip 26 05.07.22 09:30 Сейчас в теме
При записи 10 типов документа мне нужно вставить дополнительную проверку, которая выводит сообщения пользователю. В подписка на события я эти сообщения получил и даже вывел, но Пользователь может нажать "Провести и закрыть" и ничего не увидит. Нашел решение на форуме https://forum.infostart.ru/forum9/topic102697/ путем добавления нескольких процедур ПриЗакрытииПосле, ПослеЗаписиПосле, ПослеЗаписиНаСервереПосле. Все работает, но события пришлось в расширение вручную добавить, а очень хочется сделать это программно, тк помимо того, что типов документов около 10, так еще и баз 9.
Могу добавить при создании на сервере
Форма.УстановитьДействие("ПослеЗаписи","Расш_ПослеЗаписиПосле");
Но эта команда переопределяет действующее событие и штатные процедуры не отрабатывают...
Как добавить программно Обработчик события ПриЗакрытииПосле для расширения?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 05.07.22 09:38 Сейчас в теме
(1)
Но эта команда переопределяет действующее событие и штатные процедуры не отрабатывают...
Так в своем новом обработчике первой же строкой вызовите старый обработчик, а уже со второй строчки дописываете свой функционал...
7. AlexeyIsip 26 05.07.22 10:24 Сейчас в теме
(2) Это нужно по 10 документам бегать и искать какие процедуры нужно вызывать, а их еще может и не быть
9. FatPanzer 05.07.22 10:27 Сейчас в теме
(7) И что мешает сделать одну общую процедуру в общем модуле "при создании на сервере", и в ней уже определять тип документа и в зависимости от этого типа переопределять действия?
8. AlexeyIsip 26 05.07.22 10:25 Сейчас в теме
(2) Хочется повторить действия в расширении, но программно
14. spacecraft 05.07.22 12:29 Сейчас в теме
(8) это в принципе невозможно. Во время работы действие уже установлено. Можно только переназначить.
А в конфигураторе, это настройка сценария для компиляции формы. Невозможно программно переназначить сценарий. Это как и метаданные не редактируются программно во время работы приложения.
4. collider 05.07.22 10:04 Сейчас в теме
(1)
Пользователь может нажать "Провести и закрыть" и ничего не увидит

Если в подписке поставите Отказ = Истина, то увидит. Он не сможет провести.
5. AlexeyIsip 26 05.07.22 10:21 Сейчас в теме
(4) В том то и дело, что сообщения информационные и не должны влиять на процесс проведения
11. collider 05.07.22 10:42 Сейчас в теме
(5) Тогда в подписке пишите Сообщить("БлаБла),
а на форме в процедуре ПередЗакрытием вызывайте ПолучитьСообщенияПользователю(Истина). А полученный текст спокойно вставите в ПоказатьОповещениеПользователя.

С сервера больше никак сообщение от пользователя не передать, кроме как через сообщить.
12. AlexeyIsip 26 05.07.22 11:39 Сейчас в теме
(11)
ПолучитьСообщенияПользователю


ПолучитьСообщенияПользователю - Процедура, которая работает только на сервере, а при закрытии нельзя вызывать серверные процедуры по-моему. То, что можно добавить программно СписокЗначений, а потом прочитать из него проблем не вызывает.
Хочется красиво программно обработчик установить, вот чего хочется...
13. spacecraft 05.07.22 12:22 Сейчас в теме
(1)
Могу добавить при создании на сервере
Форма.УстановитьДействие("ПослеЗаписи","Расш_ПослеЗаписиПосле");
Но эта команда переопределяет действующее событие и штатные процедуры не отрабатывают...


Через .ПолучитьДействие("ПослеЗаписи") можно узнать имя процедуры обработчика.
Хранить сопоставление формы и обработчика, скажем в параметрах сеанса.
Установить новую процедуру обработчик. В нем обращаться в общий модуль и получать имя оригинальной процедуры и вызывать ее.
15. AlexeyIsip 26 05.07.22 12:33 Сейчас в теме
(13) Интересное решение. Попробую
3. user1278383 5 05.07.22 09:47 Сейчас в теме
Нужна какая-то реакция пользователя на сообщение? Может лучше просто выводить уведомление?
6. AlexeyIsip 26 05.07.22 10:22 Сейчас в теме
(3) Реакции от пользователя не должно быть никакой, но сообщений мб много
10. user1278383 5 05.07.22 10:27 Сейчас в теме
(6) ну тут, конечно, дело вкуса, но мне кажется уведомления нагляднее
Оставьте свое сообщение

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