Показать сообщение отдельно
Старый 04.04.2011, 13:35   #10  
AngelDominantes is offline
AngelDominantes
Участник
 
76 / 9 (1) +
Регистрация: 30.12.2010
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А вы мой проект смотрели? В 4.0 по крайней мере нужно было явно создать контекст и ссылку на запись (по ключевым полям):


В 2009 немного параметры поменялись, но суть такая же. См. EventNotification.create() - кроме проверки прав доступа там все важно повторить.
Как я понимаю работу оповещений: Существует Таблица куда записываются оповещения(EventInbox), существует какой то класс который постоянно эти оповещения из этой таблицы считывает и доставляет пользователям. Оповещения туда помещаются при срабатывании какого то события на таблице, НО если в эту таблицу сделать программный insert() указав:
X++:
        inbox.AlertTableId      = TableNum(CustTable);
        inbox.AlertFieldId      = FieldNum(CustTable, Name);
        inbox.TypeTrigger       = EventTypeTrigger::FieldChanged;
то мы как бы говорим произошло событие на таблице CustTable, нужно пользователей оповестить, однако в действительности событие не происходило. В связи с этим вопрос: при заполнении EventInboxData след образом:
X++:
        args.menuItemName(menuFunction.name());
        args.menuItemType(MenuItemType::Display);     
        eci.parmAlertBuffer(record);
        eci.parmAlertFormDsName('S_CustVendCommon');
        eci.parmPackedArgs(args);
        inboxData.InboxId = inboxId;
        inboxData.DataType = EventInboxDataType::Context;
        inboxData.Data = eci.pack();
        inboxData.insert();
и указании
X++:
        eci.parmAlertBuffer(record);
        eci.parmAlertFormDsName('S_CustVendCommon');
на другую таблицу(отличную от той на которую мы якобы генерировали событие), будет ли это работать, если да то в чем может быть загвоздка? оповещение приходит но без ссылки на меню и судя по классу EventNotification никаких дополнительных параметров при Inserte заполнять не нужно.