0
- 07.02.2014 - 14:07
|
Пытаюсь подписаться на событие "ПриЗаписи" элемента справочника. ДобавитьОбработчик МойОбъект.ПриЗаписи, МойОбработчик Не работает. Пробовал в разных релизах движка, пробовал подписывать процедуру модуля обработки, процедуру модуля формы, процедуру общего модуля. Ничего не работает. Как этот оператор вообще использовать? | |
1
- 07.02.2014 - 15:26
| http://v8.1c.ru/overview/Term_000000153.htm гугл? | |
2
- 07.02.2014 - 15:31
|
Источник: МойОбъект Событие: ПриЗаписи Обработчик: ОбщийМодульМоихОбработчиков.СделатьКакНадо В общем модуле "ОбщийМодульМоихОбработчиков" экспортная процедура "СделатьКакНадо(Источник, Отказ)" | |
3
- 07.02.2014 - 18:24
| 2-GreenDragon >еще в свойствах общего модуля галочки правильно расставить | |
4
- 10.02.2014 - 04:33
|
Многие спрашивают на форумах про "ДобавитьОбработчик". И первое, что им отвечают, это про подписки на события. Это ответ не на тот вопрос. Я в курсе про подписки на события. Я спрашиваю не про объект метаданных, о про оператор языка. Общие модули и галочки тут ни при чем. Пример использования: Обработка = Обработки.КонтрольДокумента.Создать(); Накладная = Документы.Накладная.СоздатьДокумент(); ДобавитьОбработчик Накладная.ПриЗаписи, Обработка.ПриЗаписиДокумента Кто знает как правильно работать с этим оператором? Я по всякому пробовал, не получается. | |
5
- 10.02.2014 - 08:09
| (4)"ДобавитьОбработчик Накладная.ПриЗаписи" - это что? | |
6
- 10.02.2014 - 08:54
| 4-Aphanas > Потомушто для объекта Документ уже, стараниями разработчика, сделан обработчик ПриЗаписи. Его не нужно объявлять. Он уже есть. Пользуйся. | |
7
- 10.02.2014 - 10:10
|
(5)Это пример из синтаксис-помощника Синтаксис: ДобавитьОбработчик <Событие>, <ОбработчикСобытия>; Описание: Добавляет обработчик события. При добавлении обработчика события производится проверка соответствия числа параметров события числу параметров метода, назначаемого в качестве обработчика. (6) Не понятно, что Вы имеете ввиду. Разработчиками движка не реализованы обработчики событий, таких как "ПриЗаписи". Это задача разработчика конфигурации. Я пытаюсь назначить процедуру своей обработки в качестве обработчика события, т. е. сделать, как указано в примере. Я вообще хочу дойти до того, чтобы подцепить на событие процедуру внешней обработки. И сделать всё БЕЗ ИЗМЕНЕНИЯ КОНФИГУРАЦИИ. На инфостарте есть примеры, что это якобы, можно сделать. Скачать оттуда и посмотреть я не могу. Денег нет. | |
8
- 10.02.2014 - 14:37
| Добавить обработчик без изменения конфигурации не получится. | |
9
- 10.02.2014 - 15:14
|
2(8) отчего? Пример тупой. Создаю внешнюю обработку в ней реквизит Док тип Документссылка.СчетНаОплатуПокупателя В модуле формы обработки пишу: Процедура КнопкаВыполнитьНажатие(Кнопка) ДокО = Док.ПолучитьОбъект(); ДобавитьОбработчик ДокО.ПередЗаписью, локПередЗаписью; ДобавитьОбработчик ДокО.ПриЗаписи, локПриЗаписи; ДокО.Записать(РежимЗаписиДокумента.Запись); УдалитьОбработчик ДокО.ПередЗаписью, локПередЗаписью; УдалитьОбработчик ДокО.ПриЗаписи, локПриЗаписи; КонецПроцедуры Процедура локПриЗаписи(Тест = "", Отказ = Ложь) Сообщить("При записи"); КонецПроцедуры Процедура локПередЗаписью(Тест = "", Отказ = Ложь,РежимЗаписи = Ложь,РежимПровежения = Ложь) Сообщить("Перед записью"); КонецПроцедуры Жму кнопку и все работает. | |
10
- 13.02.2014 - 05:54
|
bma1, действительно, я сделал так, работает. Обработчик запускается, если вызвать ДокО.Записать(). Но, если открыть этот документ и нажать кнопку "Записать" (как я делал), обработчик не срабатывает. Почему? Есть идеи? Как можно заставить его срабатывать в любом случае? | |
11
- 13.02.2014 - 06:43
|
(10) Я сам такого не делал, но есть желание и нет времени на эксперименты. Просто мысли )) Суть: Сделать обработку что бы она была в режиме Рабочего стола и из нее караулить открываемые объекты, получаешь контекст объекта, ну а там уже полет фантазии, определяешь тип, вид и т.д..... и развлекаешься )) может в этом направлении можно что по крутить? | |
12
- 13.02.2014 - 08:04
| Все очень просто. Во внешней обработке создается объект конкретного документа, и этому объекту "добавляется" код в обработчик, описанный в модуле, затем по событию записи вызывается обработчики и выполняются, затем они уничтожаются. Но дополнительные обработчики, повторю, подцепляются к конкретному экземпляру документа, а не к классу данного документа вообще. Когда документ открывается напрямую на экране, у объекта нигде не прописано, что к обработчику надо привесить еще какой-либо хвостик в виде кода. | |
13
- 13.02.2014 - 09:05
|
12, Тысяча чертей! Ты беспощадно прав. Обработчик цепляется не к объекту базы данных, а конкретному экземпляру его программной реализации. Я прозрел. | |
| Интернет-форум Краснодарского края и Краснодара |