#0
by Said_We
Как в качестве обработчика действия через УстановитьДействие можно установить свой обработчик для элемента формы. Если эта процедура должна быть расположена в модуле формы, то это не интересно, так как в каждой форме надо плодить всякие обработчики. При этом из модуля формы видно процедуры общих глобальных (точку в имени обработчика нельзя использовать) модулей, а в качестве обработчиков событий их назначить нельзя. УстановитьДействие(<Событие>, <Действие>) Примечание: Процедура должна быть экспортируемой и располагаться в модуле формы, при этом количество параметров должно совпадать с необходимым количеством параметров события, инициирующего вызов действия. Описание: Предназначен для получения действия, которое можно назначить в качестве обработчика события элемента управления или команды пользовательского интерфейса. Для обработки события может быть вызвана процедура или функция модуля формы, модуля приложения или общего модуля, имя которой задано в конструкторе. А в вот в качестве обработчика события почему нельзя? Её же (процедуру) видно из модуля формы. Видил как Гений1С встраивает формы одну в другую, но в данном случае это на крайний случий. Кто с этим боролся, как и каков результ?
#3
by dk
в 8-ке не шибко курю, но я бы сделал локальные процедуры и уже из них вызвал процедуры из общих модулей
#4
by Said_We
И так в каждой форме по каждому реквизиту - это же скучно. Идея в том что бы при открытии формы прописать вызов одной процедуры общего модуля и она все события ко всем реквизитам привяжет. Жаль что сами события должны быть в модуле самой формы и нельзя использовать процедуры общих модулей пусть даже глобальных.
#9
by Said_We
У вас есть куча выших форм, для ваших же документов. В этих документах есть набор реквизитов одинаковый (к сожалению нет общих реквизитов в 8.х). Берешь с одной формы копируешь необходимые реквизиты и одну строчку в событие перед открытием с вызовом процедуры из общего модуля. Эта процедура прописывает все необходимые события для элемента формы. И не надо было бы добавлять кучу одинаковых строчек ловушек событий для каждого элемента в каждой форме. В общем я поня ничего подобного в 8.х невозможно сделать.
#10
by Said_We
Задача совсем не стоит в копировании из одной конфигурации в другую. Все происходит в одной и той же конфигурации. Просто добивает рисовать кучу строчек одних и тех же во все формы. А сми строчки состоят из процедур в которых по одной строчке вызова процедуры общего модуля.
#11
by DmitrO
Said_We, согласен на 100% Модуль формы превращается в мерзкую дрянь из локальных обработчиков вызывающих процедуры общего модуля. У 1С этот вопрос очень не проработан, это печально. Имхо возможность обработки событий в общих модулях можно было с легкостью устроить, однако вместе с этим надо чтобы каждый ЭУ имел свойство Родитель чтобы можно было получить экземпляр формы, или ТП, или ТД, и т.п.
#12
by Said_We
Зачем ЭУ (элементу управления) иметь свойство родитель? Зачем получать экземпляр формы? Достаточно перед открытием формы было бы прописать события к элементам и все. Если события случаенно разные для одного и того же по наименованию элемента формы но в разных формах, то можно привязать разные событийные процедуры или по разному называть реквизиты. Если реквизиты по сути разные, то называть надо их по разному (одинаковые должны вести себя одинаково) или ... я думаю что много разных вариантов можно придумать. Смысл в чем при привязке к событию процедура ищется только в модуле формы. Жаль что нельзя передать в событийную процедуру имя самого события. Можно было бы нарисовать мультиплексную процедуру ко всем элементам, которая бы перенаправляла бы на нужную процедуру. Т.е. не много разных объявлять, а одну в которой одна строчка вызова процедуры общего модуля. А в процедуре перед открытием назначать на эту мультиплексную процедуру модуля формы натравливать все необходимые события всех необходимых реквизитов. Ну вот такой бы изврат можно было бы придумать, но имя события не получишь. Т.е. единственное что отработает, так это одна процедура на каждое событие для всех необходимых элементов. По имени элемента соответственно свой конечный обработчик. Т.е. не одна мультиплексная процедура, а столько сколько вариантов событий (ПриИзменении, При..).
#13
by DmitrO
Свойство Родитель нужно потому, что часто для обработки события нужны объекты формы, значения других ее элементов (или в случае с ТП, например нужны данные текущей строки), в случае общей процедуры обработчика события эти данные получить из параметров процедуры-обработчика не возможно.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Не видит процедуру из общего модуля
- v8: Сдача отчетность через интернет через ... 1С БП 2.0
- Как вызвать процедуру модуля внешней обработки из общего модуля?
- Как вызвать процедуру модуля формы из модуля объекта
- Обмен работает через обработку, а через планы обмена нет
- Как правильно использовать процедуру ТоварыПриВыводеСтроки() ?
- Замена общего модуля через расширение
В этой группе 1С
- Регистр остатков на момент перед проведением документа
- ЗначениеЗаполнено(Ложь) и ЗначениеЗаполнено(Истина)
- Удалить все элементы в группе
- Возврат товаров комиссионером (УПП)
- посмотреть дерево при отладке
- Как в запросе к таблице оборотов указать тип регистратора
- Вопрос по бухгалтерии Счет 62.02 и 76.АВ
- ЗУП 2.5.13.5 Расчётная ведомость в произвольной форме
- УПП 8.1 Конвертация валюты.
- Выбор файла
- Автоматический пересчет стоимости отложенных налоговых активов и обязательств
- TIF в отчетности - как ими пользоватся?
- Как отследить изменение итоговой суммы в документе "ЧекККМ" в ТИС
- Как в запросе объединить несколько строк в одну с разделителем?
- как развернуть базу SQL на локальном компьютере
- v7: Договор в EUR оплата в USD
- Акт переработки материалов.
- Безопасность: Какие ошибки допускают пользователи в плане информ. безопасности?
- Выгрузка на дискету декларации о доходах. Предприниматель 7.7
- Ошибка "... transaction log is full..."