Работа с OPOS драйвером на примере печати X-отчета ККТ Пирит 2Ф

Оборудование - ККМ

Печать X-отчета в 1С с помощью OPOS драйвера Pirit2F

Доброго дня!

В связи с тем, что Кристалл-Сервисс не реализовал во внешней компоненте CSIPirit_1C8 печать X-отчета, а DKViki_1C8 работает с ошибками на ККТ Пирит 2Ф, решил реализовать данный функционал через OPOS-драйвер. Для начала нужно установить OPOS драйвер (если не установлен). Далее задать параметры устройства через утилиту TestOPOS. У меня находится в каталоге C:\Program Files (x86)\CSI\Pirit2F OPOS Driver\.

Настройки выставил следующие:

Важно указать кодировку 1251 и нужный порт, в моем случае это COM11
Далее нужно посмотреть какой ProgID у OPOS драйвера, чтобы создать COM  объект через 1С. Сделать это можно через MS Excel в панели "Разработчик" -> "Надстройки Excel" -> "Автоматизация":

После всех настроек пишем такой код для печати X-отчета:

&НаКлиенте
Процедура ХОтчет(Команда)
	
	// создаем COM-объект
	Попытка
		Printer = Новый COMОбъект("OPOS.FiscalPrinter.1.12");
	Исключение
		Сообщить("Ошибка: на данном компьютере не установлен драйвер OPOS Пирит 2Ф");
		Возврат;
	КонецПопытки;	
	
	// открываем устройство
	Printer.Open("Pirit");
	Если Printer.ResultCode <> 0 Тогда
		Сообщить("Ошибка OPOS-драйвера ККТ: "+Printer.ErrorString);
		Возврат;
	КонецЕсли;
	
	// получаем доступ к устройству
	Printer.ClaimDevice(10000);
	Если Printer.ResultCode <> 0 Тогда
		Сообщить("Ошибка OPOS-драйвера ККТ: "+Printer.ErrorString);
		Возврат;
	КонецЕсли;	
	
	// устанавливаем свойство использования устройства
	Printer.DeviceEnabled = Истина;
	// регистрируем кассира (номер кассы, имя кассира)
	Printer.SetPOSID("1", ИмяПользователя());
	
	// печатаем X-отчет
	Printer.PrintXReport();
	Если Printer.ResultCode <> 0 Тогда
		Сообщить("Ошибка OPOS-драйвера ККТ: "+Printer.ErrorString);
	КонецЕсли;
	
	// устанавливаем свойство использования на "Ложь", перед освобождением устройства
	Printer.DeviceEnabled = Ложь;
	// освобождаем устройство
	Printer.ReleaseDevice();
	// завершаем работу с устройством
	Printer.Close();
	
КонецПроцедуры

После чего X-отчет печатается на ККТ Пирит 2Ф без ошибок

См. также

В этой теме еще нет сообщений.
Оставьте свое сообщение