Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Штрих-М ФР печать QR кодов через SMDrvFR1C

Штрих-М ФР печать QR кодов через SMDrvFR1C
Я
   Валерия
 
30.07.19 - 13:22
Ребята, здравствуйте! Видела, что 3 года назад была похожая тема  и кто-то менял обработку ShtrihMFiscalPrinters_v2 на работу через SMDrvFR1C. Может кто сможет мне помочь?У меня стоит обычный фискальник, на котором мне надо печатать всякую рекламную информацию. И нужно там вывести qr код. через тест драйвера я его печатаю, а в 1с обработка написана через DrvFR1C, где нет функции печати. Блин, вот реально бъюсь уже три дня и ума не хватает переписать эту обработку на работу через SMDrvFR1C. Пробовала наподобие обработки для ккт онлайн, через SMDrvFR1C20, но тогда при замене обработки программа не видит это устройство как фискальный регистратор. Вообщем, может у кого что завалялось в таком плане. Мне просто надо вывести текст и qr код. Спасибо если кто откликнется.
 
 
   lodger
 
1 - 30.07.19 - 13:42
НапечататьТекстовыйДокумент (PrintTextDocument)    

в него 2м параметром суешь хмл с твоими данными. для qr BarcodeType="QR"
Пример текстового XML:
<?xml version="1.0" encoding="UTF-8"?>
<Document>
    <Positions>
        <TextString Text="Участие в дисконтной системе"/>
        <TextString Text="Дисконтная карта: 00002345"/>
        <Barcode BarcodeType="EAN13" Barcode="2000021262157"/>
    </Positions>
</Document>
   Валерия
 
2 - 30.07.19 - 13:54
(1) Спасибо! Это через SMDrvFR1C? У меня просто ещё проблема как его подключить.
        Попытка
            ПрогИД = "AddIn.SMDrvFR1C";
            ПодключитьВнешнююКомпоненту(ПрогИД);
            Драйвер = Новый (ПрогИД);
        Исключение
            Результат = мОшибкаЗагрузкиДрайвера;
            ОписаниеОшибки = "Невозможно подключить внешнюю компоненту.
            | Проверьте, что внешняя компонента корректно установлена и имеет ту же версию, 
            | что и требуемая обработкой обслуживания.";
        КонецПопытки;

Так?
Функция Подключить(Объект) Экспорт

    Результат = мНетОшибки;
    СерийныйНомерККМ = Неопределено;

    МассивЗначений = Новый Массив;
    МассивЗначений.Добавить(Объект.Параметры.Порт);
    МассивЗначений.Добавить(Объект.Параметры.Скорость);
    МассивЗначений.Добавить(Объект.Параметры.ПарольПользователя);
    МассивЗначений.Добавить(Объект.Параметры.ПарольАдминистратора);
    МассивЗначений.Добавить(Объект.Параметры.Таймаут);
    МассивЗначений.Добавить(СерийныйНомерККМ);
    МассивЗначений.Добавить(мНДС[0]);
    МассивЗначений.Добавить(мНДС[1]);
    МассивЗначений.Добавить(мНДС[2]);
    МассивЗначений.Добавить(мНДС[3]);
    МассивЗначений.Добавить(Ложь);
    МассивЗначений.Добавить(Объект.Параметры.ЖурналОперацийДрайвера);
    МассивЗначений.Добавить(Объект.Параметры.НаименованиеОплаты1);
    МассивЗначений.Добавить(Объект.Параметры.НаименованиеОплаты2);
    МассивЗначений.Добавить(Объект.Параметры.ПечататьЛоготип);
    МассивЗначений.Добавить(Объект.Параметры.РазмерЛоготипа);
    МассивЗначений.Добавить(Объект.Параметры.ТипПодключения);
    МассивЗначений.Добавить(Объект.Параметры.ИмяКомпьютера);
    МассивЗначений.Добавить(Объект.Параметры.IPАдрес);
    МассивЗначений.Добавить(Объект.Параметры.TCPПорт);

    Если Не Объект.Драйвер.Подключить(МассивЗначений, Объект.ИДУстройства) Тогда
        КодОшибки = Объект.Драйвер.ПолучитьОшибку(Объект.ОписаниеОшибки);
        Результат = мОшибкаНеизвестно;
    Иначе
        Если Объект.Параметры.ОтменятьЧекПриПодключении Тогда
            Объект.Драйвер.ОтменитьЧек(Объект.ИДУстройства);
        КонецЕсли;
    КонецЕсли;

    Возврат Результат;

КонецФункции// Подключить()


Не срабатывает подключение.
   lodger
 
3 - 30.07.19 - 15:12
где вы взяли это старье?

под новый драйвер нужен совсем другая компонента в 1с.
ну да ладно.

в первой попытке пишешь

ЗагрузитьВнешнююКомпоненту("smDrvFR1CLib24.dll");
        ProgID2 = "AddIn.SMDrvFR1C22";
        Объект = Новый (ProgID2);

в функции Подключить() надо переписать установку параметров на
ПараметрыИнтерфейса = ПолучитьПараметрыПодключения();// получает структуру

    Для Каждого Параметр Из ПараметрыИнтерфейса Цикл
        ОбъектДрайвера.УстановитьПараметр(Параметр.Ключ, Параметр.Значение) 
    КонецЦикла;


потом метод
    Попытка
        Ответ = ОбъектДрайвера.Подключить(ПараметрыПодключения.ИДУстройства);
    Исключение
        Результат = Ложь;
        ВыходныеПараметры.Очистить();
        ВыходныеПараметры.Добавить(999);
        ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.Подключить>.'") + Символы.ПС + ОписаниеОшибки());
        Возврат Результат;
    КонецПопытки;
   Валерия
 
4 - 30.07.19 - 15:42
(3) Спасибо! Сейчас попробую! Блин, с ккт онлайн проблем нет и с доработками, с этим старый фискальником сразу в ступор впала!
   Валерия
 
5 - 30.07.19 - 15:58
(3) А можно ещё будет тогда уж совсем понаглеть и спросить про ПараметрыИнтерфейса = ПолучитьПараметрыПодключения();
В старой версии параметры в массив записывались при подключении и не было такой процедуры? Я дальше сама разберусь, только с подключением разобраться бы. Буду благодарна, если поможете.
   lodger
 
6 - 30.07.19 - 16:12
у меня там параметры для онлайн-ККТ, но в этот драйвер перед Подключить() можно засунуть 

XMLСтрокаПараметров="";
ПолучитьПараметры(XMLСтрокаПараметров);
ТочкаОстанова = Истина; // ставим тут точки остановки
// и внимательно курим XMLСтрокаПараметров

ПараметрыИнтерфейса = новый структура();
        ПараметрыИнтерфейса.Вставить("P_AdminPassword",    30);
        ПараметрыИнтерфейса.Вставить("P_Baudrate",115200);
        
        ПараметрыИнтерфейса.Вставить("P_Port",1);
        ПараметрыИнтерфейса.Вставить("P_ProtocolType",0);
        ПараметрыИнтерфейса.Вставить("P_Timeout",3000);
        
        ПараметрыИнтерфейса.Вставить("P_IPAddress","");
        ПараметрыИнтерфейса.Вставить("P_TCPPort",211);
        
        ПараметрыИнтерфейса.Вставить("P_ComputerName",ИмяКомпьютера());
        ПараметрыИнтерфейса.Вставить("P_ConnectionType",0);
        ПараметрыИнтерфейса.Вставить("P_CloseSession",Истина);
        
        ПараметрыИнтерфейса.Вставить("P_EnablePaymentSignPrint",Истина);
        ПараметрыИнтерфейса.Вставить("P_QRCodeDotWidth",5);
        ПараметрыИнтерфейса.Вставить("P_ItemNameLength",0);
        
        ПараметрыИнтерфейса.Вставить("P_PayName1","ПЛАТ.КАРТОЙ");
        ПараметрыИнтерфейса.Вставить("P_PayName2","КРЕДИТОМ");
        ПараметрыИнтерфейса.Вставить("P_PayName3","СЕРТИФИКАТОМ");
        
        ПараметрыИнтерфейса.Вставить("P_EnableLog",Ложь);
        //ПараметрыИнтерфейса.Вставить("P_LogFileName","C:\Program Files\SHTRIH-M\DrvFR 4.14\DrvFR.log");
        
        ПараметрыИнтерфейса.Вставить("P_ODEnabled",Ложь);
        //ПараметрыИнтерфейса.Вставить("P_ODCertFileName","");
        //ПараметрыИнтерфейса.Вставить("P_ODGroup","");
        //ПараметрыИнтерфейса.Вставить("P_ODINN","");
        //ПараметрыИнтерфейса.Вставить("P_ODKeyFileName","");
        //ПараметрыИнтерфейса.Вставить("P_ODKeyName","");
        //ПараметрыИнтерфейса.Вставить("P_ODRetryCount",5);
        //ПараметрыИнтерфейса.Вставить("P_ODRetryTimeout",5);
        //ПараметрыИнтерфейса.Вставить("P_ODServerURL","https://apip.orangedata.ru:2443/api/v2/";);
        //ПараметрыИнтерфейса.Вставить("P_ODSignKeyFileName","");
возврат ПараметрыИнтерфейса;
   Валерия
 
7 - 30.07.19 - 16:17
(6) Спасибо!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.