Главная » Файлы » Программируем в 1С » 1С и Другие системы |
Скачивать материалы с сайта, могут только зарегистрированные пользователи.
Для регистрации заполните два поля ниже!
Через минуту Вы получите "Гостевой доступ"
2009 Февраль 25, 14:14 | |
ВК для асинхронной обработки событий COM-объектов
Внешняя компонента для 1С: Предприятие 8.0, 1С: Бухгалтерия 7.7, 1С: Торговля и склад 7.7, 1С: Зарплата и кадры 7.7EventProxy - ВК для асинхронной обработки событий COM-объектов.
Работает в 7.7 и в 8.0 Содержит единственный объект EventProxy. Перем Обработчик, ОбработчикСобытий,objWMIServices; Процедура ПриНачалеРаботыСистемы() //ПодключитьВнешнююКомпоненту("Addin.EventProxy"); ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"EventProxy.dll"); ОбработчикСобытий=СоздатьОбъект("Addin.EventProxy"); ОбработчикСобытий.ГлубинаБуфераСобытий=200; Обработчик=СоздатьОбъект("WbemScripting.SWbemSink"); ОбработчикСобытий.Источник(Обработчик,"WbemScripting.SWbemSink","WMISink"); objWMIServices = ОбработчикСобытий.ПолучитьОбъект( "winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2"); Shell=СоздатьОбъект("WScript.Shell"); Env=Shell.Environment("Process"); objWMIServices.ExecNotificationQueryAsync(Обработчик, "SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_PrintJob' |AND TargetInstance.Owner='"+Env.Item("UserName")+"'"); КонецПроцедуры // ПриОткрытии Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Если (Источник="WMISink") и (Событие="OnObjectReady") Тогда Д=ЗначениеИзСтрокиВнутр(Данные); WMIObj=ОбработчикСобытий.ПолучитьОбъект(Д.ПолучитьЗначение(1)); ИмяСобытия=WMIObj.SystemProperties_.Item("__Class").Value; Job=WMIObj.TargetInstance; Если ИмяСобытия="__InstanceDeletionEvent" Тогда Если Job.PagesPrinted=Job.TotalPages Тогда Сообщить("Документ "+Job.Document+" напечатан"); Иначе Сообщить("Документ "+Job.Document+" не напечатан","!!!"); КонецЕсли; КонецЕсли; Сообщить("Name:"+Job.Name); Сообщить("Caption:"+Job.Caption); Сообщить("Description:"+Job.Description); Сообщить("Document:"+Job.Document); Сообщить("Owner:"+Job.Owner); Сообщить("TotalPages:"+Job.TotalPages); Сообщить("StartTime:"+Job.StartTime); Сообщить("HostPrintQueue:"+Job.HostPrintQueue); Сообщить("JobStatus:"+Job.JobStatus); Сообщить("Size:"+Job.Size); Сообщить("Status:"+Job.Status); Сообщить("StatusMask:"+Job.StatusMask); Сообщить("PagesPrinted:"+Job.PagesPrinted); Сообщить("JobId:"+Job.JobId); КонецЕсли; КонецПроцедуры // ОбработкаВнешнегоСобытия | |
Просмотров: 2762 | Загрузок: 15 | |
Выразить благодарность - Поделиться с друзьями!
Всего комментариев: 0 | |