К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

ДобавитьОбработчик

Гость
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
Цитата:
Сообщение от Aphanas Посмотреть сообщение
Почему? Есть идеи? Как можно заставить его срабатывать в любом случае?
Все очень просто. Во внешней обработке создается объект конкретного документа, и этому объекту "добавляется" код в обработчик, описанный в модуле, затем по событию записи вызывается обработчики и выполняются, затем они уничтожаются. Но дополнительные обработчики, повторю, подцепляются к конкретному экземпляру документа, а не к классу данного документа вообще. Когда документ открывается напрямую на экране, у объекта нигде не прописано, что к обработчику надо привесить еще какой-либо хвостик в виде кода.
Гость
13 - 13.02.2014 - 09:05
12, Тысяча чертей!
Ты беспощадно прав. Обработчик цепляется не к объекту базы данных, а конкретному экземпляру его программной реализации.
Я прозрел.


К списку вопросов






Copyright ©, Все права защищены