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