COM-соединение с принтером. Непосредственная быстрая печать с выбором принтера не по умолчанию (1C: v8: Программисту: COM-соединение со службой Microsoft WMI, ) — 1c-h
 

COM-соединение с принтером. Непосредственная быстрая печать с выбором принтера не по умолчанию (1C: v8: Программисту: COM-соединение со службой Microsoft WMI, )

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Вопрос Выбор принтера для быстрой непосредственной печати — как организовать в 1С:Предприятии. COM-соединение со службой WMI
Ответ Обычно в 1С:Предприятии последовательность действий при печати документов бывает в двух вариантах:
Вариант 1 – жмем на кнопку «печать», и на принтере сразу «вылезает» лист с распечатанным текстом.
Вариант 2 – жмем на кнопку «печать», на экране компьютера появляется форма предпросмотра, идем в меню «Файл – Печать», открывается стандартное диалоговое окно Windows выбора принтера, выбираем принтер (и при желании его настройки), жмем на кнопку «Печать» и после этого уже на принтере «вылезает» лист с распечатанным текстом.

Ниже будет показано, как реализовать еще один вариант печати:
Вариант 3 — жмем на кнопку «печать», открывается наше собственное окошко выбора принтера, выбираем принтер (или предпросмотр) – жмем «ОК», документ либо сразу печатается, либо открывается окно предпросмотра.
Т.е. в этом нашем третьем варианте пользователь сам «на лету» решает, хочет ли он посмотреть этот конкретный экземпляр перед печатью.

Для реализации воспользуемся СОМ-соединением со службой WMI. (Краткая справка: WMI — Windows Management Instrumentarium – это служба Microsoft, позволяющая писать скрипты, управляющие непосредственно самой операционной системой, системными устройствами, реестром, файловой системой и т.п.*)
Отметим, что на само по себе СОМ-соединение со службой WMI уходит несколько секунд, поэтому этот метод все же не так уж удобен для торопливых пользователей.

*Справочная табличка объектов библиотеки службы WMI:

ОбъектОписание
SWbemLocatorИспользуется для установления связи с пространством имен WMI на локальном или удаленном компьютере. В языке 1C v8 – создается с помощью метода Новый COMОбъект(), VBScript с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта WScript.
SWbemServicesПозволяет выполнять действия над классами и объектами в пространстве имен WMI (создание, получение доступа, изменение и удаление классов или экземпляров классов). В языках VBScript и JScript создается с помощью функции GetObject, в WSH — с помощью метода GetObject объекта WScript
SWbemObjectSetКоллекция объектов SWbemObject, которая может быть получена путем вызова методов других объектов библиотеки поддержки сценариев WMI (например, методов ExecQuery или InstancesOf объекта SWbemservices)
SWbemObjectПредставляет либо экземпляр управляемого ресурса WMI, либо определение класса WMI. В языках VBScript и JScript создается с помощью функции GetObject, в WSH — с помощью метода GetObject объекта Wscript
SWbemMethodSetКоллекция объектов SWbemMethod. Хранится в свойстве Methods_ соответствующего объекта SWbemObject, не может быть создана в сценарии напрямую с помощью CreateObject или GetObject
SWbemMethodПозволяет получить описание метода объекта WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject
SWbemPropertySetКоллекция объектов SWbemProperty. Хранится в свойстве Properties_ соответствующего объекта SWbemObject, не может быть создана в сценарии напрямую с помощью CreateObject или GetObject
SWbemPropertyПредставляет одно свойство управляемого объекта WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject
SWbemQualifierSetКоллекция объектов SWbemQualifier. Хранится в свойстве Qualifiers_ соответствующего объекта SWbemObject, SWbemProperty или SWbemMethod. Эта коллекция не может быть создана в сценарии напрямую с помощью CreateObject или GetObject
SWbemQualifierПредставляет либо квалификатор класса или экземпляра класса WMI, либо квалификатор свойства или метода объекта WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject
SWbemObjectPathПозволяет построить и проверить путь к объекту WMI. В языке VBScript создается с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта WScript
SWbemNamedValueSetКоллекция объектов SWbemNamedValue. В языке VBScript создается с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта Wscript
SWbemNamedValueИспользуется для передачи дополнительной информации при некоторых вызовах WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject
SWbemLastErrorСодержит расширенную информацию о произошедшей ошибке WMI. В языке VBScript создается с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта Wscript
SWbemSecurityПозволяет читать или записывать информацию об установках безопасности для определенного объекта WMI. Хранится в свойстве Security_ объектов SWbemLocator, SWbemServices, SWbemObjectSet, SWbemObject, SWbemObjectPath, SWbemLastError, SWbemEventSource
SWbemPrivilegeSetКоллекция объектов SWbemPrivilege. Хранится в свойстве Privileges объекта WbemSecurity
SWbemPrivilegeПозволяет установить или удалить привилегию, необходимую для доступа к объекту WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject
SWbemEventSourceСоответствует событию WMI, которое задается с помощью метода ExecNotificationQuery объекта SWbemServices. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject
SWbemSinkИспользуется для получения результатов выполнения асинхронных методов. В языке VBScript создается с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта Wscript
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Автор 1С

3 thoughts on “COM-соединение с принтером. Непосредственная быстрая печать с выбором принтера не по умолчанию (1C: v8: Программисту: COM-соединение со службой Microsoft WMI, )

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Next Post

При создании документа «Реализация товаров и услуг» случайно захватили лишний документ «Собранные товары». В реализации появились лишние строки. Как их убрать? (1С: Управление торговлей)

Ср Ноя 10 , 2010
Вопрос При создании документа «Реализация товаров и услуг» случайно захватили лишний документ «Собранные товары». В реализации появились лишние строки. Как их убрать? Ответ Нужно посмотреть в табличной части документа «Реализация товаров и услуг», по каким документам «Собранные товары» эти строки попали в документ. Для этого откроем групповую обработку, которая находиться […]