| Главная » Файлы » Программируем в 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);
КонецЕсли;
КонецПроцедуры // ОбработкаВнешнегоСобытия
| |
| Просмотров: 2843 | Загрузок: 15 | | |
Выразить благодарность - Поделиться с друзьями!
| Всего комментариев: 0 | |